###lsd###

raspberry pi and more

ssh nach aussen verfügbar machen: Eine gute Idee?

| Keine Kommentare

Auf dem pi ist ssh standardmäßig aktiviert und es ist nicht schlecht, den pi aus dem Netz administrieren zu können.

Um das zu erreichen, ist an der Fritzbox einfach eine Portfreigabe für den Port 22 einzurichten (Portfreigaben an der Fitzbox einrichten siehe: dynamisches DNS konfigurieren).

Damit könnt Ihr Euch von aussen auf den Pi einloggen, z.B. mit dem Terminalprogramm putty. In putty dazu einfach als Host-Name Euren dynamischen DNS-Namen angeben, den Port auf 22 setzen und dann mit open eine Verbindung herstellen. Ihr werdet dann nach dem Benutzer und Passwort gefragt.

Ganz geheuer war mir die Geschichte aber nicht, denn wenn ich mich aus dem Internet über ssh einloggen kann, können das auch andere. Und wenn sie erst mal drin sind, können sie mit sudo wüten…

Also vor dem Freischalten erst mal ein paar Vorsichtsmaßnahmen treffen:

  • Ich habe den Standardbenutzer pi umbenannt (siehe user pi umbenennen).
  • ssh habe ich nur für ausgewählte Benutzer zugelassen. Dazu in /etc/ssh/sshd_config unter AllowUsers die Liste der erlaubten Benutzer – mit Leerzeichen getrennt – angeben. Danach ssh mit sudo service ssh restart neu starten.
  • Unter /etc können in hosts.allow und hosts.deny Rechner und Dienste angegeben werden, die Zugang zum System haben. hosts.deny habe ich leer gelassen und unter hosts.allow eingetragen:

    Was soll das? Falls sich jemand von einem Rechner mit der IP 192.168.1.x (=> ein Rechner im lokalen Netz) an den sshd wendet, erhält er Zugang. Alle anderen erhalten auch Zugang, allerdings wird zusätzlich der spawn-Befehl ausgeführt. Dort wird eine eMail an somename@somedomain.de gesendet, die auf einen Login-Versuch hinweist. Somit bekomme ich immer eine eMail bei einem Login-Versuch, der nicht aus meinem Hausnetz getätigt wird.

Danach habe ich die Portfreigabe an der Fritzbox aktiviert. Und dann? Nach einem halben Tag und ca. 200 eMails habe ich den ssh-Port schnell wieder dicht gemacht. Unterschiedlichste Nasen (und eben nicht nur eine) versuchten sich einzuloggen.

Also keine gute Idee. Was tun? Hrn. Google fragen. Folgende Ideen:

  • Den ssh-Port verstecken. Einfach den ssh-Port von 22 auf einen Wert z.B. über 1000 legen. Dies kann bei der Portfreigabe an der Fritzbox gemacht werden (zB. 3020 => 22). In diesem Fall ist von aussen ssh über den Port 3020 erreichbar, intern wie gewohnt über 22. Soll er intern auch über den Port 3020 erreichbar sein, so ist der Port in /etc/sshd/sshd_conf anzupassen (und ssh neu zu starten). Natürlich muss im letzten Fall die Portfreigabe an der Fritzbox von 3020 auf 3020 routen.
  • Mailen von Login-Versuchen (siehe oben)
  • Login automatisch sperren nach n nicht erfolgreichen Versuchen. Hierbei wird ein spezielles pam-PlugIn aktiviert (pam_tally, pam_tally2), das das Freigeben/Sperren von Benutzern übernimmt. Nachteil hierbei ist, dass man u.U. selbst ausgeprerrt wird.
  • Einsatz von Port Knocking. Hier wird allerdings ein Rechner benötigt, der die Knock-Sequenz erzeugen kann.
  • Spezielles ssh-Protokoll 2 erzwingen (siehe man ssh)
  • RSA mit öffendlichem/privaten Schlüssel: Kein Login mit Name/Passwort, sondern mit key-Dateien, wird von ssh unterstützt.
  • Google Authenticator. Hier wird z.B. über eine Smartphone-App ein temporärer Zugangscode generiert, mit dem man sich einloggen kann.
  • fail2ban: Phyton-Script, das als Dämon läuft und log-Dateien nach Auffälligkeiten durchforstet um dann iptables und DenyHosts durchzuparametrieren. Hierbei können nicht nur Login-Logs, sondern z.B. auch Web-Zugriffe über Apache/nginx oder auch WordPress analysiert werden.
  • ssh nicht nach aussen legen, sondern von aussen über VPN zugreifen und dann “innen” „normales“ ssh

Was ich mache, weiss ich noch nicht. Am besten einige Verfahren miteinander kombinieren. Zumindest ist nach dem Verstecken des ssh-Ports an der eMail-Front Ruhe. VPN werde ich auf jeden Fall mal einrichten. Ansonsten geht meine Tendenz zu fail2ban. Damit lassen sich auch die Webzugriffe kontrollieren. Dies wäre mir recht, da schon einige Male ein paar Nasen nicht nur ssh hacken wollten, sondern auch WordPress: 1600 Login-Versuche in ca. 2 Stunden. Da hat Limit Login Attempts gute Dienste geleistet… :lol:

 

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.