Soeben hat man sich einen neuen Server gekauft (oder einen bestehenden neu aufgesetzt) und dessen Daten bekommen – aber wie fängt man am Besten an, dass das System möglichst unbelastet ist, möglichst nur Wichtiges installiert ist und es möglichst sicher ist?


 

Übersicht:

  • Apt updaten
  • Unwichtige Pakete deinstallieren
  • Ungenutzte Abhängigkeiten entfernen
  • Pakete aktualisieren
  • Wichtige Pakete installieren
  • Neuen Nutzer anlegen und Root Login deaktivieren
  • SSH Port ändern
  • CPU Performance testen
  • Festplatten I/O testen
  • Netzwerk testen

 

1. Apt updaten

apt-get update

2. Unwichtige Pakete deinstallieren

Der folgende Befehl deinstalliert (und löscht die Konfigurationsdateien) einiger, sehr häufig installierter Pakete. Dennoch empfiehlt es sich, immer „minimal“ Installationen zu verwenden und über einen Blick in „top“ / „htop“ zu werfen.

apt-get purge apache* xinet* php* mysql* samba* postfix* sendmail* procmail* fetchmail* mailx* bind9* exim4* rsync* consolekit

3. Ungenutzte Abhängigkeiten entfernen

Nachdem diese Pakete deinstalliert wurden, kann es gut sein, dass einige ehemaligen Abhängigkeiten (z.B. Libraries) noch installiert sind, welche nicht mehr benötigt werden. Um diese Abhängigkeiten zu deinstallieren:

apt-get autoremove

4. Pakete aktualisieren

Jetzt, wo einiges an Ballast deinstalliert sein dürfte, sollte man auf jeden Fall alle Pakete aktualisieren, da sie z.B. Sicherheitslücken enthalten könnten.

apt-get upgrade

5. Wichtige Pakete installieren

Ob die folgenden Pakete wichtig sind oder nicht, hängt natürlich immer davon ab, was man mit seinem Server machen will. Ich finde aber, dass die folgenden Pakete auf jedes System gehören.

apt-get install zip unzip nano htop screen fail2ban

zip & unzip: Zum Ent- / packen von zip Archiven

nano: Sehr einfacher Texteditor

htop: Ein übersichtlicher „Task-Manager“

screen: Erlaubt es, dass Befehle im Hintergrund ausgeführt werden und auch weiter laufen, wenn man die Verbindung trennt

fail2ban: Erkennt suspekte Aktivitäten (z.B. bei SSH Bruteforcing) und blockiert dementsprechend z.B. IPs

6. Neuen Nutzer anlegen und Root Login deaktivieren

Siehe [DIESER] Post ist es wichtig, u.A. Root Login zu deaktivieren. Da es jedoch im Interesse der Meisten sein dürfte, dass man sich dennoch weiterhin per SSH verbinden kann, muss vorher noch ein neuer Nutzer erstellt werden:

adduser [Name für neuen Nutzer]

Diesem Nutzer ein sicheres, komplexes Passwort geben. Nun kann Root Login deaktiviert werden.

nano /etc/ssh/sshd_config

Hier nach

PermitRootLogin yes

suchen und zu

PermitRootLogin no

ändern.

7. SSH Port ändern

Ebenso siehe der Post, wie man ein SSH Passwort knacken kann um zu wissen, warum dies ebenso wichtig ist.

Immernoch in der /etc/ssh/sshd_config:

Nach

Port 22

suchen und die 22 durch einen anderen Port ersetzen. Anschließend die Datei speichern und nano schließen (Strg + O, Enter, Strg + X). Dass die Änderungen in der SSH Konfigurationen übernommen werden, muss noch der SSH Daemon neugestartet werden:

service ssh restart

Jetzt versuchen, sich als der neue Benutzer mit dem neuen Passwort auf dem neuen Port zu verbinden. Die bestehende SSH Verbindung dabei nicht trennen!

ssh -p [Port] [Name des neuen Nutzers]@[IP oder Domain]

wäre der Befehl, wenn man sich von Linux aus mit dem Server verbinden möchte. Funktioniert die Verbindung und man kann sich einloggen, kann die 2. SSH Verbindung geschlossen werden.

8. Disk I/O testen (Optional)

Inzwischen dürfte das System ziemlich sauber sein und SSH zumindest etwas mehr abgesichert. Nun kann man ein paar Benchmarks durchführen, z.B. zur Festplatten Schreibgeschwindigkeit.

dd if=/dev/zero of=test.bin bs=1M count=2000

Dieser Befehl schreibt eine quasi leere Datei („test.bin“), misst dabei die Zeit und errechnet daraus anschließend die daraus resultierende Schreibgeschwindigkeit:

dd1

9. CPU Performance testen (Optional)

Das Ergebnis dieses Benchmarks kann helfen, wenn man Server verschiedener Provider vergleichen möchte.

apt-get install sysbench

Ausgeben lassen, wie viele Threads der Server hat:

nproc

Befehl anpassen und Sysbench starten:

sysbench –test=cpu –cpu-max-prime=20000 –num-threads=[Output von nproc] run

Ist der Test (welcher übrigens 20.000 Primzahlen berechnen lässt) abgeschlossen, ist die „total time“ die Zahl, die man zum vergleichen nutzt.

10. Netzwerk testen (Optional)

Was bei einem Server natürlich sehr wichtig ist, ist das Netzwerk. Ist dieses langsam, kann die CPU und die Festplatten I/O noch so gut sein – Webseiten werden langsam laden wenn das Netzwerk nicht mit macht.

Hier ein paar Befehle für die Nutzung verschiedener Netzwerk-Test-Skripte:

Down- & Upload-Geschwindigkeiten von / zu verschiedenen EU Ländern:

wget dl.getipaddr.net/speedtest.EU.sh && chmod u+x speedtest.EU.sh && ./speedtest.EU.sh

Der FreeVPS.us Benchmark:

wget http://freevps.us/downloads/bench.sh && bash bench.sh

Kompletter GetIPAddr Benchmark (alle verfügbare Länder):

wget dl.getipaddr.net/speedtest.sh -O- | bash

 

Je höher die Upload Geschwindigkeit zu einem Standort ist, desto schneller kann eine Webseite (theoretisch) geladen werden. Je höher die Download-Geschwindigkeit, desto schneller kann von diesem Standort (theoretisch) auf den Server hochgeladen werden.

Die ersten 10 Dinge die man mit einem Linux Server tun sollte
Markiert in:                                                                                                                                                                                         

Ein Gedanke zu „Die ersten 10 Dinge die man mit einem Linux Server tun sollte

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*