Linux Virtual Private Server in Betrieb nehmen

Linux Virtual Private Server in Betrieb nehmenFür einen Bekannten sollte ich einen Linux Virtual Private Server (VPS) einrichten. Ausgesucht haben wir uns einen VPS von Contabo. Die Bestellung und die Bereitstellung gingen flott und unkompliziert. Eine laufende LAMP Installation gab es kostenlos auf dem von uns gewählten Debian8 dazu. Was will man mehr?

Als die Zugangsdaten übersendet wurden stellte ich erstmal fest, dass man sich direkt als root per SSH (Secure Shell) auf die Maschine verbinden konnte. Das finde ich aus Sicherheitsgründen nicht so prickelnd. Also habe ich das abgestellt.

 

SSH mit root auf dem Virtual Private Server abstellen

Erstmal muss man einen normalen User anlegen, der auch root werden darf.

adduser <username>
usermod -aG sudo username

Jetzt müssen wir noch dem SSH-Daemon (SSHD) beibringen, dass root sich nicht mehr anmelden darf, aber dafür der neue User. Damit nichts schief geht macht man das am Besten in zwei Schritten.

Zuerst in der Datei /etc/ssh/sshd_config die Zeile

AllowUsers username

ergänzen und den SSHD neu starten mit

service ssh reload

Jetzt ausprobieren, ob man sich mit dem neuen User auch per SSH anmelden kann (ssh username@contaboserver)

Wenn das funktioniert, kann man den direkten Root Login deaktivieren. Dazu verändert man widerum in die Datei  /etc/ssh/sshd_config die Zeile

PermitRootLogin yes

in

PermitRootLogin no

Jetzt den SSHD wieder neu starten und jetzt sollte man sich nicht mehr mit dem User root per SSH anmelden können.

 

Login mit SSH Schlüsseln, ohne Passworteingabe

Ziel ist es sich mit einem Kommand

ssh <UserAufDemServer>@<Server>

und ohne Passworteingabe am Server anzumelden.

Der Zugriff auf einen Server ohne Passwort mittels SSH-Schlüsselpaaren funktioniert, so daß der User, der sich von einem Client anmelden möchte ein Schlüsselpaar (Public-Key, Private-Key) benötigt. Der Public-Key wird dann auf dem Server abgelegt. Bei der Anmeldung sendet der Server dem Client eine zufällige Nachricht (Challenge), die der Client mit dem Private-Key verschlüsselt und em Server zurück schickt. Der Server entschlüsselt dann diese Challenge mit dem vorhandenen Public-Key des Users und überprüft so, ob dieser auch wirklich der Eigentümer des Public-Key ist.

Also generiert man sich ein Schlüsselpaar, falls man noch keines hat.

ssh-keygen

Diese werden normalerweise im Verzeichnis ~/.ssh in zwei Dateien id-rsa und id-rsa.pub abgelegt. Das .pub steht dabei für public und dort steht auch der Public-Key drin.

Den Inhalt der Datei id-rsa.pub trägt man jetzt auf dem Server in die Datei ~/.ssh/authorized_keys ein und stellt sicher, dass auf die Datei nur vom Eigentümer zugegriffen werden kann.

chmod 700 /home/BENUTZERNAME/.ssh
chmod 600 /home/BENUTZERNAME/.ssh/authorized_keys

Das war’s schon. Jetzt sollte die Anmeldung ohne Passwort funktionieren.

 

Fail2ban installieren gegen Denial of Service Angriffe

Da man mit einem Virtual Private Server ja immer im Netz ist und viele Bots durch die Gegen eiern, die versuchen mit einer Denial- of-Service-Attacke (DoS-Attacke) den ein oder anderen Rechner lahm zu legen, ist es eine guite Idee Fail2ban zu installieren. Fail2ban überwacht eine ganze Menge von Logdateien und -einträgen und blockt den jeweiligen Port für eine einstellbare Zeit, um DoS Attacken abzuwehren.

Die Installation geschieht als root mit

apt-get install fail2ban

Der Dienst wird dabei auch gleich gestartet und hat eine sehr breite Menge von Standard-Einstellungen, die alle üblichen Dienste absichern.

 

Update 1: Locale auf deutsch ändern

Im Nachgang ist mir noch aufgefallen, dass der Virtual Private Server alle Locale-Einstellungen auf englisch eingestellt hatte. Um diese Einstellungen auf deutsch umzustellen, rekonfiguriert man das Paket locales mit

dpkg-reconfigure locales

Ich habe folgende Standorteinstellungen gewählt:

  • de_DE ISO-8859-1
  • de_DE.UTF-8 UTF-8
  • de_DE@euro ISO-8859-15

Leider benötigt das System nach dieser Anpassung einen Neustart

shutdown -r now

 

Update 2: SSH von einem Rechner, der eine dynamische IP-Adresse hat

Nicht immer arbeitet man von einem Rechner aus, der eine feste IP-Adresse hat, sondern ggf. auch von zu Hause, wo die meisten sichelrich eine vom Internet-Prvider dynamisch zugewiesene IP-Adresse erhalten. Ich habe mich gefragt, ob man es auch von dort aus hinbekommt sich ohne Passowrt per SSH an dem Virtual Private Server anzumelden. Um das zu erreichen braucht man einen Servernamen, der immer auf die aktuelle dynmaische IP Adresse zeigt. So einen Servernamen gibt es kostenlos bspw. bei no-ip.com. Die Einrichtung hat Frank Lüttig in seinem Artikel Dynamische DNS mit No-IP.com beschrieben. Um dieses Setup mit dem VPS zu verheiraten müssen lediglich zwei kleine Änderungen vorgenommen werden.

Der Servername von no-ip.com muss in der Datei /etc/fail2ban/jail.conf eingetragen werden

ignoreip = 127.0.0.1/8 <no-ip-Servername>

und in der Datei ~/.ssh./authorized_keys ersetzt man an das Ende der Zeile mit dem Public-Key user@<LokalerHostname> durch user@<no-ip-Servername>.

 

Kommentare

  1. Alex:

    In der Theorie hatte ich schon über das Einrichten von ssh und fail2ban gelesen, aber das Einloggen ohne Passworteingabe mit Schlüsselpaar kannte ich noch nicht. Das Prinzip von privaten und öffentlichen Schlüssel kenne ich, aber halt nicht im Zusammenhang mit ssh. Danke für diesen schönen Artikel.

    Antworten

  2. Bandes:

    Sehr schön und gut erklärt
    Mag solche Tutorials
    Gerne mehr über Vserver und :good:

    Antworten

Schreibe einen Kommentar

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

:bye: 
:good: 
:negative: 
:scratch: 
:wacko: 
:yahoo: 
B-) 
mehr...
 
ALL-INKL.COM - Webhosting Server Hosting Domain Provider Blogverzeichnis - Blog Verzeichnis bloggerei.de