Sicherheit: Ubuntu Server

00Zombie00

Cadet 2nd Year
Registriert
Nov. 2014
Beiträge
23
Da ich relativ neu in dem Thema Linux und explizit Ubuntu bin, wollte ich mich mal informieren inwiefern ich einen vServer gegen Angriffe absichern kann. Der Server soll halt nicht in irgendein Botnetz geraten und bevor ich einen Server jetzt miete wollte ich mich lokal auf meiner Maschiene mal ein wenig in das Thema Sicherheit einarbeiten.

Diese paar Punkte habe ich schon:

- Rootpasswort ändern
- einen User mit sudo Rechten einrichten, damit der Rootuser nicht genutzt werden muss
- SSH Login für den Root disablen
- SSH Port ändern
- offene Ports ermitteln und mit Firewall blockieren
- fail2ban installieren
- Public Key Authentication nutzen
- automatische Sicherheits Updates aktivieren
- Logwatch installieren

Wie ihr vielleicht erkennen könnt bin ich etwas paranoid was Sicherheit angeht, und von daher würde ich gerne ein paar Meinungen und Tipps von euch sammeln.

Mir ist bewusst dass dieses Thema wahrscheinlich öfters auftaucht, aber ich wollte gerne eine aktuelle Meinung hören damit ich das Optimum rausholen kann.

MfG Zombie
 
Super Arbeit, damit ist dein Server vermutlich schon sicherer als die meisten anderen.

Zum Bot werden die Maschinen häufig auch durch veraltete/"schlechte" CMS oder - zum Beispiel - Wordpress Plugins. Wenn du sowas einsetzen möchtest, halte es möglichst aktuell.

Im Prinzp ist jede Software mit einem Port nach außen potentiell gefährlich, überspitzt ausgedrückt.
Software aus den Repos der Distribution + autom. Sicherheitspatches, ist schon mal super.
Versuche die eingesetzte Software einfach zwecks Exploits ein bissl im Auge zu behalten. Besonders natürlich Dinge, die sich nicht automatisch aktualisieren.

Viele Grüße
 
- offene Ports ermitteln und mit Firewall blockieren
Besser noch, den dahinter stehenden Dienst ermitteln und ihn abschalten oder, falls du ihn intern brauchst, nur auf einer internen Schnittstelle lauschen lassen. Parallel den passenden Port per Firewall blockieren hilft natürlich, allerdings würde ich da einen anderen Weg gehen. Grundsätzlich alles von aussen blockieren und nur die gewünschten Dienste freigeben.

Zusätzlich könntest du noch:
- dich in Technicken wie SELinux, Apparmor etc. einarbeiten.
- Für den Zugriff von aussen per SSH einen absolut unpriviligierten Benutzer einrichten (also auch kein sudo-Recht). Von dem dann per su auf einen Benutzer mit sudo-Rechten wechseln.
- Zwei-Faktor-Authentifizierung für externe Zugriffe einbauen.
 
andryyy schrieb:
Super Arbeit, damit ist dein Server vermutlich schon sicherer als die meisten anderen.

Zum Bot werden die Maschinen häufig auch durch veraltete/"schlechte" CMS oder - zum Beispiel - Wordpress Plugins. Wenn du sowas einsetzen möchtest, halte es möglichst aktuell.

Im Prinzp ist jede Software mit einem Port nach außen potentiell gefährlich, überspitzt ausgedrückt.
Software aus den Repos der Distribution + autom. Sicherheitspatches, ist schon mal super.
Versuche die eingesetzte Software einfach zwecks Exploits ein bissl im Auge zu behalten. Besonders natürlich Dinge, die sich nicht automatisch aktualisieren.

Viele Grüße

Danke :)! Ja ich wollte nicht allen Leuten alles aus der Nase ziehen und hab mir ein paar Sachen zusammen gegoogled :D

Es soll voraussichtlich erstmal nur ein Teamspeak Server drauf laufen und irgendwann vielleicht mal ein Webserver/Gameserver. Gibt es da konkret was zu beachten? Dort sind ja zwingender maßen Zugriffe vom Client auf den Server als auch vom Server auf den Client notwendig.

Reicht es für die Ports wenn ich per Nmap die Port Nutzung tracke und dann die jeweilige Software und den dazu gehörigen Port umkonfiguriere bzw. blocke?

KillerCow schrieb:
Besser noch, den dahinter stehenden Dienst ermitteln und ihn abschalten oder, falls du ihn intern brauchst, nur auf einer internen Schnittstelle lauschen lassen. Parallel den passenden Port per Firewall blockieren hilft natürlich, allerdings würde ich da einen anderen Weg gehen. Grundsätzlich alles von aussen blockieren und nur die gewünschten Dienste freigeben.

Zusätzlich könntest du noch:
- dich in Technicken wie SELinux, Apparmor etc. einarbeiten.
- Für den Zugriff von aussen per SSH einen absolut unpriviligierten Benutzer einrichten (also auch kein sudo-Recht). Von dem dann per su auf einen Benutzer mit sudo-Rechten wechseln.
- Zwei-Faktor-Authentifizierung für externe Zugriffe einbauen.

Das ermitteln sollte über Nmap möglich sein oder?

Erstmal alle Verbindungen/Ports von Aussen auf/in meinen Server blocken klingt gut, voerst sollte ja nur ein Port für SSH offen bleiben oder? Für Teamspeak/Web/Gamingserver kann ich die Ports dann ja nachträglich öffnen.

Die anderen Punkte aus deiner Liste werde ich mir zu herzen nehmen, gerade Punkt 2 & 3 sehen ja nicht all zu schwer aber sehr sinnvoll aus.

daysleeper83 schrieb:
Du kannst auch mal das Security Tool Lynis durchlaufen lassen, dass zeigt dir eigentlich alle Schwachpunkte.

Grüße

Ich werde es mir definitiv angucken :)

Danke schonmal für eure Tipps!
 
Zuletzt bearbeitet:
Sorry, hab das Thema aus den Augen verloren...

Das ermitteln sollte über Nmap möglich sein oder?
Einfach mit root das hier machen:
Code:
netstat -ltunp
Damit werden dir alle UDP und TCP Ports angezeigt (-t -u), auf denen ein Dienst auf dem System lauscht (-l). Mit -n werden die Ports numerisch dargestellt (und nicht mit dem "Dienstnamen", wie z.B. http für Port 80) und mit -p die zugehörigen Prozesse angezeigt.

Den sshd natürlich freigeben, sonst kommste ja nicht mehr drauf, ja. Und leg dir den sshd auf einen anderen Port (z.B. 33647 oder so), damit hälst du dir schonmal automatisierte Skripte vom Leib, die die Standardports abklopfen und Passwortattacken fahren... das nervt in den Logs auf Dauer ;)
 
Wichtigste Sicherheitsmaßnahme:
Nur das auf den Server installieren, was Du unbedingt brauchst. Denn jedes Programm ist ein potentielles Sicherheitsrisiko.

00Zombie00 schrieb:
- Rootpasswort ändern
Du könntest theoretisch root sogar ein neuen Namen verpassen.

- SSH Login für den Root disablen
00Zombie00 schrieb:
- SSH Port ändern
Zusätzlich könntest Du noch Port-Knocking einsetzen. Dann wird der Port z.B. auch nicht bei einem Portscanning entdeckt.

SUID-Programme vermeiden und stattdessen Posix Capabilities verwenden.

Man kann erweiterte Attribute einsetzen, um Dateien unveränderlich oder auch append-only zu machen.

journald statt syslog für vertrauenswürdige Logs.

AppArmor und SE-Linux wurden ja schon genannt. Einigen Distributionen liegen auch schon fertige Profile bei die man nutzen kann. Zumindest für Standard-Services.
Da die Profilerstellung nicht ganz Ohne ist macht es Sinn sich da auf Fertiges zu verlassen.

Ansonsten gibt es noch virtuelle Maschinen die die Möglichkeit des Einsperrens bieten.
Hingewiesen sei hier auf den leichtgewichtigen LinuX Contrainer

Gruß
Andy
 
Zurück
Oben