Home Server Elektronik Audio&Licht Links Kontakt |
Ein gängiger Trick ist anstelle von Port 22 den Port 443 zu
verwenden. Dies ist normalerweise der https Zugang zu verschlüsselten
Webseiten. Deshalb ist so meist auch ein Zugang von einem mit einer
Firewall gesicherten Netzwerk, wie z.B. von der Firma, zum Server zu Hause
möglich. Allerdings gibt es genügend Hacker, die auch diesen simplen
Trick kennen. Abgesehen davon blockt die Firewall auch das SSH Protokoll auf Port 443 so dass man vom Firmennetz damit nicht nach draußen kommt. Damit das funktioniert, kann man z.B. sowohl auf dem Client-PC als auch auf dem Home-Server das Programm Stunnel verwenden. Es verbindet sich via https Protokoll mit dem Server und schleust dann das SSH Protokoll hindurch. Ist das geschafft, kann man Ports durch das SSH tunneln und z.B. das heimische Netzwerk auf dem Client-PC abbilden, mit dem Proxy-Server auch auf Seiten zugreifen, welche hinter der Firewall in der Firma gesperrt sind, oder auch mit VNC auf den Desktop des Home-Servers zugreifen, z.B. für Bankgeschäfte wenn man sich gerade außerhalb Europas befindet. Die Möglichkeiten sind ähnlich wie mit einer VPN Verbindung, können aber bei Bedarf dynamisch von der Client-PC Seite her angepasst werden. Das ultimative Schnippchen gegen HackerFür den Fernzugang ohne Stunnel sperrt man am Besten alle Ports gegen den SSH zugriff, so dass für den Hacker gar keine Möglichkeit besteht, in den Server einzudringen. Das heißt, man gibt zwar den SSH Port 22 am Server frei, aber nur für das lokale Netzwerk. Im Router wählt ein Port-Forwarding für einen anderen Port, z.B. 54321. Für Port 22 mach man im Router kein Port-Forwarding. Im Server gibt man nun in der Firewall beide Ports frei, also 22 und 54321. Für 54321 gibt es aber kein Dienst im Server, wodurch der Hacker auch auf diesem Port keinen Zugang findet. Selbst mit einem Port-Scanner hat man so kein Glück. Damit man selber mit dem Client-PC zugreifen kann, richtet man auf dem Server eine temporäre Port-Weiterleitung von Port 54321 auf Port 22 ein wie nun beschrieben. Temporäres Port Forwarding auf dem ServerDas Script sesamoeffnedich.sh kopiert man als root ins Verzeichnis /etc/ssh/. Es mache eine Portweiterleitung mittels iptables von Port 54321 auf Port 22, aber nur für 60 Sekunden. Dann wird die Weiterleitung wieder gelöscht. Das Script sesamoeffnedich.cgi kopiert man ins cgi-bin auf dem Web-Server. Ruft man dieses via Webseite auf (z.B. http://meinserver.xyz/cgi-bin/sesamoeffnedich.cgi) ruft dieses das Script /etc/ssh/sesamoeffnedich.sh auf, welches die Weiterleitung aktiviert. Den Namen sesamoeffnedich sollte man natürlich durch einem kryptischen Namen ersetzen und entsprechend in den Scripts anpassen. Ebenfalls anpassen sollte man die Port Nummer im sesamoeffnedich.sh, so dass sie mit dem Router und der Firewall übereinstimmt. Das Script /etc/ssh/sesamoeffnedich.sh kann nur vom root ausgeführt werden. Deshalb muss man noch sudo entsprechend einrichten und /etc/ssh/sesamoeffnedich.sh vom Benutzer wwwrun erlauben. Beschränkter SSH ZugangUm das Login zu erschweren, sollte man einen
kryptischen Benutzer anlegen, welchem man als einziger den Fernzugang
erlaubt (z.B. "aJS6MHYBzeYu"). Das Passwort
sollte ebenfalls kryptisch sein (z.B. "tPwNFpOhx2Ek"). Man muss ich das
nicht merken, man kann sich den Zugang aufschreiben oder in einem Script
auf dem Client-PC speichern. Dazu im /etc/ssh/sshd_config folgenden
Eintrag machen: Um kryptische Zeichenketten zu generieren, kann man das random Script verwenden. Einfach herunterladen, ins ~/bin Verzeichnis kopieren und ausführbar machen (chmod +x random). Dann z.B. "random 12 -a" auf der Konsole eingeben. Und so funktioniert es- Port Weiterleitung aktivieren indem man das Script auf dem Webserver startet, also z.B.
"http://meinserver.xyz/cgi-bin/sesamoeffnedich.cgi". Das kann man z.B. mittels Link auf dem Handy machen. Das funktioniert z.B. mit dem Handy z.B. mit der App "Terminus". Aber auch mit der Handy-App bVNC Free. Damit kann man via SSH tunnel auf den VNC-Server zugreifen. Mit dem PC verwende ich beide Varianten, mit stunnel und auch mit der Port Weiterleitung. Damit habe ich mit entsprechenden SSH Optionen Zugriff auf den Proxy Server und den VNC Desktop des Home-Servers. Beispiele dafür gibt es im Netz genügend (sonst einfach über meine Kontakt Seite fragen). Einfach geht es auch mit dem Shell-Script connect-via-sesam.sh, welches vom Benutzer aufgerufen werden kann. Es ruft erst das sesamoeffnedich.cgi im cgi-bin von der Webseite auf, danach logt es sich via SSH ein und macht die entsprechenden Prot Forwardings (einfach im Script anpassen). Login überwachenTrotz aller Vorsicht und Absicherung kann ein Hacker den Datenverkehr mitschneiden und vielleicht herausfinden, wie der Zugriff freigeschaltet werden kann. Deshalb sollten unbedingt die Logins auf Fehlversuche überwacht werden, so dass man Hackerangriffe auch merkt. Das geht relativ einfach dem Script checkhack.sh, welches man als root ins /etc/cron.hourly kopiert und ausführbar macht. Damit man bei Angriffen auch eine Mail erhält, muss
man im Script die E-Mail Adresse anpassen und auch Systemmails (postfix)
entsprechend einrichten. Versucht dennoch jemand einzudringen, kann man eine
IP Adresse sperren in der /etc/sshd_conf mit dem
Eintrag: Normalerweise logge ich mit stunnel ein. Und den Zweitzugang mittels Port Weiterleitung
verwende ich mit dem Handy, oder mit dem PC wenn ich im Urlaub bin. Die
letzten paar Jahre gab es einen einzigen fremden Login-Versuch. Seit
diese IP gesperrt ist, gibt es keine Versuche mehr. Ich werte das als
Erfolg. |
||