Auf die neueste Version updaten
Zu aller erst sollte man die Linux-Distribution auf den neuesten Stand bringen, bevor man die Programme installiert und einrichtet! Es gibt mehrere Möglichkeiten, dies zu tun. Hier könnt ihr euch das noch genauer ansehen, ich habe mich für folgendes entschieden:
apt-get update apt-get dist-upgrade
mit cat /etc/issue
und cat /etc/debian_version
bekommt ihr raus, welche Version grade installiert ist.
VIM installieren
Bevor ihr irgendwelche Konfigurationen vornehmt, solltet ihr das meiner Meinung nach wichtigste Programm auf einem Linux-System installieren, den besten Texteditor:
apt-get install vim
Eine Liste mit den Befehlen für vim findet hier hier.
SSH Zugang einrichten und absichern
Der SSH Installation und Absicherung habe ich mich bereits ausführlich in diesem Artikel gewidmet und eine Anleitung mit kopierbaren Befehlen erstellt.
Dort werden folgende Themen genauestens erklärt:
- Der SSH Service wird installiert
- Dem Benutzer root wird der Zugang gesperrt
- Der Standard-Port 22 wird verändert
- Ein neuer SSH-User wird angelegt
- Dieser User bekommt eine Private-/Public-Key-Authentifizierung
- Die Einstellungen und erste Anmeldung mit PuTTY wird beschrieben
Offene Ports schließen
Damit euer Linux Server nicht offen ist wie das sprichwörtliche Scheunentor, überprüfen wir nun welche Ports nach außen hin offen sind und ob wir diese Programme wirklich brauchen. Wenn nicht dann schließen wir sie. Alles was ich bei mir nach außen hin offen haben möchte, ist der SSH-Port und der HTTP-Port. Alles andere sollte nach außen hin geschlossen sein.
Mit folgendem Befehl könnt ihr euch anzeigen lassen was alles unter welchem Port läuft:
netstat -plt
Alle Einträge mit *:Portnummer unter der Spalte Local Address sind nach außen hin zugänglich.
An dieser Stelle möchte ich noch einmal ausdrücklich darauf hinweisen, dass ihr euch vorher informiert was für Programme bei euch laufen und ob ihr sie nicht doch braucht. Wenn ihr wie ich ein jungfräuliches System aufsetzt, wird wahrscheinlich nichts schlimmes passieren.
Mit dem Befehl service Servicename status könnt ihr feststellen ob es ein Service ist, oder ein Daemon. Einen Service stoppt ihr mit service Servicename stop und einen Daemon stoppt ihr mit kill pid (pid = Prozess-ID).
Ich habe bei meinem Server ein Service mit dem Namen rpcbind und einen Daemon mit Namen rpc.statd, dieser hat die pid 396. Zuerst beende ich die beiden Programme:
systemctl stop rpcbind.service kill 396
Ich kann mich nochmals über den Befehl netstat -plt
vergewissern, dass die Programme nicht mehr laufen. Jetzt wollen wir natürlich nicht, dass sie sich beim nächsten Neustart wieder starten, also entfernen wir sie aus dem Autostart:
update-rc.d -f rpcbind remove update-rc.d -f rpc.statd remove
Nach einem Neustart des Servers mit reboot
können wir erneut mit netstat -plt
überprüfen, ob die Programme nicht mehr laufen und nur noch das aktiv ist, was wir auch bereit stellen wollen.
So damit habt ihr erst einmal eine gute Grundvoraussetzung für ein stabiles, sicheres Linux Server System, das nicht so einfach zu hacken ist. Ich bin zwar kein Sicherheitsexperte was Linux Server anbelangt und ihr seid jetzt auf keinen Fall unverwundbar, aber jetzt muss schon einiger Aufwand betrieben werden um in euer System rein zu kommen und der lohnt sich erst dann, wenn es bei euch was zu holen gibt. D.H. solltet ihr irgendwann groß oder wichtig genug werden, so dass ihr als Ziel interessant werden, solltet ihr die Investition in einen Sicherheits-Experten erwägen. Für alles andere seid ihr jetzt gut ausgerüstet und könnt euch auf eure Anwendung konzentrieren, die ihr anbieten wollt.