{"id":6517,"date":"2012-03-19T01:23:25","date_gmt":"2012-03-19T00:23:25","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=6517"},"modified":"2019-10-12T00:05:19","modified_gmt":"2019-10-11T22:05:19","slug":"ssh-schlussel-port-andern-und-anmeldung-als-root-verwehren","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2012\/03\/19\/ssh-schlussel-port-andern-und-anmeldung-als-root-verwehren\/","title":{"rendered":"SSH-Schl\u00fcssel, Port \u00e4ndern und Anmeldung als Root verwehren"},"content":{"rendered":"<p>Nachdem mir meine Zugangsdaten zum vServer \u00fcbergeben worden waren, war meine erste Aktion mit dem neuen <del>Spiel<\/del>Arbeitsger\u00e4t den SSH-Zugang abzusichern. Die folgende Anleitung zeigt in K\u00fcrze, wie man verhindert, dass Root sich per SSH anmelden darf, SSH auf einem anderen Port lauscht und eine Anmeldung nur noch mit einem g\u00fcltigen SSH-Schl\u00fcssel m\u00f6glich ist und das Einloggen per Passworteingabe deaktiviert wird.<br \/>\nDiese Prozedur ist bei jedem \u00f6ffentlich zug\u00e4nglichen Server sinnvoll, wie ein Vorfall letzte Woche wieder einmal gezeigt hat. In einer gr\u00f6\u00dferen Institution wurde ein Server kompromittiert, bei dem sich der Angreifer mit Hilfe einer W\u00f6rterbuch-Attacke direkt Rootzugriff \u00fcber SSH verschaffen konnte, indem er innerhalb weniger Stunden ca. 40.000 Passw\u00f6rter ausprobieren durfte. Software wie <a href=\"http:\/\/denyhosts.sourceforge.net\/\">denyhosts<\/a>, <a href=\"http:\/\/www.fail2ban.org\">fail2ban<\/a> oder eine Firewalleinstellung, die nur Zugriff aus \"vertrauensw\u00fcrdigen\" Netzen erlaubt und nat\u00fcrlich ein st\u00e4rkeres Passwort, w\u00e4re hier eine M\u00f6glichkeit gewesen den Einbruch zu verhindern.<br \/>\nMein kleines Projekt bietet mir die einfache M\u00f6glichkeit auf noch mehr Sicherheit, da au\u00dfer mir selbst niemand Shellzugriff ben\u00f6tigt und nichts dagegen spricht den berechenbaren Namen des Root-Zugangs zu deaktivieren und nur noch die Authentifizierung per SSH-Public-Key-Verfahren zu erlauben. Bevor das geschieht, muss man nat\u00fcrlich einen weiteren, unprivilegierten Benutzer mit <strong>adduser<\/strong> hinzuf\u00fcgen.<\/p>\n<h2>Schl\u00fcsselerzeugung<\/h2>\n<p><code>ssh-keygen<\/code><\/p>\n<p>Ohne weitere Argumente erstellt dieser Befehl einen privaten und \u00f6ffentlichen RSA-Schl\u00fcssel f\u00fcr die SSH-Protokollversion 2 auf dem lokalen Rechner. Bejaht man alle folgenden Fragen, wird das Schl\u00fcsselpaar in <em>~\/.ssh\/<\/em> gespeichert. Ebenso wird man nach einem Passwort gefragt, um den privaten Schl\u00fcssel sp\u00e4ter entsperren zu k\u00f6nnen. Ich empfehle eines zu setzen, auch wenn man dadurch einmal pro Sitzung das Passwort eingeben muss.<\/p>\n<h2>\u00d6ffentlichen Schl\u00fcssel auf den Server transferieren<\/h2>\n<p><code>ssh-copy-id user@euervps123.de<\/code><\/p>\n<p>Der \u00f6ffentliche RSA-Schl\u00fcssel befindet sich danach auf eurem Server in <em>~\/.ssh<\/em>.<\/p>\n<h2>Einloggen<\/h2>\n<p>Funktioniert wie bisher,<\/p>\n<p><code>ssh user@euervps123.de<\/code><\/p>\n<p>nur dass ihr jetzt das Passwort zum Entsperren des privaten Schl\u00fcssels auf eurem Rechner eingeben m\u00fcsst. Die Rechte der privaten Schl\u00fcsseldatei id_rsa m\u00fcssen restriktiv sein.<\/p>\n<p><code>chmod 600 ~\/.ssh\/id_rsa<\/code><\/p>\n<h2>Schl\u00fcssel ohne Eingabe des Passworts benutzen<\/h2>\n<p>Unter Gnome 3 gen\u00fcgte bei mir<\/p>\n<p><code>ssh-add<\/code><\/p>\n<p>auszuf\u00fchren, um den privaten Schl\u00fcssel dem Authentifizierungsagenten, ssh-agent, hinzuzuf\u00fcgen, der hier durch die Anwendung gnome-keyring bereitgestellt wird. Nach einmaliger Eingabe des Passwortschutzes f\u00fcr den privaten Schl\u00fcssel ist dieser die gesamte Sitzung ohne weitere Passwortabfrage benutzbar.<br \/>\nArbeitet ihr ohne X auf der Konsole m\u00fcsst ihr zuerst den<\/p>\n<p><code>ssh-agent zsh<\/code><\/p>\n<p><code><\/code><br \/>\nmit eurer bevorzugten Shell aufrufen und k\u00f6nnt danach den privaten Schl\u00fcssel wieder wie oben beschrieben mit <code>ssh-add<\/code> f\u00fcr die Sitzung dauerhaft entsperren.<\/p>\n<h2>Root-Zugang deaktivieren, Port ver\u00e4ndern und Passwort-Authentifizierung abschalten<\/h2>\n<p>Hierzu muss die Datei <em>\/etc\/ssh\/sshd_config<\/em> auf dem Server angepasst werden.<br \/>\n<strong>Wichtig!<\/strong> Bevor ihr die Ver\u00e4nderung vornehmt, solltet ihr absolut sicher sein, dass ihr euch mit dem neu generierten Schl\u00fcssel anmelden k\u00f6nnt. Ebenso m\u00fcsst ihr unbedingt die Einstellungen der Firewall so anpassen, dass ein Anmelden \u00fcber den neuen SSH-Port erlaubt ist. (siehe n\u00e4chster Beitrag).<br \/>\nFolgende Optionen werden ge\u00e4ndert:<\/p>\n<blockquote><p>Port 44443<br \/>\nPermitRootLogin no<br \/>\nRSAAuthentication yes<br \/>\nPubkeyAuthentication yes<br \/>\nPasswordAuthentication no<br \/>\nX11Forwarding no<\/p><\/blockquote>\n<h2>Fazit<\/h2>\n<p>Der Port kann im Prinzip beliebig gew\u00e4hlt werden. Die <a href=\"http:\/\/de.wikipedia.org\/wiki\/Liste_der_standardisierten_Ports\">Liste der standardisierten Ports<\/a> hilft bei der Entscheidung. Der Wechsel von Port 22 auf z.B. Port 44443 l\u00e4sst die Mehrzahl automatischer Programme ins Leere laufen, die nur \u00fcberpr\u00fcfen, ob auf dem Standardport ein SSH-Dienst angeboten wird. Anmelden kann man sich ab sofort mit<\/p>\n<p><code>ssh -p 44443 user@euervps123.de<\/code><\/p>\n<p><code><\/code><br \/>\nDas Abschalten der Passwort-Authentifizierung macht W\u00f6rterbuch-Attacken aussichtslos. Das Deaktivieren des Root-Logins erzwingt die Anmeldung mit einem unprivilegierten Benutzer, so dass ein Angreifer nicht nur die H\u00fcrde des SSH-Schl\u00fcssels \u00fcberwinden, sondern noch ein weiteres Passwort in Erfahrung bringen muss.<br \/>\nSicherheit ist ein Prozess, hei\u00dft es so sch\u00f6n. F\u00fcr mein spezielles Benutzerszenario funktioniert dieser Weg. Fehlerhaft konfigurierte Dienste und Sicherheitsl\u00fccken kann aber auch diese Anleitung nicht verhindern.<\/p>\n<h2>Links<\/h2>\n<p><a href=\"https:\/\/help.ubuntu.com\/community\/SSH\/OpenSSH\/Configuring\">https:\/\/help.ubuntu.com\/community\/SSH\/OpenSSH\/Configuring<\/a><br \/>\n<a href=\"http:\/\/bodhizazen.net\/Tutorials\/SSH_keys\">http:\/\/bodhizazen.net\/Tutorials\/SSH_keys<\/a><br \/>\n<a href=\"https:\/\/www.gambaru.de\/blog\/2011\/08\/11\/sicherer-datentausch-ein-sftp-server-mit-chroot\/\">Sicherer Datentausch: Ein sftp-Server mit chroot<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem mir meine Zugangsdaten zum vServer \u00fcbergeben worden waren, war meine erste Aktion mit dem neuen SpielArbeitsger\u00e4t den SSH-Zugang abzusichern. Die folgende Anleitung zeigt in K\u00fcrze, wie man verhindert, dass Root sich per SSH anmelden darf, SSH auf einem anderen Port lauscht und eine Anmeldung nur noch mit einem g\u00fcltigen SSH-Schl\u00fcssel m\u00f6glich ist und das &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2012\/03\/19\/ssh-schlussel-port-andern-und-anmeldung-als-root-verwehren\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eSSH-Schl\u00fcssel, Port \u00e4ndern und Anmeldung als Root verwehren\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[53,178,184],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6517"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=6517"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6517\/revisions"}],"predecessor-version":[{"id":10850,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6517\/revisions\/10850"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=6517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=6517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=6517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}