<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scalar</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scalar"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/Scalar"/>
	<updated>2026-11-14T04:54:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53759</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53759"/>
		<updated>2022-05-25T14:19:04Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;/nowiki&amp;gt;v3.3.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53758</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53758"/>
		<updated>2022-05-25T14:12:12Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;/nowiki&amp;gt;&amp;gt;v3.3.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53757</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53757"/>
		<updated>2022-05-25T14:11:45Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53756</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53756"/>
		<updated>2022-05-25T14:11:17Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53755</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53755"/>
		<updated>2022-05-25T14:10:01Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v3.3.2.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53754</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53754"/>
		<updated>2022-05-25T14:08:12Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget https://github.com/coreruleset/coreruleset/archive/v3.3.2&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53753</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53753"/>
		<updated>2022-05-25T14:07:14Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki/&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53752</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53752"/>
		<updated>2022-05-25T14:06:01Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Aktiviere OWASP Core Regel Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v3.3.2&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53751</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53751"/>
		<updated>2022-05-25T13:57:30Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von ModSecurity v3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1.21.6&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53750</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53750"/>
		<updated>2022-05-25T13:40:50Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Download Nginx Source Packet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt; /usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-1.21.6&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53744</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53744"/>
		<updated>2022-05-24T14:35:31Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Information über Server Updates und Upgrades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellite system aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;#sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
 cp /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Benutzerdokumentation&amp;diff=53727</id>
		<title>Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Benutzerdokumentation&amp;diff=53727"/>
		<updated>2022-05-12T09:25:19Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installation | Upgrade | Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : User_documentation --&amp;gt;&lt;br /&gt;
[[en:User_documentation]]&lt;br /&gt;
[[es:Documentación_usuarios]]&lt;br /&gt;
[[fr:Documentation_utilisateur]]&lt;br /&gt;
[[pt:Documentação dos utilizadores]]&lt;br /&gt;
[[zh:用户手册]]&lt;br /&gt;
[[ro:Documentaţie utilizator]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TemplateDocUserDE}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Benutzer, Dokumentation, Handbuch, doc, Anleitung, Gebrauch, Hilfe&amp;quot; /&amp;gt;&lt;br /&gt;
Dies ist die Startseite der Dokumentation für Benutzer*innen.&lt;br /&gt;
Für die Entwickler-Dokumentation bitte [[Developer documentation| hier klicken]] (Text: englisch).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&lt;br /&gt;
*[[Was_macht_Dolibarr| Was Sie mit Dolibarr tun können]]&lt;br /&gt;
*[[What_Dolibarr_can%27t_do| Was Sie mit Dolibarr nicht machen können (engl.)]]&lt;br /&gt;
&lt;br /&gt;
=Installation | Upgrade | Setup=&lt;br /&gt;
&lt;br /&gt;
*[[Voraussetzungen | Voraussetzungen]]&lt;br /&gt;
*[[Installation - Upgrade]] &#039;&#039;(englisch)&#039;&#039;&lt;br /&gt;
*[[Installieren und Härten von Dolibarr|Installation und härten]] &#039;&#039;(german)&#039;&#039;&lt;br /&gt;
** &#039;&#039;[[ModSecurity für Dolibarr|Install ModSecurity für Dolibarr]] (german)&#039;&#039;&lt;br /&gt;
*[[Grundeinstellungen]]&lt;br /&gt;
&lt;br /&gt;
=Administration=&lt;br /&gt;
&lt;br /&gt;
*Migration: [[Mass_imports|Mass imports]] / [[ExportsEn|Exports]]&lt;br /&gt;
*[[Backups]] / [[Restores]]&lt;br /&gt;
&lt;br /&gt;
=Erste Schritte=&lt;br /&gt;
Nachdem die Installation erfolgreich beendet wurde (vielleicht auch nicht durch Sie sondern einen Admin, siehe voriges Kapitel), lesen Sie (als Benutzer) bitte zunächst die allgemeinen Infos:&lt;br /&gt;
&lt;br /&gt;
*[[Erste Schritte|Allgemeine Benutzerinformationen]] (Erste Schritte)&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie den grundsätzlichen Verwendungszweck von Dolibarr verstanden haben, sollten Sie einen Blick auf die Dokumentationen der einzelnen Standard-Module werfen.&lt;br /&gt;
&lt;br /&gt;
=Einsatzmöglichkeiten (nach Modulen)=&lt;br /&gt;
Um Dolibarr zu nutzen, sind Kenntnisse über die einzelnen Module und deren Möglichkeiten notwendig. &lt;br /&gt;
&lt;br /&gt;
Wählen Sie das für Sie interessante Modul und lesen Sie die Dokumentation:&lt;br /&gt;
&lt;br /&gt;
*Die Liste der Standardmodule ist hier zu finden: [[:Category:Liste der Module|Liste der Module - auf deutsch erst im Aufbau]], die vollständige englische Seite [[:Category:List of Modules|deshalb weiterhin hier]].&lt;br /&gt;
*Die Liste aller anderen (Zusatz-) Module ist hier zu finden: [[:Category:Complementary modules|Ergänzungsmodule]] (engl.)&lt;br /&gt;
&lt;br /&gt;
=Glossar=&lt;br /&gt;
Siehe Seite [[Glossar]]&lt;br /&gt;
&lt;br /&gt;
=FAQ (häufig gestellte Fragen)=&lt;br /&gt;
Alle FAQ sind über die Startseite erreichbar [[:Category:FAQ EN|FAQ]] (englisch)&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=User_documentation&amp;diff=53726</id>
		<title>User documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=User_documentation&amp;diff=53726"/>
		<updated>2022-05-12T09:24:54Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installation | Upgrade | Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Documentação_dos_utilizadores --&amp;gt;&lt;br /&gt;
[[es:Documentación_usuarios]]&lt;br /&gt;
[[fr:Documentation_utilisateur]]&lt;br /&gt;
[[de:Benutzerdokumentation]]&lt;br /&gt;
[[zh:用户手册]]&lt;br /&gt;
[[ro:Documentaţie utilizator]]&lt;br /&gt;
[[pt:Documentação_dos_utilizadores]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;user, documentation, guide, doc, tutorial, usage, help&amp;quot; /&amp;gt;&lt;br /&gt;
This page is the main index of documents relating to user documentation. For developer documentation, [[Developer documentation|see here]].&lt;br /&gt;
&lt;br /&gt;
=Quick overview of Features=&lt;br /&gt;
&lt;br /&gt;
*[[What Dolibarr Do|What Dolibarr is, What Dolibarr can do]]&lt;br /&gt;
*[[What Dolibarr can&#039;t do|What Dolibarr is not, What Dolibarr can&#039;t do]]&lt;br /&gt;
&lt;br /&gt;
=Installation | Upgrade | Setup=&lt;br /&gt;
&lt;br /&gt;
*[[Prerequisite|Prerequisites]]&lt;br /&gt;
*[[Installation - Upgrade]]&lt;br /&gt;
*[[Installieren und Härten von Dolibarr|Installation and hardening]] &#039;&#039;(germen)&#039;&#039;&lt;br /&gt;
** &#039;&#039;[[ModSecurity für Dolibarr|Install ModSecurity für Dolibarr]] (german)&#039;&#039;&lt;br /&gt;
*[[First setup|Setup]]&lt;br /&gt;
&lt;br /&gt;
Documentation on how to use Dolibarr is provided in next chapters&lt;br /&gt;
&lt;br /&gt;
=Administration=&lt;br /&gt;
&lt;br /&gt;
*Migration: [[Mass_imports|Mass imports]] / [[ExportsEn|Exports]]&lt;br /&gt;
*[[Backups]] / [[Restores]]&lt;br /&gt;
*[[About_pages|About pages]]&lt;br /&gt;
*[[Upgrade]]&lt;br /&gt;
*[[Purge]]&lt;br /&gt;
*[[Audit]]&lt;br /&gt;
*[[Users_Sessions|Users Sessions]]&lt;br /&gt;
*[[Global_VAT_Update|Global VAT Update]]&lt;br /&gt;
*[[Module_Scheduled_jobs|Scheduled Jobs]]&lt;br /&gt;
*[[Direct_Printing_jobs|Direct Printing jobs]]&lt;br /&gt;
*[[Mass_barcode_init|Mass barcode init]]&lt;br /&gt;
&lt;br /&gt;
=Usage (by modules / applications)=&lt;br /&gt;
Knowing how to use Dolibarr is knowing how to use its modules, menus, and features. &lt;br /&gt;
First, once the installation step is complete (see previous chapters), let&#039;s have a look at general information on usage:&lt;br /&gt;
&lt;br /&gt;
*[[General information on usage]] (First steps).&lt;br /&gt;
&lt;br /&gt;
Once general usage is understood, you can have a look at the documentation about all standard business modules. Choose the module you are interested in to see its documentation. Standard modules are modules available by default in all common installation. This is a list of main modules (also available on page [[:Category:List of Modules|List of Modules]]):&lt;br /&gt;
{{#dpl:&lt;br /&gt;
|category=List of Modules&lt;br /&gt;
|ordermethod=title&lt;br /&gt;
|order=ascending&lt;br /&gt;
|format = &amp;lt;ul type=&amp;quot;disc&amp;quot;&amp;gt;,&amp;lt;li&amp;gt;[[%PAGE%]],&amp;lt;/li&amp;gt;,&amp;lt;/ul&amp;gt;&lt;br /&gt;
|columns=3&lt;br /&gt;
|rowcolformat=width=100%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
External modules are modules you can get on other sources than official sources. They are provided by third parties. Most of them can be found in the marketplace https://www.dolistore.com. List of external modules is defined on the page [[:Category:Complementary modules|Complementary modules]].&lt;br /&gt;
&lt;br /&gt;
=Glossary=&lt;br /&gt;
See page [[Glossary]]&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
All FAQ are available through the index page [[:Category:FAQ EN|FAQ EN]]&lt;br /&gt;
&lt;br /&gt;
=Video Tutorials=&lt;br /&gt;
The association Dolibarr has started making video tutorials on the basic functions of Dolibarr [[Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Proofreading done]]&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Benutzerdokumentation&amp;diff=53725</id>
		<title>Benutzerdokumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Benutzerdokumentation&amp;diff=53725"/>
		<updated>2022-05-12T09:23:25Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installation | Upgrade | Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : User_documentation --&amp;gt;&lt;br /&gt;
[[en:User_documentation]]&lt;br /&gt;
[[es:Documentación_usuarios]]&lt;br /&gt;
[[fr:Documentation_utilisateur]]&lt;br /&gt;
[[pt:Documentação dos utilizadores]]&lt;br /&gt;
[[zh:用户手册]]&lt;br /&gt;
[[ro:Documentaţie utilizator]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TemplateDocUserDE}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Benutzer, Dokumentation, Handbuch, doc, Anleitung, Gebrauch, Hilfe&amp;quot; /&amp;gt;&lt;br /&gt;
Dies ist die Startseite der Dokumentation für Benutzer*innen.&lt;br /&gt;
Für die Entwickler-Dokumentation bitte [[Developer documentation| hier klicken]] (Text: englisch).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
&lt;br /&gt;
*[[Was_macht_Dolibarr| Was Sie mit Dolibarr tun können]]&lt;br /&gt;
*[[What_Dolibarr_can%27t_do| Was Sie mit Dolibarr nicht machen können (engl.)]]&lt;br /&gt;
&lt;br /&gt;
=Installation | Upgrade | Setup=&lt;br /&gt;
&lt;br /&gt;
*[[Voraussetzungen | Voraussetzungen]]&lt;br /&gt;
*[[Installation - Upgrade]] &#039;&#039;(englisch)&#039;&#039;&lt;br /&gt;
*[[Installieren und Härten von Dolibarr|Installation und härten]] &#039;&#039;(german)&#039;&#039;&lt;br /&gt;
*[[ModSecurity für Dolibarr|Install ModSecurity für Dolibarr]] &#039;&#039;(german)&#039;&#039;&lt;br /&gt;
*[[Grundeinstellungen]]&lt;br /&gt;
&lt;br /&gt;
=Administration=&lt;br /&gt;
&lt;br /&gt;
*Migration: [[Mass_imports|Mass imports]] / [[ExportsEn|Exports]]&lt;br /&gt;
*[[Backups]] / [[Restores]]&lt;br /&gt;
&lt;br /&gt;
=Erste Schritte=&lt;br /&gt;
Nachdem die Installation erfolgreich beendet wurde (vielleicht auch nicht durch Sie sondern einen Admin, siehe voriges Kapitel), lesen Sie (als Benutzer) bitte zunächst die allgemeinen Infos:&lt;br /&gt;
&lt;br /&gt;
*[[Erste Schritte|Allgemeine Benutzerinformationen]] (Erste Schritte)&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie den grundsätzlichen Verwendungszweck von Dolibarr verstanden haben, sollten Sie einen Blick auf die Dokumentationen der einzelnen Standard-Module werfen.&lt;br /&gt;
&lt;br /&gt;
=Einsatzmöglichkeiten (nach Modulen)=&lt;br /&gt;
Um Dolibarr zu nutzen, sind Kenntnisse über die einzelnen Module und deren Möglichkeiten notwendig. &lt;br /&gt;
&lt;br /&gt;
Wählen Sie das für Sie interessante Modul und lesen Sie die Dokumentation:&lt;br /&gt;
&lt;br /&gt;
*Die Liste der Standardmodule ist hier zu finden: [[:Category:Liste der Module|Liste der Module - auf deutsch erst im Aufbau]], die vollständige englische Seite [[:Category:List of Modules|deshalb weiterhin hier]].&lt;br /&gt;
*Die Liste aller anderen (Zusatz-) Module ist hier zu finden: [[:Category:Complementary modules|Ergänzungsmodule]] (engl.)&lt;br /&gt;
&lt;br /&gt;
=Glossar=&lt;br /&gt;
Siehe Seite [[Glossar]]&lt;br /&gt;
&lt;br /&gt;
=FAQ (häufig gestellte Fragen)=&lt;br /&gt;
Alle FAQ sind über die Startseite erreichbar [[:Category:FAQ EN|FAQ]] (englisch)&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53724</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53724"/>
		<updated>2022-05-12T09:17:41Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Laden Sie das ModSecurity v3 Nginx Connector Modul */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-1.21.6&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53723</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53723"/>
		<updated>2022-05-12T09:15:49Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Laden Sie das ModSecurity v3 Nginx Connector Modul */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-1.21.6&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Fehlerbehebung&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53722</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53722"/>
		<updated>2022-05-12T09:14:37Z</updated>

		<summary type="html">&lt;p&gt;Scalar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-1.21.6&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fehlerbehebung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53721</id>
		<title>ModSecurity für Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=ModSecurity_f%C3%BCr_Dolibarr&amp;diff=53721"/>
		<updated>2022-05-12T09:11:55Z</updated>

		<summary type="html">&lt;p&gt;Scalar: Neue Seite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installieren Sie ModSecurity für Nginx bei Debian/Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie, als Betreiber eines vom Internet zugänglichen Speichermediums, sind für den Schutz der darauf befindlichen daten und für die Verbreitung von Daten, über dieses Speichermedium, verantwortlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, wenn sich jemand unerlaubt Zugriff auf Ihren Server verschafft, können Sie dafür zur Verantwortung gezogen werden, wenn dadurch einem Dritten Schaden entsteht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihren Server und Ihre Daten so gut als möglich zu schützen, nutzen sie alle Möglichkeiten die es gibt. Eine davon ist [https://docs.nginx.com/nginx-waf/ ModSecurity]. Im Folgenden beschreibe ich wie Sie ModSecurity installieren können und Ihr Dolibarr einbinden. Aufgebaut wird auf einen Server auf dem ein Ubuntu oder Debian Betriebssystem installiert ist, zusätzlich gehe ich davon aus das Sie Dolibarr entsprechend der Installationsanleitung von [https://forum.dolibarr.de/forum/t/installation-und-grund-haertung-von-dolibarr/8008 hier] oder [[Installieren und Härten von Dolibarr|hier]] installiert haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity lässt sich als dynamisches Modul in Nginx integrieren, mit dem Sie den Quellcode einzelner Module kompilieren können, ohne Nginx selbst zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Nginx-Binärdatei muss mit dem Argument --with-compat kompiliert werden, wodurch dynamische Module mit Ihrer vorhandenen Nginx-Binärdatei binärkompatibel werden. Allerdings wird nicht jede Nginx-Binärdatei, die aus dem standardmäßigen Debian/Ubuntu-Repository geliefert wird, mit dem Argument --with-compat kompiliert. Zur Vereinfachung können wir die neueste Version von Nginx aus dem PPA ondrej/nginx-mainline installieren, das von einem Debian-Entwickler gepflegt wird.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Ubuntu===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Ubuntu 16.04, 18.04, 20.04 oder 20.10 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 sudo add-apt-repository ppa:ondrej/nginx-mainline -y&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list&lt;br /&gt;
&lt;br /&gt;
entfernen Sie das # zeichen vor deb-src &amp;lt;nowiki&amp;gt;http://ppa.launchpad&amp;lt;/nowiki&amp;gt;......&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das nachfolgende ist nur für Debian===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 10 oder Debian 11 verwenden, führen Sie die folgenden Befehle aus, um die neueste Version von Nginx zu installieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Laufe der Installation werden Sie gefragt ob die nginx-conf aktualisiert werden soll ( *** nginx.conf (Y/I/N/O/D/Z) [default=N] ? n ), diese Frage beantworten Sie bitte mit n für nein (no).&lt;br /&gt;
 curl -sSL &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/README.txt&amp;lt;/nowiki&amp;gt; | sudo bash -x&lt;br /&gt;
 &lt;br /&gt;
 sudo apt update&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install nginx-core nginx-common nginx nginx-full&lt;br /&gt;
&lt;br /&gt;
Bei der Standard Installation von Nginx ist nur die - binare Repository - aktiviert. Sie benötigen allerdings auch die - source code repository – um Nginx source Code herunterladen zu können.&lt;br /&gt;
&lt;br /&gt;
Dafür editieren Sie bitte die Nginx mainline repository – Datei&lt;br /&gt;
 sudo nano /etc/apt/sources.list.d/nginx-mainline.list&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine einzelne Zeile finden, die das binäre Nginx-Repository aktiviert. Fügen Sie die folgende Zeile hinzu, um das Nginx-Quellcode-Repository auf Debian 10 zu aktivieren.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; buster main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Debian 11 verwenden, fügen Sie stattdessen die folgende Zeile hinzu.&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;https://packages.sury.org/nginx-mainline/&amp;lt;/nowiki&amp;gt; bullseye main&lt;br /&gt;
&lt;br /&gt;
===Ab jetzt sind die Befehle wieder für beide Betriebssysteme identisch===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern machen Sie bitte ein Update&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die Configuration von Nginx&lt;br /&gt;
 nginx -V&lt;br /&gt;
&lt;br /&gt;
Sie werden feststellen das alle Nginx binaries im PPA mit dem --with-compat Argument kompiliert wurden&lt;br /&gt;
&lt;br /&gt;
=Download Nginx Source Packet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen Sie nicht Ngix Komilieren, jedoch benötigen Sie den Nginx Source Code um das ModSecurity dynamic module zu kompilieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.19.5.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Install libmodsecurity3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun können Sie libmodsecurrity Installieren, libmodsecurrity stellt die Bibliothek zur Filterung Ihrer http Webanwendungen bereit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zuerst Klonen Sie den source Code von Github&lt;br /&gt;
&lt;br /&gt;
Dazu Installieren Sie erst git&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
&lt;br /&gt;
und führen dann den clone befehl aus.&lt;br /&gt;
 git clone --depth 1 -b v3/master --single-branch &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
wechseln Sie für die weitere Bearbeitung ins ModSecurity Verzeichnis&lt;br /&gt;
 cd /usr/local/src/ModSecurity/&lt;br /&gt;
&lt;br /&gt;
und Installieren Sie die Benötigten Bibliotheken&lt;br /&gt;
 sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen &amp;lt;code&amp;gt;zlib1g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt installieren Sie noch die zusätzlichen Module&lt;br /&gt;
 git submodule init&lt;br /&gt;
 &lt;br /&gt;
 git submodule update&lt;br /&gt;
&lt;br /&gt;
Jetzt konfigurieren Sie die Umgebung&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
Sollten Sie nachfolgende Fehlermeldung sehen – können Sie diese ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fatal: No names found, cannot describe anything.&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
Kompilieren Sie den source Code mit folgendem Befehl. In der Grundeinstellung arbeitet „ make „ mit einem Prozessor Kern. In Abhängigkeit wie viele Kerne Sie Ihrem Server zur Verfügung gestellt haben, ändern Sie bitte die Anzahl der Kerne im Befehl&lt;br /&gt;
&lt;br /&gt;
Das kann ein bisschen dauern, abhängig von Ihrer Anzahl an CPU-Kernen und der menge an RAM Speicher.&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 make -j3&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
====Fehlerbehebung====&lt;br /&gt;
&amp;lt;u&amp;gt;Error 1&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie diese Fehlermeldung sehen liegt das wahrscheinlich daran das Ihr Server zu wenig RAM-Speicher hat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;br /&amp;gt;g++: internal compiler error: Killed (program cc1plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte stellen Sie Ihrem Server mehr RAM-Speicher zur verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #2&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie folgenden fehler, beim Kompilieren von ModSecurity sehen&lt;br /&gt;
&lt;br /&gt;
 utils/geo_lookup.cc: In member function ‘bool modsecurity::Utils::GeoLookup::lookup(const string&amp;amp;, modsecurity::Transaction*, std::function&amp;lt;bool(int, const std::__cxx11::basic_string&amp;lt;char&amp;gt;&amp;amp;)&amp;gt;) const’:&lt;br /&gt;
 utils/geo_lookup.cc:124:32: error: invalid conversion from ‘const MMDB_s*’ to ‘MMDB_s*’ [-fpermissive]&lt;br /&gt;
 r = MMDB_lookup_string(&amp;amp;mmdb, target.c_str(), &amp;amp;gai_error, &amp;amp;mmdb_error);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
liegt das wahrscheinlich daran das Sie eine veraltete Version von libmaxminddb-dev instaliert haben. Sie können dieses Packet löschen und gegen eine aktuelle ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen der alten libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt remove libmaxminddb-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installieren von libgeoip-dev, das ist eine Alternative zu libmaxminddb-dev&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 sudo apt install libgeoip-dev&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jetzt können Sie ModSecurity erneut kompilieren. Bitte die Anzakl der CPU Kerne anpassen&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 make clean&lt;br /&gt;
  &lt;br /&gt;
  ./configure&lt;br /&gt;
  &lt;br /&gt;
  make -j3&lt;br /&gt;
und die Binary installieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der make Befehl fehlerfrei abgeschlossen ist, installieren Sie die binary&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Installieren von ModSecurity v3=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-1.21.6&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
=Laden Sie das ModSecurity v3 Nginx Connector Modul=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bearbeitungen Sie die nginx.conf&lt;br /&gt;
 sudo nano /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
und fügen vor dem events nachfolgende Zeile ein&lt;br /&gt;
 load_module modules/ngx_http_modsecurity_module.so;&lt;br /&gt;
&lt;br /&gt;
In Ihre conf.d/Konfigurations.conf in diesem Fall für Dolibarr&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fügen Sie nach -&amp;gt;    listen [::]:443 ssl http2;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;modsecurity on;&lt;br /&gt;
  modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Die vHosts Konfigurationsdatei erweitern Sie ebenfalls&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
und fügen nach -&amp;gt;     listen [::]:80 default_server;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;folgende Zeilen ein&amp;lt;/code&amp;gt;&lt;br /&gt;
 modsecurity on;&lt;br /&gt;
 modsecurity_rules_file /etc/nginx/modsec/main.conf;&lt;br /&gt;
&lt;br /&gt;
Speichern und Schließen Sie die Datei.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellen Sie einen neuen Ordner -&amp;gt; /etc/nginx/modsec/&lt;br /&gt;
 sudo mkdir /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
in diesen Kopieren Sie die ModSecurity Konfigurations Datei,&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
und bearbeiten die Konfigurationsdatei im Anschluss.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeilen&lt;br /&gt;
 SecRuleEngine DetectionOnly    -&amp;gt;   SecRuleEngine On&lt;br /&gt;
 &lt;br /&gt;
 SecAuditLogParts ABIJDEFHZ     -&amp;gt;   SecAuditLogParts ABCEFHJKZ&lt;br /&gt;
 &lt;br /&gt;
 SecResponseBodyAccess On       -&amp;gt;   SecResponseBodyAccess Off&lt;br /&gt;
&lt;br /&gt;
Speichern und verlassen Sie die Datei&lt;br /&gt;
&lt;br /&gt;
Jetzt erstellen Sie die main.conf&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
fügen folgende Zeile ein.&lt;br /&gt;
&lt;br /&gt;
Speichen und schließen Sie die Datei im Anschluss&lt;br /&gt;
 Include /etc/nginx/modsec/modsecurity.conf&lt;br /&gt;
Sie benötigen auch die unicode.mapping datei, die Sie jetzt Kopieren&lt;br /&gt;
 sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Error #3&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten Sie diese Fehlermeldung bekommen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nginx: [warn] duplicate extension &amp;quot;woff&amp;quot;, content type: &amp;quot;font/woff2&amp;quot;, previous content type: &amp;quot;font/woff&amp;quot; in /etc/nginx/mime.types:29&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
bearbeiten Sie die mime.types Datei&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 nano /etc/nginx/mime.types&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Suchen und ersetzen Sie folgende Zeile&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 font/woff2                            woff;     -&amp;gt;    font/woff2                            woff2;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
speichern und schließen&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
nun testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
Wenn es keine Fehler gab starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Aktiviere OWASP Core Regel Set=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Ihre Webanwendung zu schützen, müssen Sie Regeln festlegen um Angreifer zu erkennen und diese zu Blocken.&lt;br /&gt;
&lt;br /&gt;
Für den Anfing ist es am besten ein vordefiniertes Archiv von Regeln zu verwenden&lt;br /&gt;
&lt;br /&gt;
Das OWASP Core Rule Set ist das Standard Set für die Verwendung von ModSecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;v3.3.2&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und fügen folgende Zeilen ein&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
um zu verhindern das Ihre Logdatei bis ins unendliche wächst legen Sie eine Regel fest nach der Ihre Logdatei sich Täglich erneuert und nur die Letzten 14 Einträge erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie dafür /logrotate.d/modsecurity&lt;br /&gt;
 sudo nano /etc/logrotate.d/modsecurity&lt;br /&gt;
&lt;br /&gt;
und fügen nachfolgendes ein&lt;br /&gt;
 /var/log/modsec_audit.log&lt;br /&gt;
 {&lt;br /&gt;
        rotate 14&lt;br /&gt;
        daily&lt;br /&gt;
        missingok&lt;br /&gt;
        compress&lt;br /&gt;
       delaycompress&lt;br /&gt;
        notifempty&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen&lt;br /&gt;
&lt;br /&gt;
Nginx erneut als Starten um die änderungen zu aktivieren&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Handling Falscher Ereignisse=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModSecurity ist eine generische Webanwendungs-Firewall und nicht für eine bestimmte Webanwendung konzipiert. Der OWASP-Kernregelsatz ist auch ein generischer Regelsatz ohne bestimmte Anwendung, daher ist es wahrscheinlich, dass Sie nach der Aktivierung von ModSecurity und OWASP CRS falsch positive Ergebnisse sehen. Wenn Sie den Paranoia-Level im CRS erhöhen, werden mehr falsch positive Ergebnisse angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel verbietet das CRS standardmäßig das Einfügen von Unix-Befehlen wie die Eingabe von sudo auf einer Webseite, was in meinem Blog ziemlich üblich ist. Um Fehlalarme zu eliminieren, müssen Sie dem CRS Regelausschlüsse hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt einige vorgefertigte, anwendungsspezifische Ausnahmen, die mit OWASP CRS geliefert werden. Bearbeiten Sie die dafür Datei crs-setup.conf.&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zum Abschnitt Anwendungsspezifische Regelausschlüsse und suchen Sie die folgenden Zeilen.&lt;br /&gt;
&lt;br /&gt;
Suchen sie nach    -&amp;gt;    Application Specific Rule Exclusions&lt;br /&gt;
&lt;br /&gt;
Gehen Sie nach unten bis Sie diesen Eintrag finden&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; &amp;quot;id:900130,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Um diese Einträge aus zu schließen entfernen Sie alle  #  Zeichen von SecAction \  bis t:none,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie jetzt zum Beispiel WordPress ausschließen möchten, entfernen Sie einfach das # zeichen vor dem Eintrag   -&amp;gt;   #  setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Zeichenfolge ,\  am Ende der Ziele zeigt an das diese Ziele eine folge Zeile hat&lt;br /&gt;
&lt;br /&gt;
Wenn Sie also nur, wie im Beispiel oben, WordPress anschließen wollen, müssen auch die Zeichen ,\  am Ende löschen. Sollte noch zusätzlich z.B. eine Nextcloud über diesen Server laufen dann löschen Sie auch das  # Zeichen vor diesem Eintrag. Lassen aber die Zeichen  ,\  am Ende stehen da WordPress danach folgt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass, wenn Sie mehrere Anwendungen wie (WordPress, Nextcloud, Drupal, Dolibarr usw.) auf demselben Server installiert haben, die oben genannten Regelausschlüsse auf alle Anwendungen angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt Dolibarr in die Regeln ein zu beziehen, muss ein neuer Eintrag erstellt werden ohne  ,\ am ende da Sie nur Dolibarr ausschließen.&lt;br /&gt;
 SecAction \&lt;br /&gt;
 &amp;quot;id:900130,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
 setvar:tx.crs_exclusions_dolilibarr=1&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_cpanel=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_drupal=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  setvar:tx.crs_exclusions_dokuwiki=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_nextcloud=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_wordpress=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.crs_exclusions_xenforo=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Für Dolibarr müssen Sie noch zusätzlich einen weiteren Regel Ausschluss bearbeiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suchen Sie dafür den Eintrag&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-&lt;br /&gt;
&lt;br /&gt;
Und fügen vor jedem eintrag bis einschließlich&lt;br /&gt;
   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ein  #  Zeichen ein&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecRule TX:ANOMALY_SCORE &amp;quot;@ge %{tx.inbound_anomaly_score_threshold}&amp;quot; \&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   &amp;quot;id:949110,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    phase:2,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    deny,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    log,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    msg:&#039;Inbound Anomaly Score Exceeded (Total Score: %{TX.ANOMALY_SCORE})&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;    tag:&#039;application-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;language-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;platform-multi&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   tag:&#039;attack-generic&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   ver:&#039;OWASP_CRS/3.3.2&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   severity:&#039;CRITICAL&#039;,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;   setvar:&#039;tx.inbound_anomaly_score=%{tx.anomaly_score}&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dies ist nötig da ModSecurity sonst eine Änderung von Sicherheitsrelevanten Einträgen in Dolibarr nicht mehr zugelassen wird. Sie könnten zum Beispiel Ihr Passwort oder das von Nutzern nicht mehr ändern. Das anlegen von neuen Benutzern ist ebenfalls nicht mehr möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie können, die oben beschriebenen, Einstellungen durchführen um Sicherheitsrelevante Änderungen durch zu führen und sie, als zusätzliche Absicherung, danach wieder zurücksetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Sicherheitsrisiken zu minimieren, sollten Sie einen Regelausschluss nur für eine Anwendung aktivieren. Wechseln Sie dazu in das Verzeichnis /etc/nginx/modsec/coreruleset-3.3.*/rules/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 cd /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/rules&lt;br /&gt;
benennen Sie REQUEST-900-EXCLUSION-RULES-BEFORE-CRS um&lt;br /&gt;
 sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
und bearbeiten Sie die Datei&lt;br /&gt;
 sudo nano REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Wenn Ihr WordPress die Unterdomäne blog.yourdomain.com verwendet und der vom Browser des Besuchers gesendete Anforderungsheader diese Unterdomäne enthält, wendet ModSecurity die Regelausschlüsse für WordPress an.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
&lt;br /&gt;
In unserm Fall haben Sie Dolibarr hinzugefügt und diese Regel wird nun unter REQUEST-900 übernommen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1000,phase:1,setvar:tx.crs_exclusions_dolibarr=1&amp;quot;&lt;br /&gt;
Weitere Regeln wie zum Beispiel Ihr Blog den Sie auf WordPress am selben Server laufen haben können Sie so freigeben. Beachten Sie bitte das weitere Einträge auch unter sudo nano /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf angepasst werden müssen&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;blog.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1001,phase:1,setvar:tx.crs_exclusions_wordpress=1&amp;quot;&lt;br /&gt;
Wenn Sie Nextcloud auf demselben Server installiert haben, können Sie dieser Datei auch die folgende Zeile hinzufügen. Wenn also ein Besucher auf Ihre Nextcloud-Subdomain zugreift, wendet ModSecurity die Nextcloud-Regelausschlüsse an.&lt;br /&gt;
 SecRule REQUEST_HEADERS:Host &amp;quot;@streq &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;nextcloud.yourdomain.com&amp;lt;/span&amp;gt;&amp;quot; &amp;quot;id:1002,phase:1,setvar:tx.crs_exclusions_nextcloud=1&amp;quot;&lt;br /&gt;
Speichern und schließen Sie die Datei und testen Sie Nginx&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
War der Test fehlerfrei starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
=(Optional) Integation von Project Honeypot bei ModSecurity=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.projecthoneypot.org/ Project Honeypot] führt eine Liste bekannter bösartiger IP-Adressen, die der Öffentlichkeit kostenlos zur Verfügung stehen. ModSecurity kann in Project Honeypot integriert werden und IP-Adressen auf der Project Honeypot-Liste blockieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass die Verwendung von Project Honeypot Ihre Website für neue Besucher langsamer macht, da Ihr Webserver eine Anfrage an Project Honeypot senden muss, bevor er eine Antwort an den neuen Besucher senden kann. Sobald die IP-Reputationsdaten jedoch auf Ihrem Webserver zwischengespeichert sind, sind die Auswirkungen auf die Leistung sehr gering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um Project Honeypot zu verwenden, erstellen Sie zunächst ein [https://projecthoneypot.org/create_account.php kostenloses Konto] auf seiner Website. Gehen Sie dann zu Ihrem Konto-Dashboard und klicken Sie auf den Link &#039;&#039;&#039;Get One&#039;&#039;&#039;, um einen Zugriffsschlüssel für die HTTP-Blacklist anzufordern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn das erledigt ist bearbeiten Sie wieder die crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo nano /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;3.3.2&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Suchen Sie folgende Zeilen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecHttpBlKey XXXXXXXXXXXXXXXXX&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SecAction &amp;quot;id:900500,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  phase:1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  nolog,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  pass,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;  t:none,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_search_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese ändern Sie wie folgt und ersetzen die roten XXXX gegen den, bei Honeypot, erhaltenen HTTPBL API key&lt;br /&gt;
 SecHttpBlKey &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;XXXXXXXXXXXXXXXXX&amp;lt;/span&amp;gt;&lt;br /&gt;
 SecAction &amp;quot;id:900500,\&lt;br /&gt;
   phase:1,\&lt;br /&gt;
   nolog,\&lt;br /&gt;
   pass,\&lt;br /&gt;
   t:none,\&lt;br /&gt;
   setvar:tx.block_search_ip=1,\&lt;br /&gt;
 setvar:tx.block_suspicious_ip=1,\&lt;br /&gt;
 setvar:tx.block_harvester_ip=1,\&lt;br /&gt;
 setvar:tx.block_spammer_ip=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass block_search_ip auf 0 (deaktiviert) gesetzt werden sollte, wenn Sie Suchmaschinen-Crawler nicht blockieren möchten. Im Fall von Dolibarr, das vorwiegend betriebsintern Verwendung findet und nicht einer breiten Masse zugänglich gemacht wird, belass ich es bei 1 (aktiviert). Ihren Blog oder eine Webseite möchten Sie jedoch, in den meisten Fällen, von Suchmaschinen gelistet werden.&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Jetzt fragt ModSecurity Project Honeypot bei allen HTTP-Anfragen ab. Um zu testen, ob dies funktioniert, bearbeiten Sie die Datei /etc/nginx/modsec/main.conf.&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dadurch können wir eine IP-Adresse in einer URL weitergeben. (wenn der Test erfolgreich war, können Sie diese Zeile aus der Datei entfernen.)&lt;br /&gt;
 SecRule ARGS:IP &amp;quot;@rbl dnsbl.httpbl.org&amp;quot; &amp;quot;phase:1,id:171,t:none,deny,nolog,auditlog,msg:&#039;RBL Match for SPAM Source&#039;&lt;br /&gt;
&lt;br /&gt;
Speichern und schließen Sie die Datei.&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann Nginx neu.&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Gehen Sie zur Website von Project Honeypot und finden Sie eine bösartige IP-Adresse, zum Beispiel 134.119.218.243. Führen Sie den folgenden Befehl aus, um die HTTP-Blacklist zu testen.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene passen Sie bitte an Ihre Daten an&lt;br /&gt;
 curl -i -s -k -X $&#039;GET&#039; &#039;&amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?IP=134.119.218.243&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Webserver sollte eine verbotene 403-Antwort zurückgeben, da die IP-Adresse bei Project Honeypot gelistet ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn der Test erfolgreich war, können Sie die eingefügte Zeile aus der main.conf Datei wieder entfernen&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
=Upgrading Nginx=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Dolibarr mit meiner Anleitung Installiert haben, dann haben Sie auch eine Automatisierte Server Aktualisierung mit Installiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um jetzt zu verhindern das Ihr Nginx dynamiy modul eine andere Version als Nginx binary hat verhindern Sie zuerst das Nginx beim Update aktualisiert wird wenn Sie den Befehl zum upgrade ausführen.&lt;br /&gt;
&lt;br /&gt;
Dies kann durch den folgenden Befehl erreicht werden&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nun den Befehl sudo apt-get dist-upgrade ausführen und der Paketmanager Ihnen mitteilt, dass das Nginx-Paket vom Upgrade zurückgehalten wird, bedeutet dies, dass eine neue Nginx-Version verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun Sie müssen das neue Nginx-Quellpaket herunterladen und das ModSecurity-Modul erneut kompilieren. Verschieben Sie das neu kompilierte ModSecurity-Modul in das Verzeichnis /usr/share/nginx/modules/. Im Grunde bedeutet das, dass Sie alles im Verzeichnis /usr/local/src/ entfernen müssen (sudo rm /usr/local/src/* -rf ) und Schritt 2 und Schritt 4 erneut durchlaufen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gehen Sie wie folgt vor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Löschen Sie alles im Verzeichnis /usr/local/src/&lt;br /&gt;
 sudo rm /usr/local/src/* -rf&lt;br /&gt;
&lt;br /&gt;
Führen Sie den nachfolgenden Befehl aus um den Nginx source Code im verzeichnis /usr/local/src/ ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
Das rot geschriebene mit Ihrem USERNAMEN ersetzen&lt;br /&gt;
 sudo chown &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;USERNAMEN&amp;lt;/span&amp;gt;/usr/local/src/ -R&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p /usr/local/src/nginx&lt;br /&gt;
&lt;br /&gt;
Arbeiten Sie in der Nginx source Directory&lt;br /&gt;
 cd /usr/local/src/nginx/&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehlen laden Sie das Nginx source Packet herunter&lt;br /&gt;
 sudo apt install dpkg-dev&lt;br /&gt;
 &lt;br /&gt;
 apt source nginx&lt;br /&gt;
&lt;br /&gt;
Sollten Sie die nachfolgende Fehlermeldung bekommen, können Sie diese einfach ignorieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W: Download is performed unsandboxed as root as file &#039;nginx_1.21.6.orig.tar.gz&#039; couldn&#039;t be accessed by user &#039;_apt&#039;. - pkgAcquire::Run (13: Permission denied)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie die geladenen Dateien&lt;br /&gt;
 ls&lt;br /&gt;
&lt;br /&gt;
Sie sollten etwas ähnliches wie folgende Zeilen sehen&lt;br /&gt;
 nginx-1.21.6&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.debian.tar.xz&lt;br /&gt;
 nginx_1.21.6-1+ubuntu20.04.1+deb.sury.org+2.dsc&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz&lt;br /&gt;
 nginx_1.21.6.orig.tar.gz.asc&lt;br /&gt;
&lt;br /&gt;
Stellen Sie sicher, dass die source Code Version dieselbe wie die Binäre Version ist&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nginx -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Klonen Sie ModSecurity Nginx Connector von der Git repository.&lt;br /&gt;
 git clone --depth 1 &amp;lt;nowiki&amp;gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&amp;lt;/nowiki&amp;gt; /usr/local/src/ModSecurity-nginx/&lt;br /&gt;
&lt;br /&gt;
Wächseln Sie in Ihren Nginx Source Ortner&lt;br /&gt;
&lt;br /&gt;
Passen Sie das ROT geschriebene Ihren Daten an&lt;br /&gt;
 nginx -v&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/nginx/nginx-NEUE.VERSIONS.NUMMER&lt;br /&gt;
&lt;br /&gt;
Installieren Sie die angepassten Nginx Abhängigkeiten&lt;br /&gt;
 sudo apt build-dep nginx&lt;br /&gt;
 &lt;br /&gt;
 sudo apt install uuid-dev&lt;br /&gt;
&lt;br /&gt;
Als nächstes konfigurieren Sie die Umgebung mit dem folgenden Befehl. Wir werden Nginx selbst nicht kompilieren, sondern nur das ModSecurity Nginx Connector-Modul kompilieren. Das Flag --with-compat macht das Modul binärkompatibel mit Ihrer vorhandenen Nginx-Binärdatei.&lt;br /&gt;
 ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie das ModSecurity Nginx Connector Modul&lt;br /&gt;
 make modules&lt;br /&gt;
&lt;br /&gt;
Das Modul wird gespeichert als objs/ngx_http_modsecurity_module.so.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie es in Ihren Odrner&lt;br /&gt;
 sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/&lt;br /&gt;
&lt;br /&gt;
jetzt heben Sie den Aktualisierungs Stopp von Nginx auf.&lt;br /&gt;
 sudo apt-mark unhold nginx&lt;br /&gt;
&lt;br /&gt;
und führen das Upgrade aus&lt;br /&gt;
 sudo apt upgrade nginx&lt;br /&gt;
&lt;br /&gt;
wenn das abgeschlossen ist setzen Sie wieder den Aktualisierungs Stopp für Nginx&lt;br /&gt;
 sudo apt-mark hold nginx&lt;br /&gt;
&lt;br /&gt;
zur überprüfung können Sie mit diesem Befehl alle getopten Packete sehen&lt;br /&gt;
 apt-mark showhold&lt;br /&gt;
&lt;br /&gt;
Starten Sie Nginx neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
=Upgrade OWASP CRS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laden Sie das Aktuelle OWASP CRS von GitHub herunter&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://github.com/coreruleset/coreruleset/archive/v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entpacken Sie die Datei und verschieben sie in den Ordner /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 tar xvf v&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 sudo mv coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/ /etc/nginx/modsec/&lt;br /&gt;
&lt;br /&gt;
Benennen sie die crs-setup.conf.example Datei um in crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 sudo mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf.example /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Jetzt bearbeiten Sie die Konfigurationsdatei&lt;br /&gt;
 sudo nano /etc/nginx/modsec/main.conf&lt;br /&gt;
&lt;br /&gt;
und passen die Versionsnummern an die Aktuellen an&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte den Aktuellen an&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
 Include /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/*.conf&lt;br /&gt;
&lt;br /&gt;
Im Anschluss testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn dieser Test funktioniert hat starten Sie Nginx als Service neu&lt;br /&gt;
 sudo systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
Passen Sie den Inhalt Ihrer bisherigen coreruleset-ALTE.VERSIONS.NUMMER/crs-setup.conf an Ihre neue /crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Die rote Versionsnummer passen Sie bitte der Aktuellen an&lt;br /&gt;
 mv /etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ALTE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/rules/ etc/nginx/modsec/coreruleset-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;NEUE.VERSIONS.NUMMER&amp;lt;/span&amp;gt;/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
Zum abschluß testen Sie die Nginx Konfiguration&lt;br /&gt;
 sudo nginx -t&lt;br /&gt;
&lt;br /&gt;
wenn alles fehlerfrei läuft Nginx neu starten&lt;br /&gt;
 sudo systemctl reload nginx&lt;br /&gt;
&lt;br /&gt;
Woher wissen Sie, ob die neue Version funktioniert? Starten Sie einen einfachen SQL-Injection-Angriff und überprüfen Sie Ihre Serverprotokolle. Es zeigt Ihnen die CRS-Version, die diesen Angriff verhindert.&lt;br /&gt;
&lt;br /&gt;
Die rote Domain an Ihre eigene Anpassen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;yourdomain.com&amp;lt;/span&amp;gt;/?id=3&amp;lt;/nowiki&amp;gt; or &#039;a&#039;=&#039;a&#039;&lt;br /&gt;
&lt;br /&gt;
Sie sollten eine 403 Forbidden Seite erhalten&lt;br /&gt;
&lt;br /&gt;
Ich hoffe, dieses Tutorial hat Ihnen geholfen, die ModSecurity-Webanwendungs-Firewall mit Nginx unter Debian/Ubuntu einzurichten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gruß Scalar&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53702</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53702"/>
		<updated>2022-05-06T19:32:22Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Information über Server Updates und Upgrades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellite system aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;#sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
 cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53701</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53701"/>
		<updated>2022-05-06T19:26:08Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellite system aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;#sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53700</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53700"/>
		<updated>2022-05-06T19:24:18Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellite system aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;#sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53699</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53699"/>
		<updated>2022-05-06T19:16:49Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellite system aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53698</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53698"/>
		<updated>2022-05-06T19:13:24Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Absicherung von Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&#039;0&#039;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53697</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53697"/>
		<updated>2022-05-06T19:11:56Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Absicherung von Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360;/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53696</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53696"/>
		<updated>2022-05-06T18:54:54Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* MariaDB Installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53695</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53695"/>
		<updated>2022-05-06T18:38:29Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Vorbereiten der Einrichtung Ihres Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/hosts /etc/hosts.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53694</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53694"/>
		<updated>2022-05-06T17:34:14Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Vorbereiten der Einrichtung Ihres Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 sed -i &amp;quot;s/#NTP=.*/NTP=ntp1.dismail.de ntp2.dismail.de/&amp;quot; /etc/systemd/timesyncd.conf&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53682</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53682"/>
		<updated>2022-05-05T06:23:57Z</updated>

		<summary type="html">&lt;p&gt;Scalar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Installieren und härten von Dolibarr}}&lt;br /&gt;
&lt;br /&gt;
==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53681</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53681"/>
		<updated>2022-05-05T06:13:47Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installation und Konfiguration von Redis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53680</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53680"/>
		<updated>2022-05-05T06:13:10Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installation und Konfiguration von Redis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens ein „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
Testen Sie Ihre Server Sicherheit, es gibt dafür viele Anbieter, zwei davon habe ich nachfolgend verlinkt.&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53679</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53679"/>
		<updated>2022-05-05T06:08:15Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53678</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53678"/>
		<updated>2022-05-05T06:06:33Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53677</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53677"/>
		<updated>2022-05-05T06:05:51Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von fail2ban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53676</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53676"/>
		<updated>2022-05-05T06:04:18Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Absicherung von Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53675</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53675"/>
		<updated>2022-05-05T06:03:40Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Absicherung von Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch anders sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können diese PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, Nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53674</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53674"/>
		<updated>2022-05-05T06:00:52Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Installieren von Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53673</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53673"/>
		<updated>2022-05-05T05:58:03Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Erstellen der Let’s Encrypt Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53672</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53672"/>
		<updated>2022-05-05T05:57:13Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Erstellen der Let’s Encrypt Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53671</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53671"/>
		<updated>2022-05-05T05:55:08Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* MariaDB Installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53670</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53670"/>
		<updated>2022-05-05T05:52:04Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* MariaDB Installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
 service mysql stop&lt;br /&gt;
&lt;br /&gt;
 mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/my.cnf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
 nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53669</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53669"/>
		<updated>2022-05-05T05:48:45Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum Nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten&lt;br /&gt;
 systemctl enable nginx.service&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53668</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53668"/>
		<updated>2022-05-05T05:44:57Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Das folgende gilt nur für nur Debian Server (AMD64): */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für [https://www.nginx.com/ Nginx] und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53667</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53667"/>
		<updated>2022-05-05T05:44:21Z</updated>

		<summary type="html">&lt;p&gt;Scalar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53666</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53666"/>
		<updated>2022-05-05T05:42:39Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Vorbereiten der Einrichtung Ihres Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt.&lt;br /&gt;
&lt;br /&gt;
Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53665</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53665"/>
		<updated>2022-05-05T05:42:08Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Vorbereiten der Einrichtung Ihres Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53664</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53664"/>
		<updated>2022-05-05T05:41:17Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* Vorbereiten der Einrichtung Ihres Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier habe ich  2 vorgegeben, Sie können die Array ändern und  nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver neu für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53663</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53663"/>
		<updated>2022-05-05T05:37:17Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* UFW Firewall einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigenen Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier sind 2 angegeben, Sie können die Array nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die zwei Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver neu für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53662</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53662"/>
		<updated>2022-05-05T05:35:51Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* UFW Firewall einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für HTTP und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigene Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier sind 2 angegeben, Sie können die Array nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die zwei Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver neu für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53661</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53661"/>
		<updated>2022-05-05T05:34:53Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* UFW Firewall einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie am Server nur SSH Zugang mit der IP Ihres Clientrechners und dem SSH Port das Sie gewählt haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für http und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigene Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier sind 2 angegeben, Sie können die Array nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die zwei Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver neu für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53660</id>
		<title>Installieren und Härten von Dolibarr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Installieren_und_H%C3%A4rten_von_Dolibarr&amp;diff=53660"/>
		<updated>2022-05-05T05:32:54Z</updated>

		<summary type="html">&lt;p&gt;Scalar: /* UFW Firewall einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SSH Key erstellen und Verbindung herstellen==&lt;br /&gt;
Vorausgesetzt ist ein vorinstallierter Server mit&lt;br /&gt;
&lt;br /&gt;
[https://releases.ubuntu.com/20.04/ Ubuntu 20.04.x LTS Focal Fossa (x86-64)] bzw. [https://www.debian.org/releases/stable/debian-installer/index.de.html Debian Server 11 bullseye (x86-64)] Betriebssystem&lt;br /&gt;
&lt;br /&gt;
mit vorinstalliertem openssh&lt;br /&gt;
&lt;br /&gt;
Sie brauchen Root Rechte am Server&lt;br /&gt;
&lt;br /&gt;
Zugriff erfolgt über einen Windows PC&lt;br /&gt;
&lt;br /&gt;
Die Verbindung wird per SSH und [https://www.putty.org/ PuTTY] hergestellt Zusätzlich verwende ich [https://cmder.net/ Cmder]&lt;br /&gt;
&lt;br /&gt;
Hier kann man aber auch bei Windows im Startmenü in die Eingabezeile - cmd.exe - eingeben und bestätigen erfüllt den selben zweck&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Herstellen einer SSH Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
unter Windows das SSH-Paar erstellen mit Cmder ins eigene Benutzerverzeichnis wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;&lt;br /&gt;
SSH-Key erzeugen → Pfad und Name bestätigen (Enter) oder eigenen Pfad und Namen eingeben → Passphrase eingeben (man kann es auch leer lassen dies wird jedoch nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Standard Sicherheit 2048 Bit - höhere Sicherheit 4096 Bit&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa -b 4096&lt;br /&gt;
&#039;&#039;&#039;anmelden am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
befehle am Server über PuTTY eingeben anmelden mit SERVER.USERNAME und SERVER.PASSWORD‬‬‬‬‬‬‬‬‬‬&lt;br /&gt;
&lt;br /&gt;
System update&lt;br /&gt;
 sudo apt-get update -y &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
 sudo apt -y install software-properties-common&lt;br /&gt;
SSH Server installieren falls er bei der Ubuntu Installation nicht mitinstalliert wurde&lt;br /&gt;
 sudo apt install openssh-server&lt;br /&gt;
&#039;&#039;&#039;SSH als Service aktivieren&#039;&#039;&#039;&lt;br /&gt;
 sudo systemctl enable ssh&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start ssh&lt;br /&gt;
&#039;&#039;&#039;Ordner für SSH Key anlegen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
Dem Ordner die nötigen Rechte geben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chown -R &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&#039;&#039;&#039;SSH-Key und authorized-keys erstellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
wechseln auf Windows&lt;br /&gt;
&lt;br /&gt;
eingabe mit Cmder oder cmd.exe&lt;br /&gt;
&lt;br /&gt;
SSH-Key und authorized-keys erstellen im Windows Benutzerordner .ssh erstellen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.pub C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
aufs Benutzerkonto wechseln&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\&lt;br /&gt;
SSH-Key und authorized_keys auf den Server kopieren&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cat ~/.ssh/id_rsa.pub | ssh &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;@&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;quot;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
mit PuTTY am Server&lt;br /&gt;
&lt;br /&gt;
Ordner und Zugriffsrechte vergeben&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod 700 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.USERNAME&amp;lt;/span&amp;gt;/.ssh/authorized_keys&lt;br /&gt;
testen ob SSH Autorisiergun läuft&lt;br /&gt;
 eval &amp;quot;$(ssh-agent)&amp;quot;&lt;br /&gt;
Wenn Sie ein „ Agent pid ….“ Erhalten hat alles geklappt und der SSH-Key am PC kann gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu &#039;&#039;&#039;wechseln Sie auf Ihren Windows&#039;&#039;&#039; PC und geben bei Cmder oder cmd.exe den Befehl zum löschen des authorized_keys ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 rm C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\authorized_keys&lt;br /&gt;
Server SSH Härten und absichern&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mit PuTTY am Server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
umbenennen der sshd_config in sshd_config.bak&lt;br /&gt;
 sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak&lt;br /&gt;
mit einem Texteditor können Sie jetzt die leere sshd_config erstellen&lt;br /&gt;
 sudo nano /etc/ssh/sshd_config&lt;br /&gt;
Bitte Fügen Sie dazu nachstehendes ein&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie auch ein alternatives SSH Port eintragen&lt;br /&gt;
&lt;br /&gt;
ein freies Port können Sie hier finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This is the sshd server system-wide configuration file.  See&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sshd_config(5) for more information.&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The strategy used for options in the default sshd_config shipped with&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; OpenSSH is to specify options with their default value where&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; possible, but leave them commented.  Uncommented options override the&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; default value.&lt;br /&gt;
 &lt;br /&gt;
 Include /etc/ssh/sshd_config.d/*.conf&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Standart Port ist 22&lt;br /&gt;
 Port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AddressFamily any&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress 0.0.0.0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ListenAddress ::&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
 &lt;br /&gt;
    # Ciphers and keying&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;RekeyLimit default none&lt;br /&gt;
 &lt;br /&gt;
    # Logging&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;SyslogFacility AUTH&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;LogLevel INFO&lt;br /&gt;
 &lt;br /&gt;
    # Authentication:&lt;br /&gt;
 LoginGraceTime 20&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;StrictModes yes&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxSessions 10&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 &lt;br /&gt;
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedPrincipalsFile none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommand none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;AuthorizedKeysCommandUser nobody&lt;br /&gt;
 &lt;br /&gt;
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication no&lt;br /&gt;
    # Change to yes if you don&#039;t trust ~/.ssh/known_hosts for&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;HostbasedAuthentication&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;IgnoreUserKnownHosts no&lt;br /&gt;
    # Don&#039;t read the user&#039;s ~/.rhosts and ~/.shosts files&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 &lt;br /&gt;
    # To disable tunneled clear text passwords, change to no here!&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 &lt;br /&gt;
    # Change to yes to enable challenge-response passwords (beware issues with&lt;br /&gt;
    # some PAM modules and threads)&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 &lt;br /&gt;
    # Kerberos options&lt;br /&gt;
 KerberosAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosOrLocalPasswd yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosTicketCleanup yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;KerberosGetAFSToken no&lt;br /&gt;
 &lt;br /&gt;
    # GSSAPI options&lt;br /&gt;
 GSSAPIAuthentication no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPICleanupCredentials yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIStrictAcceptorCheck yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GSSAPIKeyExchange no&lt;br /&gt;
 &lt;br /&gt;
    # Set this to &#039;yes&#039; to enable PAM authentication, account processing,&lt;br /&gt;
    # and session processing. If this is enabled, PAM authentication will&lt;br /&gt;
    # be allowed through the ChallengeResponseAuthentication and&lt;br /&gt;
    # PasswordAuthentication.  Depending on your PAM configuration,&lt;br /&gt;
    # PAM authentication via ChallengeResponseAuthentication may bypass&lt;br /&gt;
    # the setting of &amp;quot;PermitRootLogin without-password&amp;quot;.&lt;br /&gt;
    # If you just want the PAM account and session checks to run without&lt;br /&gt;
    # PAM authentication, then enable this but set PasswordAuthentication&lt;br /&gt;
    # and ChallengeResponseAuthentication to &#039;no&#039;.&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 AllowAgentForwarding no&lt;br /&gt;
 AllowTcpForwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;GatewayPorts no&lt;br /&gt;
 X11Forwarding no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11DisplayOffset 10&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;X11UseLocalhost yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PermitTTY yes&lt;br /&gt;
 PrintMotd no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PrintLastLog yes&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;TCPKeepAlive yes&lt;br /&gt;
 PermitUserEnvironment no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Compression delayed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveInterval 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ClientAliveCountMax 3&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;UseDNS no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;PidFile /var/run/sshd.pid&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;MaxStartups 10:30:100&lt;br /&gt;
 PermitTunnel no&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;ChrootDirectory none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;VersionAddendum none&lt;br /&gt;
     # no default banner path&lt;br /&gt;
 Banner none&lt;br /&gt;
     # Allow client to pass locale environment variables&lt;br /&gt;
 AcceptEnv LANG LC_*&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; override default of no subsystems&lt;br /&gt;
 Subsystem sftp  /usr/lib/openssh/sftp-server&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
 sshd_config neu laden&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart ssh&lt;br /&gt;
verwendeten SSH-Port anzeigen&lt;br /&gt;
 grep -i port /etc/ssh/sshd_config&lt;br /&gt;
&#039;&#039;&#039;Die Putty Shell nicht schließen bitte erst den nächsten Schritt am Windows PC durchführen&#039;&#039;&#039;&lt;br /&gt;
==PuTTY einrichten==&lt;br /&gt;
PuTTYgen starten → Conversation → Import Key und den Privaten Schlüssel - id_rsa - laden (Passphrase eingeben)&lt;br /&gt;
&lt;br /&gt;
in PuTTYgen auf → Save private key - klicken und das File als - id_rsa.ppk - speichern&lt;br /&gt;
&lt;br /&gt;
sollte eine Passphrase beim laden abgefragt worden sein wird diese übernommen, sonst die Frage nach der Passphrase mit JA/YES beantworten und weiter ohne Passphrase&lt;br /&gt;
&lt;br /&gt;
PuTTY starten rechts auf → Conection - Data → bei Auto-login username den sudo Root User des Servers eintragen&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Conection → SSH → Auth → klicken und unter - Private key file for authentication - den SSH-Key eingeben - C:\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Users\Name&amp;lt;/span&amp;gt;\.ssh\id_rsa.ppk&lt;br /&gt;
&lt;br /&gt;
jetzt auf → Session - klicken → unter Host Name (or IP address) die IP adresse des Servers oder den Hostnamen eingeben und unter Port das gewählte SSH Port&lt;br /&gt;
&lt;br /&gt;
bei Connection type: SSH auswählen&lt;br /&gt;
&lt;br /&gt;
unter - Save Sessions - einen Namen eingeben und mit Save speichern&lt;br /&gt;
&lt;br /&gt;
ein Doppelklick auf diesen Namen öffnet das Eingabefeld zum Server&lt;br /&gt;
&lt;br /&gt;
PuTTY neustarten und mit neuem Port einloggen&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich mit Ihrem neuen Port und dem SSH-Key nicht anmeldet können, haben Sie einen Fehler in den Vorhergehenden Schritten und sollten diesen jetzt beheben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sie haben keinen Zugriff mehr über SSH wenn es hier einen Fehler gibt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist alles okay - &amp;gt; Putty Shell schließen&lt;br /&gt;
 exit&lt;br /&gt;
und mit Ihren neu eingerichdeten SSH Zugang einloggen - anmelden mit Ihrem &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.PASSWORD&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UFW Firewall einrichten==&lt;br /&gt;
Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
wenn inaktiv UFW Firewall aktivieren und mit ‚y‘ bestätigen&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
alle eingehenden Anfragen blocken&lt;br /&gt;
 sudo ufw default deny incoming&lt;br /&gt;
alle ausgehenden Anfragen erlauben&lt;br /&gt;
 sudo ufw default allow outgoing&lt;br /&gt;
IPv6 unterstützung aktivieren&lt;br /&gt;
 cat /etc/default/ufw&lt;br /&gt;
Sie können mit dem Standard SSH Port weitermachen, wenn Sie es nicht geändert haben&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow SSH&lt;br /&gt;
Falls Sie das Port geändert haben verwenden Sie bitte diesen Befehl&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rote Port mit Ihrem Port ersetzen&lt;br /&gt;
 #sudo ufw allow &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
zusätzliche Sicherheit gibt es, wenn man nur ausgewählte IP Adresse zulässt&lt;br /&gt;
&lt;br /&gt;
die FROM.IP identifizieren mit der man am Server angemeldet ist&lt;br /&gt;
 w&lt;br /&gt;
erhaltene IP Adresse übernehmen und als &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; Adresse einfügen – ggf. eigene Portadresse.&lt;br /&gt;
&lt;br /&gt;
So haben Sie nur SSH Zugang für die IP des Clientrechners mit dem SSH Port das Sie gewählt haben am Server&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw allow proto tcp from &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER.IP&amp;lt;/span&amp;gt; port &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
Wenn Sie diese Einstellung machen müssen Sie in Ihrem Router dafür sorgen das Ihr PC immer dieselbe &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;FROM.IP&amp;lt;/span&amp;gt; hat. &lt;br /&gt;
&lt;br /&gt;
Zu guter Letzt müssen Sie für einen reibungslosen Betrieb noch die Standart Ports für http und HTTPS freigeben. &lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
ggf Limits für das SSH Port eingeben&lt;br /&gt;
&lt;br /&gt;
Näheres dazu finden Sie zum beispiel [https://www.cyberciti.biz/faq/howto-limiting-ssh-connections-with-ufw-on-ubuntu-debian/ hier]&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;sudo ufw limit ssh&lt;br /&gt;
zur Kontrolle Firewall Status abfragen&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
UFW Firewall neustarten&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
Überprüfen ob die UFW Firewall als Service einrichten ist und UFW bei jedem Neustart des Servers aktiviert wird - mit ‚q‘ verlassen&lt;br /&gt;
 sudo systemctl status ufw.service&lt;br /&gt;
nicht zu empfehlen aber manchmal nötig&lt;br /&gt;
&lt;br /&gt;
UFW Firewall deaktivieren - deaktiviert auch den Service&lt;br /&gt;
&lt;br /&gt;
Falls Sie diesen Befehl verwenden bitte die # vor sudo entfernen&lt;br /&gt;
 #sudo ufw disable&lt;br /&gt;
Starten Sie Ihren Server und Putty neu&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
Die Einrichtung Ihres gesicherten SSH Zuganges und der Ubuntu eigene Firewall ist jetzt abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
==Vorbereiten der Einrichtung Ihres Servers==&lt;br /&gt;
Nach dem Neustart melden Sie sich mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie die folgenden Softwarepakete, als notwendige Grundlage für den Serverbetriebs&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip bzip2 ffmpeg ghostscript libfile-fcntllock-perl libfontconfig1 libfuse2 lsb-release socat&lt;br /&gt;
Nach der Installation sorgen Sie für eine saubere Umgebung und machen ein Server update, upgrade und bereinigen den Server von unnötigen Datensätzen.&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Tragen Sie den zukünftigen Servernamen sowohl in die hosts-Datei, als auch in die hostname-Datei ein.&lt;br /&gt;
 mv /etc/host /etc/host.bak&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 127.0.0.1 localhost&lt;br /&gt;
 127.0.1.1 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;lt;/nowiki&amp;gt;1       &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; ip6-localhost ip6-loopback&lt;br /&gt;
 fe00::0   ip6-localnet&lt;br /&gt;
 ff00::0   ip6-mcastprefix&lt;br /&gt;
 ff02::1   ip6-allnodes&lt;br /&gt;
 ff02::2   ip6-allrouters&lt;br /&gt;
 &amp;lt;externe IPv4&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;externe IPv6&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Geben Sie den korrekten Servername in der hostname-Datei an&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
Der Servername muss als FQDN, also vollqualifiziert angegeben werden&lt;br /&gt;
&lt;br /&gt;
vorhandenen Eintrag löschen und mit neuem ersetzen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Die meisten Internet Provider betreiben ihren eigenen Zeitserver.&lt;br /&gt;
&lt;br /&gt;
Hier eine kleine Liste der Zeitserver Adressen in [https://www.ntp-server.de/ntp-server-deutschland/ Deutschland], [https://www.ntp-server.de/ntp-server-oesterreich/ Österreich], [https://www.ntp-server.de/ntp-server-schweiz/ Schweiz]&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen das man 5 Zeitserver einbinden soll, hier sind 2 angegeben, Sie können die Array nach Ihren wünschen erweitern&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie den Zeitserverdienst und fügen Sie die zwei Zeitserver hinzu.&lt;br /&gt;
 NTP=ntp1.dismail.de ntp2.dismail.de&lt;br /&gt;
Speichern und den Zeitserver neu für Ihren Server neu Starten&lt;br /&gt;
 systemctl restart systemd-timesyncd&lt;br /&gt;
Für die Individuelle Nutzung ist es nicht praktikabel das der Server in den Energiesparmodus wechselt. Daher sorgen Sie nun dafür, dass der Server dies nicht tut.&lt;br /&gt;
 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit Ihren privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
Fügen Sie dem System weitere Software-Repositorien (Softwarequellen) hinzu, um die aktuellen Releases der jeweiligen Pakete installieren zu können.&lt;br /&gt;
==Installieren von NGINX==&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für Ubuntu Server (AMD64 und ARM64)&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „ubuntu-keyring“ installiert ist&lt;br /&gt;
 apt install -y ubuntu-keyring&lt;br /&gt;
Fügen Sie Ihrem System den nginx-Key hinzu&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Tragen Sie anschließend die Softwarequellen für [https://www.nginx.com/ Nginx] ein&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/ubuntu&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
Um auch die aktuellen PHP-Ressourcen verwenden zu können fügen wir das entsprechende&lt;br /&gt;
&lt;br /&gt;
Repository hinzu:&lt;br /&gt;
 add-apt-repository -y ppa:ondrej/php&lt;br /&gt;
===&#039;&#039;&#039;Das folgende gilt nur für nur Debian Server (AMD64):&#039;&#039;&#039;===&lt;br /&gt;
Stellen Sie sicher, dass das Paket „debian-archive-keyring“ installiert ist&lt;br /&gt;
 apt install -y debian-archive-keyring&lt;br /&gt;
Fügen sie Ihrem Server den nginx-Key hinzu:&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://nginx.org/keys/nginx_signing.key&amp;lt;/nowiki&amp;gt; | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg &amp;gt;/dev/null&lt;br /&gt;
Ergänzen Sie die Softwarequellen für Nginx und PHP&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] &amp;lt;nowiki&amp;gt;http://nginx.org/packages/mainline/debian&amp;lt;/nowiki&amp;gt; `lsb_release -cs` nginx&amp;quot; | tee /etc/apt/sources.list.d/nginx.list&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64] &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/&amp;lt;/nowiki&amp;gt; $(lsb_release -cs) main&amp;quot; | tee /etc/apt/sources.list.d/php.list&lt;br /&gt;
Um auch den PHP-Quellen vertrauen zu können ergänzen wir auch diesen Schlüssel:&lt;br /&gt;
 wget -qO - &amp;lt;nowiki&amp;gt;https://packages.sury.org/php/apt.gpg&amp;lt;/nowiki&amp;gt; | apt-key add -&lt;br /&gt;
===&#039;&#039;&#039;Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:&#039;&#039;&#039;===&lt;br /&gt;
Ergänzen Sie die Paketquellen für MariaDB und aktualisieren das System&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung MariaDB&#039;&#039;&#039;:&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://downloads.mariadb.com/MariaDB/mariadb_repo_setup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x mariadb_repo_setup&lt;br /&gt;
 ./mariadb_repo_setup --mariadb-server-version=&amp;quot;mariadb-10.6&amp;quot;&lt;br /&gt;
Aktualisierung des Servers:&lt;br /&gt;
 apt update&lt;br /&gt;
Um sicherzustellen, dass keine Relikte früherer Installationen den Betrieb des Webserver stören, entfernen wir diese&lt;br /&gt;
 apt remove nginx nginx-extras nginx-common nginx-full -y --allow-change-held-packages&lt;br /&gt;
Zudem stellen wir sicher, dass das Pendant (Apache2) zum nginx Webserver weder aktiv noch installiert ist.&lt;br /&gt;
 systemctl stop apache2.service &amp;amp;&amp;amp; systemctl disable apache2.service&lt;br /&gt;
Nun sind die Vorbereitungen zur Installation des Webservers Nginx abgeschlossen und wir können diesen mit dem nachfolgenden Befehl installieren&lt;br /&gt;
 apt install -y nginx&lt;br /&gt;
und den Dienst zum automatischen Start nach einem Systemneustart einrichten systemctl enable nginx.service&lt;br /&gt;
&lt;br /&gt;
Mit Blick auf die späteren Anpassungen wird die Standardkonfiguration gesichert und eine neue Konfigurationsdatei geöffnet&lt;br /&gt;
 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &amp;amp;&amp;amp; touch /etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/nginx/nginx.conf&lt;br /&gt;
Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 user www-data;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 pid /var/run/nginx.pid;&lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
    multi_accept on; use epoll;&lt;br /&gt;
 }&lt;br /&gt;
 http {&lt;br /&gt;
    server_names_hash_bucket_size 64;&lt;br /&gt;
    access_log /var/log/nginx/access.log;&lt;br /&gt;
    error_log /var/log/nginx/error.log warn;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;# set_real_ip_from 127.0.0.1;        # eine Änderung ist nur nötig, wenn Sie nicht auf Localhost sind&amp;lt;/span&amp;gt;&lt;br /&gt;
    real_ip_header X-Forwarded-For;&lt;br /&gt;
    real_ip_recursive on;&lt;br /&gt;
    include /etc/nginx/mime.types;&lt;br /&gt;
    default_type application/octet-stream;&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    send_timeout 3600;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    open_file_cache max=500 inactive=10m;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
    resolver 127.0.0.53 valid=30s;&lt;br /&gt;
    resolver_timeout 5s;&lt;br /&gt;
    include /etc/nginx/conf.d/*.conf;&lt;br /&gt;
 }&lt;br /&gt;
Speichern Sie die Datei und schließen Sie diese, um im Anschluss den Webserver neu zu starten&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Legen Sie drei Ordner an und setzen die korrekten Berechtigungen&lt;br /&gt;
 /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    für die zukünftigen log Files&lt;br /&gt;
 /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;        -&amp;gt;    ist Ihr Dokument Ortner&lt;br /&gt;
 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;    -&amp;gt;    ist Ihr ROOT Ordner für Dolibarr&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mkdir -p /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt; /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt; /var/log/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Erstellen Sie die nötigen Ordner für die SSL-Zertifikate&lt;br /&gt;
 mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs&lt;br /&gt;
Markieren des „Hilfs“ SSL Zertifikats&lt;br /&gt;
 make-ssl-cert generate-default-snakeoil -y&lt;br /&gt;
Starten Sie abschließend den Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
und melden sich dann erneut mit privilegierten Benutzerrechten am Server an&lt;br /&gt;
 sudo -s&lt;br /&gt;
==PHP Installieren==&lt;br /&gt;
Das [https://www.php.net/ PHP] Repository wurde bereits im vorherigen Kapitel eingerichtet und aktiviert, so dass wir direkt mit der Installation beginnen können&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-mcrypt php7.4-json php7.4-xmlrpc php7.4-soap php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip&lt;br /&gt;
Setzen Sie das richtige Datumsformat, um auch ein korrektes Logging zu ermöglichen&lt;br /&gt;
&lt;br /&gt;
[https://www.php.net/manual/en/timezones.europe.php Hier] eine Aufstellung um die für Sie passende zu finden&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 timedatectl set-timezone &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe/Berlin&amp;lt;/span&amp;gt;&lt;br /&gt;
jetzt können wir die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/file_uploads =.*/file_uploads = On/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/memory_limit =.*/memory_limit = 1024M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/upload_max_filesize =.*/upload_max_filesize = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/post_max_size =.*/post_max_size = 100M/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/max_execution_time =.*/max_execution_time = 3600/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;date.timezone =.*/date.timezone = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Europe&amp;lt;/span&amp;gt;\/\&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Berlin&amp;lt;/span&amp;gt;/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==MariaDB Installieren==&lt;br /&gt;
Die Installation von [https://mariadb.org/ MariaDB] erfolgt mit diesem Befehl&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y mariadb-server&lt;br /&gt;
Härten wir nun den Datenbankserver mittels des mitgelieferten Tools „mysql_secure_installation“&lt;br /&gt;
&lt;br /&gt;
Bei einer Erstinstallation besteht kein Root Passwort, so dass Sie die Abfrage mit ENTER bestätigen könne. Es wird empfohlen, ein Passwort direkt zu setzen, der entsprechende Dialog erscheint automatisch&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
 Enter current password for root (enter for none): &amp;lt;ENTER&amp;gt;&lt;br /&gt;
 Switch to unix_socket authentication [Y/n] Y&lt;br /&gt;
 Set root password? [Y/n] Y&lt;br /&gt;
 &lt;br /&gt;
 root-Passwort 2-mal eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
 &lt;br /&gt;
 Remove anonymous users? [Y/n] Y&lt;br /&gt;
 Disallow root login remotely? [Y/n] Y&lt;br /&gt;
 Remove test database and access to it? [Y/n] Y&lt;br /&gt;
 Reload privilege tables now? [Y/n] Y&lt;br /&gt;
Stoppen Sie nun den Datenbankserver und sichern dann die Standardkonfiguration, um unmittelbar danach Anpassungen vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
service mysql stop&lt;br /&gt;
&lt;br /&gt;
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
nano /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die leere Datei&lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 port = 3306&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld_safe]&lt;br /&gt;
 log_error=/var/log/mysql/mysql_error.log&lt;br /&gt;
 nice = 0&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
 bind-address = 127.0.0.1&lt;br /&gt;
 binlog_format = ROW&lt;br /&gt;
 bulk_insert_buffer_size = 16M&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 concurrent_insert = 2&lt;br /&gt;
 connect_timeout = 5&lt;br /&gt;
 datadir = /var/lib/mysql&lt;br /&gt;
 default_storage_engine = InnoDB&lt;br /&gt;
 expire_logs_days = 2&lt;br /&gt;
 general_log_file = /var/log/mysql/mysql.log&lt;br /&gt;
 general_log = 0&lt;br /&gt;
 innodb_buffer_pool_size = 2G&lt;br /&gt;
 innodb_buffer_pool_instances = 1&lt;br /&gt;
 innodb_flush_log_at_trx_commit = 2&lt;br /&gt;
 innodb_log_buffer_size = 32M&lt;br /&gt;
 innodb_max_dirty_pages_pct = 90&lt;br /&gt;
 innodb_file_per_table = 1&lt;br /&gt;
 innodb_open_files = 400&lt;br /&gt;
 innodb_io_capacity = 4000&lt;br /&gt;
 innodb_flush_method = O_DIRECT&lt;br /&gt;
 innodb_read_only_compressed=OFF&lt;br /&gt;
 key_buffer_size = 128M&lt;br /&gt;
 lc_messages_dir = /usr/share/mysql&lt;br /&gt;
 lc_messages = en_US&lt;br /&gt;
 log_bin = /var/log/mysql/mariadb-bin&lt;br /&gt;
 log_bin_index = /var/log/mysql/mariadb-bin.index&lt;br /&gt;
 log_error = /var/log/mysql/mysql_error.log&lt;br /&gt;
 log_slow_verbosity = query_plan&lt;br /&gt;
 log_warnings = 2&lt;br /&gt;
 long_query_time = 1&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 max_binlog_size = 100M&lt;br /&gt;
 max_connections = 200&lt;br /&gt;
 max_heap_table_size = 64M&lt;br /&gt;
 myisam_recover_options = BACKUP&lt;br /&gt;
 myisam_sort_buffer_size = 512M&lt;br /&gt;
 port = 3306&lt;br /&gt;
 pid-file = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 query_cache_limit = 2M&lt;br /&gt;
 query_cache_size = 64M&lt;br /&gt;
 query_cache_type = 1&lt;br /&gt;
 query_cache_min_res_unit = 2k&lt;br /&gt;
 read_buffer_size = 2M&lt;br /&gt;
 read_rnd_buffer_size = 1M&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 skip-name-resolve&lt;br /&gt;
 slow_query_log_file = /var/log/mysql/mariadb-slow.log&lt;br /&gt;
 slow-query-log = 1&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 sort_buffer_size = 4M&lt;br /&gt;
 table_open_cache = 400&lt;br /&gt;
 thread_cache_size = 128&lt;br /&gt;
 tmp_table_size = 64M&lt;br /&gt;
 tmpdir = /tmp&lt;br /&gt;
 transaction_isolation = READ-COMMITTED&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;unix_socket=OFF&lt;br /&gt;
 user = mysql&lt;br /&gt;
 wait_timeout = 600&lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 16M&lt;br /&gt;
 quick&lt;br /&gt;
 quote-names&lt;br /&gt;
 [isamchk]&lt;br /&gt;
 key_buffer = 16M&lt;br /&gt;
Speichern und schließen Sie die Datei und starten dann den Datenbankserver neu, um die Dolibarr-Datenbank, den Dolibarr-Benutzer und sein Passwort einzurichten:&lt;br /&gt;
&lt;br /&gt;
root-Passwort eingeben – &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 service mysql restart&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -p&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost identified by &#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt;&#039;; GRANT ALL PRIVILEGES on &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt;.* to &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankUser&amp;lt;/span&amp;gt;@localhost; FLUSH privileges; quit;&lt;br /&gt;
Aus Erfahrung heraus empfehle ich Ihnen, den Server einmalig neu zu starten:&lt;br /&gt;
 reboot now&lt;br /&gt;
Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien ein und modifizieren die Standard vhost-Datei persistent.&lt;br /&gt;
&lt;br /&gt;
Sichern die Standard vhost-Datei namens default.conf und legen leere vHost-Dateien zum Konfigurieren an.&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
 [ -f /etc/nginx/conf.d/default.conf ] &amp;amp;&amp;amp; mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/default.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/http.conf&lt;br /&gt;
&lt;br /&gt;
 touch /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Dolibarr betrieb nicht beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen&lt;br /&gt;
 nano /etc/nginx/conf.d/http.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 upstream php-handler {&lt;br /&gt;
 server unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
 }&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80 default_server;&lt;br /&gt;
 listen [::]:80 default_server;&lt;br /&gt;
 server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 root /var/www;&lt;br /&gt;
 location ^~ /.well-known/acme-challenge {&lt;br /&gt;
 default_type text/plain;&lt;br /&gt;
 root /var/www/letsencrypt;&lt;br /&gt;
 }&lt;br /&gt;
 location / {&lt;br /&gt;
 return 301 &amp;lt;nowiki&amp;gt;https://$host$request_uri&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
Bearbeiten Sie nun die eigentliche Dolibarr vHost-Datei „dolibarr.conf“, die sämtliche Konfigurationen für den Betrieb von Dolibarr enthält.&lt;br /&gt;
 nano /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Kopieren Sie alle nachfolgenden Zeilen in die Datei dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443      ssl http2;&lt;br /&gt;
    listen [::]:443 ssl http2;&lt;br /&gt;
    root /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs;&lt;br /&gt;
    index  index.php index.html index.htm;&lt;br /&gt;
    server_name &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;&lt;br /&gt;
    ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;&lt;br /&gt;
    #ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;&lt;br /&gt;
    #ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;&lt;br /&gt;
    #ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;&lt;br /&gt;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:SSL:50m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.3 TLSv1.2;&lt;br /&gt;
    ssl_ciphers &#039;TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384&#039;;&lt;br /&gt;
    ssl_ecdh_curve X448:secp521r1:secp384r1;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
    ssl_stapling on;&lt;br /&gt;
    ssl_stapling_verify on;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
    client_body_timeout 3600s;&lt;br /&gt;
    fastcgi_buffers 64 4K;&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
    try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)&lt;br /&gt;
    {&lt;br /&gt;
    return 404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ [^/]\.php(/|$)&lt;br /&gt;
    {&lt;br /&gt;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_read_timeout 3600;&lt;br /&gt;
        fastcgi_send_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ ^/api/(?!(index\.php))(.*)&lt;br /&gt;
    {&lt;br /&gt;
        try_files $uri /api/index.php/$2?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_comp_level 4;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;&lt;br /&gt;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;&lt;br /&gt;
 &lt;br /&gt;
    location ^~ /.well-known&lt;br /&gt;
    {&lt;br /&gt;
        location = /.well-known/carddav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location = /.well-known/caldav&lt;br /&gt;
        {&lt;br /&gt;
            return 301 /remote.php/dav/;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/acme-challenge&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location /.well-known/pki-validation&lt;br /&gt;
        {&lt;br /&gt;
            try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        return 301 /index.php$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
wenn Sie Ihr Dolibarr hinter einem Proxi oder Revers-Proxi installieren müssen Sie dafür eine weiter .conf erstellen&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/conf.d/proxi.conf&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nachstehendes in Ihre proxi.conf&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur verwenden, wenn Sie einen Proxi oder revers-Proxi Server nutzen&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    location /&lt;br /&gt;
    {&lt;br /&gt;
        proxy_pass &amp;lt;nowiki&amp;gt;http://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;SERVER-IP&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
        client_max_body_size 100M;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines [https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Diffie-Hellman] Schlüssels&lt;br /&gt;
 openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096&lt;br /&gt;
Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten Sie den Webserver erneut.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Webserver erneut starten.&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Erstellen der Let’s Encrypt Zertifikate==&lt;br /&gt;
Bitte stellen Sie sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Aktualisieren von [https://letsencrypt.org/ Let’s Encrypt] Zertifikaten erfolgt zwingend über http und Port 80!&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf einem Heimserver arbeiten erfolgt die Freigabe auf Ihren Router&lt;br /&gt;
&lt;br /&gt;
Zudem muss eine Umleitung Ihrer Domain bei Ihrem Provider bestehen.&lt;br /&gt;
&lt;br /&gt;
Wie das geht erfahren sie bei Ihrem Provider und in den Einstellungen Ihres Routers.&lt;br /&gt;
&lt;br /&gt;
Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu&lt;br /&gt;
&lt;br /&gt;
Einfach Enter drücken ohne etwas einzutragen bis -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Is the information correct? [Y/n] Y&lt;br /&gt;
 adduser --disabled-login certuser&lt;br /&gt;
geben Sie Ihrem „Hilfsuser“ die nötigen Rechte&lt;br /&gt;
 usermod -a -G www-data certuser&lt;br /&gt;
Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.&lt;br /&gt;
 touch /etc/sudoers.d/certuser&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/sudoers.d/certuser&lt;br /&gt;
 certuser ALL=NOPASSWD: /bin/systemctl reload nginx.service&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu befüllen&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in die Shell des neuen Benutzers (certuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anschluss wieder&lt;br /&gt;
 su - certuser&lt;br /&gt;
&lt;br /&gt;
 curl &amp;lt;nowiki&amp;gt;https://get.acme.sh&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt &amp;amp;&amp;amp; chmod -R 770 /etc/letsencrypt &amp;amp;&amp;amp; chown -R www-data:www-data /var/www/ /etc/letsencrypt&lt;br /&gt;
Setzen Sie Let’s Encrypt als Standard CA für Ihren Server&lt;br /&gt;
 su - certuser -c &amp;quot;.acme.sh/acme.sh --set-default-ca --server letsencrypt&amp;quot;&lt;br /&gt;
und wechseln dann erneut in die Shell des neuen Benutzers&lt;br /&gt;
 su - certuser&lt;br /&gt;
&#039;&#039;&#039;Den nachfolgenden Schritt bitte sehr sorgfältig durchlesen, anpassen und ausführen!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let’s Encrypt gestattet nur maximal 5 Wiederholungen pro Domain und Woche, bei jedem durchlauf sind somit 2 Vorgänge weg.&lt;br /&gt;
&lt;br /&gt;
Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei ihre.domain.de mit Ihrer Domain&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 acme.sh --issue -d &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd &amp;quot;sudo /bin/systemctl reload nginx.service&amp;quot;&lt;br /&gt;
Verlassen Sie die Shell des neuen Benutzers&lt;br /&gt;
 exit&lt;br /&gt;
Jetzt legen Sie ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert&lt;br /&gt;
 nano /root/permissions.sh&lt;br /&gt;
Kopieren Sie alle Zeilen in die Datei das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;!/bin/bash&lt;br /&gt;
 find /var/www/ -type f -print0 | xargs -0 chmod 0640&lt;br /&gt;
 find /var/www/ -type d -print0 | xargs -0 chmod 0750&lt;br /&gt;
 chmod -R 775 /var/www/letsencrypt&lt;br /&gt;
 chmod -R 770 /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /var/www /etc/letsencrypt&lt;br /&gt;
 chown -R www-data:www-data /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
Markieren Sie das Skript als ausführbar und führen es dann direkt aus&lt;br /&gt;
 chmod +x /root/permissions.sh&lt;br /&gt;
&lt;br /&gt;
 /root/permissions.sh&lt;br /&gt;
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt.&lt;br /&gt;
 sed -i &#039;/ssl-cert-snakeoil/d&#039; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.&lt;br /&gt;
 crontab -l -u certuser&lt;br /&gt;
Starten Sie jetzt den Webserver neu&lt;br /&gt;
 service nginx restart&lt;br /&gt;
==Installieren von Dolibarr==&lt;br /&gt;
Dafür gibt es mehrere Varianten.&lt;br /&gt;
&lt;br /&gt;
Die Lösung die ich benutze ist vielleicht nicht die eleganteste jedoch können Sie sich sicher sein, dass Sie die aktuellste Version von [https://www.dolibarr.org/ Dolibarr] verwendet.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie die Versionsnummer gegen die aktuelle Dollibarr Versions Nummer die Sie, unter anderem auch, [https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/ hier] finden können.&lt;br /&gt;
&lt;br /&gt;
Wir beginnen nun die ‚eigentliche‘ Installation von Dolibarr und laden das aktuelle Dolibarr Release herunter&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cd /tmp &amp;amp;&amp;amp; wget &amp;lt;nowiki&amp;gt;https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
Entpacken Sie Dolibarr&lt;br /&gt;
 unzip dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip &amp;amp;&amp;amp; rm /tmp/dolibarr-&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;15.0.1&amp;lt;/span&amp;gt;.zip&lt;br /&gt;
verschieben Sie den Inhalt von Ihem erzeugten Dolibarr Ordner in Ihr Webverzeichnis und entfernen Sie, im selben schritt, die Versionsnummer&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 mv dolibarr-15.0.1/* /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
setzen der Berechtigung&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chown -R www-data:www-data /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;&lt;br /&gt;
Wir können nun mit der installation von Dolibarr fortfahren.&lt;br /&gt;
&lt;br /&gt;
Öffnen Sie Dolibarr in Ihrem Browser&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 den Dokumentortner eintragen - /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;&lt;br /&gt;
 den &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankName&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Datenbank erstellen nicht anklicken&lt;br /&gt;
 DatenbankUser und &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;DatenbankPasswort&amp;lt;/span&amp;gt; eintragen&lt;br /&gt;
 Erstellen Sie ein Benutzerkonto… anklicken&lt;br /&gt;
 root und root-Passwort - &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;Ihr-starkes-stück-Passwort&amp;lt;/span&amp;gt; -eintragen&lt;br /&gt;
 Admin-Name und Admin-Passwort eintragen&lt;br /&gt;
jetzt können Sie sich bei Dolibarr einloggen&lt;br /&gt;
==Absicherung von Dolibarr==&lt;br /&gt;
Um Dolibarr in einer sicheren (zumindest sicherer) Umgebung zu nutzen machen Sie bitte mit der Serverseitigen Einrichtung weiter&lt;br /&gt;
&lt;br /&gt;
Server update und upgrade und unnötiges löschen&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Server neustart&lt;br /&gt;
 reboot now&lt;br /&gt;
und mit dem priviligierten Benutzerrechten am Server anmelden&lt;br /&gt;
 sudo -s&lt;br /&gt;
Jetzt wo die Installation geklappt hat können Sie die Lese- und Schreibzeiten wieder verringern&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_read_timeout.*/fastcgi_read_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/fastcgi_send_timeout.*/fastcgi_send_timeout 360/&amp;quot; /etc/nginx/conf.d/dolibarr.conf&lt;br /&gt;
Jetzt legen Sie die install.lock an um zu verhindern das eine erneute Installation erfolgt&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mnt/dokument&amp;lt;/span&amp;gt;/install.lock&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; nur ein Enter und wieder raus&lt;br /&gt;
Texteditor verlassen - bei nano CTRL+x (STRG+x) - save mit y bestätigen&lt;br /&gt;
&lt;br /&gt;
Wie solltes es auch ander5s sein müssen Sie auch die php.ini anpassen&lt;br /&gt;
 sed -i &amp;quot;s/session.use_strict_mode =.*/session.use_strict_mode = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.use_only_cookies =.*/session.use_only_cookies = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_httponly =.*/session.cookie_httponly = 1/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/session.cookie_samesite =.*/session.cookie_samesite = Lax/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/;allow_url_fopen =.*/allow_url_fopen = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/allow_url_include =.*/allow_url_include = Off/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Sie können die PHP-Funktionen deaktivieren, falls Sie keine Systembefehle in benutzerdefiniertem Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,passthru,shell_exec,system,proc_open,popen/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
für den fall das Sie Ihre Meinung ändert und doch benutzerdefinierte Code ausführen&lt;br /&gt;
 sed -i &amp;quot;s/disable_functions =.*/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
Starten Sie nun beide Dienste, nginx und PHP, neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
Öffnen Sie bei Dolibarr gehen Sie auf Einstellungen → Sicherheit → klick auf den Reiter Passwörter → ganz runter scrollen, hier klicken Sie bei -&amp;gt; Datenbankpasswort in der Konfigurationsdatei conf.php verschlüsselt speichern (empfohlene Einstellung) auf → Aktivieren&lt;br /&gt;
&lt;br /&gt;
gehen Sie zurück zur Serverseite&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 nano /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
nachstehendes suchen und anpassen, speichern und schließen&lt;br /&gt;
 $dolibarr_main_prod=&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;;   -&amp;gt;  ändern in -&amp;gt;    $dolibarr_main_prod=&#039;1&#039;;&lt;br /&gt;
Jetzt vergeben Sie an die /conf.php nur Leserechte&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 chmod -R 400 /var/www/&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;dolibarr&amp;lt;/span&amp;gt;/htdocs/conf/conf.php&lt;br /&gt;
&lt;br /&gt;
==Installieren von fail2ban==&lt;br /&gt;
Als nächstes installieren wir [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] um den Server gegen Brute-force-Attacken und&lt;br /&gt;
&lt;br /&gt;
fehlerhafte Login versuche zu schützen:&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y fail2ban&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort vergessen&amp;quot; und beschreiben sie&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passforgotten.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+--- Access to .*/passwordforgotten.php - action=buildnewpassword&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Erstellen Sie eine neue Filterdatei für &amp;quot;Passwort Falscheingabe&amp;quot; und beschreiben sie&lt;br /&gt;
&lt;br /&gt;
nachfolgend beschrieben&lt;br /&gt;
 touch /etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
Kopieren Sie alles von „cat …“ bis „… EOF“ und fügen es in die Shell ein:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt;/etc/fail2ban/filter.d/passwrong.conf&lt;br /&gt;
 [Definition]&lt;br /&gt;
 failregex = ^ [A-Z\s]+ &amp;lt;HOST&amp;gt;\s+functions_dolibarr::check_user_password_.* Authentication KO&lt;br /&gt;
 ignoreregex =&lt;br /&gt;
 EOF&lt;br /&gt;
Bestätigen Sie mit Enter um die Datei zu erstellen&lt;br /&gt;
&lt;br /&gt;
Damit dieser Filter zum Einsatz kommt, wird dies Fail2ban noch bekannt gemacht:&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Hier fügen wir folgenden Inhalt ein&lt;br /&gt;
 [passforgotten]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against call of passwordforgottenpage&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passforgotten&lt;br /&gt;
 logpath = /var/log/passforgotten.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
 &lt;br /&gt;
 [passwrong]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt; rule against bruteforce hacking (login + api)&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port    = http,https&lt;br /&gt;
 filter  = passwrong&lt;br /&gt;
 logpath = /var/log/passwrong.log&lt;br /&gt;
 action  = %(action_mw)s&lt;br /&gt;
 bantime  = 86400     ; 1 day&lt;br /&gt;
 findtime = 3600      ; 1 hour&lt;br /&gt;
 maxretry = 5&lt;br /&gt;
Erstellen Sie 2 Logfiles für ihre Dolibarr-Filter&lt;br /&gt;
&lt;br /&gt;
fügen Sie in jedes Log nur ein Enter ein und speichern&lt;br /&gt;
 nano /var/log/passforgotten.log&lt;br /&gt;
&lt;br /&gt;
 nano /var/log/passwrong.log&lt;br /&gt;
Mit den zuvor dargestellten Parametern wird nach 5 fehlerhaften Anmeldeversuchen (maxretry) innerhalb der letzten 3600 (findtime, das entspricht 1h) die IP des potentiellen Angreifers für einen Zeitraum von 86400 Sekunden (bantime, enspricht 1Tag) gesperrt.&lt;br /&gt;
&lt;br /&gt;
Starten Sie fail2ban neu und überprüfen den fail2ban-status&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
&lt;br /&gt;
 service fail2ban status&lt;br /&gt;
Wenn Sie alles richtig eingegeben haben ist der Status &amp;quot;grün&amp;quot; sein&lt;br /&gt;
==Installieren von Postfix==&lt;br /&gt;
Aktualisieren Sie ihren Server und installieren Sie [https://www.postfix.org/ Postfix].&lt;br /&gt;
&lt;br /&gt;
Sie haben damit die Möglichkeit, sich von Fail2ban, Apticron und bei SSH-Anmeldungen per Mail informieren zu lassen&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y postfix mailutils&lt;br /&gt;
Erstellen Sie Ihre Mailkonfiguration&lt;br /&gt;
 Wählen Sie zuerst Satellitensystem aus&lt;br /&gt;
 geben dann &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt; und zuletzt&lt;br /&gt;
 noch Ihren &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server&amp;lt;/span&amp;gt; ein&lt;br /&gt;
verschieben Sie die Original main.cf nach main.cf.bak&lt;br /&gt;
 mv /etc/postfix/main.cf /etc/postfix/main.cf.bak&lt;br /&gt;
und fügen Sie nun die folgende Postfixkonfiguration ein&lt;br /&gt;
 nano /etc/postfix/main.cf&lt;br /&gt;
Fügen Sie das Nachfolgende ein&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)&lt;br /&gt;
 biff = no&lt;br /&gt;
 append_dot_mydomain = no&lt;br /&gt;
 readme_directory = no&lt;br /&gt;
 compatibility_level = 2&lt;br /&gt;
 smtpd_tls_security_level=may&lt;br /&gt;
 smtp_tls_security_level=may&lt;br /&gt;
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
 myhostname = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;localhost                #sollten Ihr Server nicht der localhost sein das anpassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 alias_maps = hash:/etc/aliases&lt;br /&gt;
 alias_database = hash:/etc/aliases&lt;br /&gt;
 mydestination = $myhostname, &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre-domain.de&amp;lt;/span&amp;gt;, localhost.&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.dolain.de&amp;lt;/span&amp;gt;, localhost&lt;br /&gt;
 relayhost = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.Server&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;587&amp;lt;/span&amp;gt;&lt;br /&gt;
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
 mailbox_size_limit = 0&lt;br /&gt;
 recipient_delimiter = +&lt;br /&gt;
 inet_interfaces = loopback-only&lt;br /&gt;
 inet_protocols = all&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Bei Problemen mit IPv6 stellen Sie die Zeile wie nachfolgend um&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;inet_protocols = ipv4&lt;br /&gt;
 smtp_sasl_auth_enable = yes&lt;br /&gt;
 smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd&lt;br /&gt;
 smtp_sasl_security_options = noanonymous&lt;br /&gt;
 sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;br /&gt;
 smtp_use_tls = yes&lt;br /&gt;
 smtp_enforce_tls = yes&lt;br /&gt;
erstellen und hinterlegen Sie nun die Zugangsdaten für das Versenden von Mails&lt;br /&gt;
 nano /etc/postfix/sasl_passwd&lt;br /&gt;
verwenden Sie bitte hier Ihre Email Zugangsdaten von Ihrem Mailanbieter&lt;br /&gt;
&lt;br /&gt;
Tragen Sie die Daten wie folgt ein und ersetzen die roten Werte durch Ihre&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;smtp.server ihre@mailadresse.de&amp;lt;/span&amp;gt;:&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihr.Email.Passwort&amp;lt;/span&amp;gt;&lt;br /&gt;
Da in dieser Datei das Passwort im Klartext steht setzen wir die Dateiberechtigungen auf 600 (nur ein User mit Server-Root-Recht kann schreiben und lesen)&lt;br /&gt;
 chmod 600 /etc/postfix/sasl_passwd&lt;br /&gt;
Schreiben Sie nun die Domain in die Datei mailname&lt;br /&gt;
 nano /etc/mailname&lt;br /&gt;
Ersetzen Sie den roten Wert durch Ihre Email Domain&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Abschließend definieren wir noch den Bezug von Benutzern zu Mailadressen. Öffnen Sie die Datei&lt;br /&gt;
 nano /etc/postfix/sender_canonical&lt;br /&gt;
und legen dort Benutzer und Mailadressen fest&lt;br /&gt;
 root &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; &amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 www-data &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 default &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Jetzt werden die Konfiguration kompiliert und Postfix neu gestartet&lt;br /&gt;
 postmap /etc/postfix/sasl_passwd&lt;br /&gt;
&lt;br /&gt;
 postmap /etc/postfix/sender_canonical&lt;br /&gt;
&lt;br /&gt;
 service postfix restart&lt;br /&gt;
Testen Sie nun den Versandt einer Mail über Ihr Postfix&lt;br /&gt;
 echo &amp;quot;Dies ist eine Testmail&amp;quot; | mailx -s &amp;quot;Test ob Ihre Einstellungen richtig sind&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
Sollte die Mail nicht ankommen, so sehen Sie bitte im Log (mail.log) nach&lt;br /&gt;
 nano /var/log/mail.log&lt;br /&gt;
Passen Sie die PHP-Konfiguration an um auch PHP-Mails über postfix zu versenden&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den sendmail_path wie folgt:&lt;br /&gt;
 sed -i &amp;quot;s/;sendmail_path =.*/sendmail_path = \/usr\/\sbin\/\sendmail -t -i/&amp;quot; /etc/php/7.4/fpm/php.ini&lt;br /&gt;
und starten dann PHP neu&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
Ersetzen Sie in der fail2ban-Konfiguration die nachfolgenden Parameter durch Ihre, um Benachrichtigungen bei fehlerhaften Login versuchen und Banns zu erhalten. Sichern Sie dazu die Originalkonfiguration von fail2ban und bearbeiten diese dann&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/destemail =.*/destemail = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/sender =.*/sender = &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/mta =.*/mta = mail/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/action = %(action_)s.*/action = %(action_mwl)s/&amp;quot; /etc/fail2ban/jail.conf&lt;br /&gt;
Um bei einem Serverneustart fail2ban-Mails zu unterdrücken passen Sie die folgende Datei an&lt;br /&gt;
 nano /etc/fail2ban/action.d/mail-buffered.local&lt;br /&gt;
Kopieren Sie den Inhalt hinein&lt;br /&gt;
 [Definition]&lt;br /&gt;
 actionstart =&lt;br /&gt;
 actionstop =&lt;br /&gt;
Legen Sie dann Dummy-Dateien durch das Ausführen der folgenden Befehle an&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois-lines.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/mail-whois.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-buffered.local&lt;br /&gt;
&lt;br /&gt;
 cp /etc/fail2ban/action.d/mail-buffered.local /etc/fail2ban/action.d/sendmail-common.local&lt;br /&gt;
Starten Sie den fail2ban-Service neu&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
und Sie werden ab sofort (nur noch) bei Banns, also neu blockierten IP-Adressen die durch fehlerhafte Login versuche aufgefallen sind, informiert.&lt;br /&gt;
==Information über Server Updates und Upgrades==&lt;br /&gt;
[https://wiki.ubuntuusers.de/apticron/ Apticron] informiert Sie über verfügbare Systemaktualisierungen bzw. auch dann, wenn ihr System „up2date“ ist&lt;br /&gt;
&lt;br /&gt;
Installieren Sie Apticron aus den Standardsoftwarequellen von Ubuntu&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y apticron&lt;br /&gt;
Nun passen wir apticron an und ändern wenigstens die folgenden Parameter&lt;br /&gt;
&lt;br /&gt;
Die .conf ist selbsterklärend und Sie können weitere Anpassungen nach Ihren Vorstellungen vornehmen&lt;br /&gt;
 cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apticron/apticron.conf&lt;br /&gt;
Suchen Sie bitte mit strg+w (ctrl+w) alles vor dem &amp;quot;=&amp;quot; und ersetzen es mit Ihren Daten&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 EMAIL=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SYSTEM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_HOLDS=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 NOTIFY_NO_UPDATES=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: $NUM_PACKAGES package update(s)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_NO_UPDATES_SUBJECT=&#039;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;$SYSTEM: no updates available&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 CUSTOM_FROM=&amp;quot;&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
Überprüfen Sie Apticron und den soeben konfigurierten Mailversand indem sie Apticron aufrufen&lt;br /&gt;
 apticron&lt;br /&gt;
Sie erhalten nun umgehend eine Mailbenachrichtigungen über Ihren aktuellen Systemzustand. Passen Sie zuletzt noch den Cronjob an, um sich regelmäßig und automatisch benachrichtigen zu lassen&lt;br /&gt;
&lt;br /&gt;
cm /etc/cron.d/apticron /etc/cron.d/apticron.bak&lt;br /&gt;
 nano /etc/cron.d/apticron&lt;br /&gt;
nachfolgendes bitte einfügen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen - dabei handelt es sich um eine Zeitangabe - Minute Stunde&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;30 7&amp;lt;/span&amp;gt; * * * root if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi&lt;br /&gt;
Apticron Informiert Sie jetzt jeden zu der von Ihnen eingestellten Uhrzeit per Mail über Ihren Systemaktualitätsgrad und möglich Aktualisierungs Maßnahmen.&lt;br /&gt;
&lt;br /&gt;
Näheres über Cron und die möglichen intervalle können Sie [https://wiki.ubuntuusers.de/Cron/ hier] nachlesen&lt;br /&gt;
==Nachricht bei SSH Einwahl==&lt;br /&gt;
wenn Sie über erfolgreichen SSH-Einwahl informiert werden möchten Passen Sie die Profildatei an&lt;br /&gt;
 nano /etc/profile&lt;br /&gt;
erweitern Sie die Datei am Ende um die folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
das rot geschriebene mit Ihren Daten ersetzen&lt;br /&gt;
 if [ -n &amp;quot;$SSH_CLIENT&amp;quot; ]; then&lt;br /&gt;
         echo &#039;Login on&#039; `hostname` `date` `who -m` | mail -s &amp;quot;Login on `hostname` from `echo $SSH_CLIENT |&lt;br /&gt;
         awk &#039;{print $1}&#039;`&amp;quot; &amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre@mailadresse.de&amp;lt;/span&amp;gt;&lt;br /&gt;
 fi&lt;br /&gt;
Bei jeder erfolgreichen SSH-Einwahl werden Sie ab sofort aktiv benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
Solange Sie selbst es wahren ist alles okay – aber wenn nicht……&lt;br /&gt;
 service php7.4-fpm restart&lt;br /&gt;
&lt;br /&gt;
 service nginx restart&lt;br /&gt;
&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -V &amp;amp;&amp;amp; apt dist-upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&lt;br /&gt;
 reboot now&lt;br /&gt;
==Installation und Konfiguration von Redis==&lt;br /&gt;
So installieren Sie den [https://redis.io/ Redis] um die Dolibarrperformance zu steigern, da durch Redis die Last auf der MariaDB-Dolibarrdatenbank reduziert wird&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in den privilegierten Benutzermodus&lt;br /&gt;
 sudo -s&lt;br /&gt;
Installieren Sie Redis&lt;br /&gt;
 apt update -q4 &amp;amp;&amp;amp; apt install -y redis-server&lt;br /&gt;
Passen Sie die Redis Konfiguration durch das Sichern und Anpassen der Konfiguration durch Ausführen der nachfolgenden Befehle an&lt;br /&gt;
 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/port 6379/port 0/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/unixsocketperm 700/unixsocketperm 770/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 sed -i &amp;quot;s/# maxclients 10000/maxclients 10240/&amp;quot; /etc/redis/redis.conf&lt;br /&gt;
&lt;br /&gt;
 usermod -aG redis www-data&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;$avm.overcommit_memory = 1&#039; /etc/sysctl.conf&lt;br /&gt;
Starten Sie den gesamten Server neu&lt;br /&gt;
 reboot now&lt;br /&gt;
Gratulation, Redis ist jetzt Installiert und eingerichtet.&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat ist Ihre Dolibarr Installation jetzt im Internett mit einem SSL-Zertifikat verschlüsselt und kann mit&lt;br /&gt;
 https://&amp;lt;span style=&amp;quot;color:#e74c3c&amp;quot;&amp;gt;ihre.domain.de&amp;lt;/span&amp;gt;&lt;br /&gt;
aufgerufen werden&lt;br /&gt;
&lt;br /&gt;
Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers.&lt;br /&gt;
&lt;br /&gt;
Ziel sollte zudem sein, mindestens das nachfolgend dargestellte „A+“-Ergebnis in den Tests zu erzielen&lt;br /&gt;
&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
&lt;br /&gt;
https://observatory.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
Viel Spaß und erfolg bei der Installation und Nutzung von Dolibarr&lt;/div&gt;</summary>
		<author><name>Scalar</name></author>
	</entry>
</feed>