Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

Ubuntu / Debian Server Sicherheit

Registriert
11. Juni 2010
Beiträge
4.077
Reaktionspunkte
2.854
Punkte
373
Hallo Zusammen,

da ich immer wieder PNs bzgl. meiner HowTo´s erhalte zu diversen Security Themen, habe ich mich dazu entschlossen eine Security Baseline als HowTo bereitzustellen.

Dieses HowTo soll Richtungsweisend zu dem Ziel führen, dass Ihr eure Homeserver, VPS, Rootserver absichern könnt. Vorallem dann, wenn Apache2 als Webserver zum Einsatz kommt.

Die Baseline umfasst die folgenden Punkte:
+ SSH Basic Security
+ Firewall
+ Schutz vor Missbrauch der Shared Services
+ Apache2 Security
+ DDoS Schutz
+ Rootkits
+ Intrusion Detection
+ Verhindern von IP Spoofing
+ Fail2Ban

++SSH BASIC SECURITY++
Das erste was ich persönlich nach einer Neuinstallation mache, ist es den SSH Port zu ändern.
Das können wir ganz einfach machen in dem wir folgendes tun, nachdem wir uns per SSH eingelogt haben auf dem Server:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Anschließend bei Port einen anderen eintragen. Für dieses HowTo nutzen wir den Port 1337.
Das ist auch in der Firewall Konfiguration zu beachten!
Anschließend könnt Ihr die Datei mit STRG+O speichern und schließen. Nun noch den Dienst neustarten:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Die offene Verbindung bleibt zwar noch aktiv, aber es bietet sich an anschließend per Putty ein e neue Verbindung zum neuen Port 1337 aufzubauen.

++FIREWALL++
Zur Einrichtung sollte mein HowTo genutzt werden. Alle weiteren Infos in meinem besagten HowTo
In diesem Fall handelt es sich um ein erweitertes Script für Zugriff auf Port 80 und 443 für SSL.


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

++SHARED SERVICES++
Die Shared Services können genutzt werden, um laufende Dienste anzugreifen.
Um das zu verhindern, bearbeiten wir die /etc/fstab:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Anschließend fügen wir folgende Zeile hinzu:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

++APACHE2 SECURITY++
Ich möchte mich nicht lang mit Zertifikaten hierbei aufhalten, daher verweise ich auf meine Letsencrypt HowTo´s!
HowTo - Gültige SSL Zertifikate mit Letsencrypt
HowTo - Einsetzen von SSL Zertifikaten mit Apache2

Zuerst deaktivieren wir SSLv3, welches Unsicher ist und Hochriskant!
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Suchen diesen Eintrag: SSLProtocol all -SSLv3 und ändern den Eintrag wie folgt:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Anschließend speichern und Apache2 neustarten
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Sofern Ihr die Apache Module PHP5 oder PHP7.0 installiert habt, müsst Ihr das php.ini File bearbeiten.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Und diese Zeilen hinzufügen bzw. anpassen
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Anschließend
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Apache2 neigt wie soviele Applikationen für Linux dazu, heraus zu posaunen was es ist.
Sprich es tauchen DNS Namen und Versionen bei Fehlermeldungen auf. Um dieses zu verhindern, machen wir den Apache2 quasi Taubstumm und Blind nach außen.

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Hinzufügen bzw. editieren der folgenden Zeilen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Jetzt erweitern wir unseren Apache2 Webserver um eine Web Application Firewall, kurz WAF.
Letztendlich unterbindet es SQL Injection, Cross Site Scripting, Trojaner, Falsche User Agents, Hijacking von aktiven Session und viele Exploits.

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Das Audit Log findet Ihr hier: /var/log/apache2/modsec_audit.log
Nun muss Modsecurity noch konfiguriert werden:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Diese Zeile suchen: SecRuleEngine DetectionOnly und DetectionOnly auf On abändern, damit die SecRuleEngine aktiv ist.

Anschließend den Eintrag SecResponseBodyAccess suchen und auf Off ändern.
Abschließend den Apache2 neustarten.

Zu guter letzt fehlt noch OWASP, welches ModSecurity um ein Core Rule Set erweitert (CSR) und damit die Fähigkeiten zum verhindern und erkennen von Angriffen erweitert.

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Hier müsst Ihr folgendes setzen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Abschließend Apache2 restarten

++SCHUTZ VOR DDoS++
Es gibt keinen 100%igen Schutz vor einem DDoS, ich spreche da aus Erfahrung.
Aber wir können vorbeugen, indem wir ModEvasive auf unserem Webserver installieren.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Wenn ModEvasive aktiv ist, bekommtz Ihr diese Ausgabe:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Nun müssen wir ModEvasive noch anpassen...
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Wir entfernen die # an den folgenden Zeilen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Anschließend den Apache2 neustarten.

++ROOTKITS++
Man sollte seinen Server regelmäßig nach Rootkits scannen und diese dann auch beseitigen, bevor ein Schaden angerichtet wird.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

++INTRUSION DETECTION (IPS)++
PSAD erkennt versuchte und aktive Einbrüche in euer System durch die Überwachung der Logfiles, insbesondere der IPTABLES Rules.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Tragt dort euere Emailadresse ein und aktiviert ENABLE_AUTO_IDS und ENABLE_AUTO_IDS_EMAILS

++VERHINDERN VON IP-SPOOFING++

So verhindert Ihr das versenden von gefälschten IP-Adressen
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Hinzufügen bzw. bearbeiten:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

++FAIL2BAN / DENYHOSTs++
Mit DenyHosts blockiert Angriffe auf SSH.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Die denyhosts.conf entsprechend eurer Anforderung anpassen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Fail2Ban überwacht unter anderen die Logs von SSH, Apache, Courier, FTP und einiger mehr.
Es bietet sich hier in jedem Fall an SSH zu überwachen, ggf. auch FTP und Port 80 und 443 für den Apache, falls dort Anmeldungen erforderlich sind.

Ich persönliche nutze den Fail2Ban nur für SSH, da ich SSL Zugriffe sowieso logge.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Hier setzt Ihr die Knast Konfiguration für SSH fest...
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Durch hinzufügen von destemail = root@localhost könnt Ihr euch Systemmails zukommen lassen, falls eine Verbindung im Knast gelandet ist. Es sind maximal 3 Versuche möglich!

WICHTIG:
Ihr könnt euch gern eigene Configs für den Jail anlegen, aber nutzt das NIEMALS für OScam.
Nach drei Anmeldungen ist dann Feierabend für die Client Verbindungen!

So...das war mein Wort zum Dienstag, happy absichern!
 
Zurück
Oben