Ich werde einen Linux-Computer als eine Art öffentliches Terminal an einem entfernten Standort bereitstellen. Ich möchte zur Wartung über SSH remote darauf zugreifen können, möchte jedoch in den seltenen Fällen, in denen ich auf diesen Computer zugreifen muss, keinen Port an der Remote-Firewall offen halten. Ich habe über ein einfaches Skript nachgedacht, um einen Reverse-SSH-Tunnel zu einem Computer von außen zu erstellen, aber ich möchte lieber nicht, dass ein Benutzer etwas tun muss, wenn ich darauf zugreifen muss. Irgendwelche Ideen?
Update: Ich habe beschlossen, mit meinem ursprünglichen Plan eines Skripts einen umgekehrten SSH-Tunnel zu erstellen. Während andere vorgeschlagene Lösungen, wie z. B. das Klopfen von Ports, eher dem entsprechen, was ich wirklich tun möchte, habe ich in diesem Fall keinen anderen Zugriff, um den Router zu konfigurieren, als einen Benutzer durch eine Konfiguration zu führen. schaudern
quelle
Antworten:
Wenn ein Routerwechsel nicht in Frage kommt, müssen Sie sich möglicherweise eine P2P- oder VPN-Lösung wie Hamachi ansehen . Wenn Sie das System so einrichten, dass beim Start automatisch eine VPN-Verbindung hergestellt wird, sollten Sie jederzeit eine Verbindung herstellen können. Hamachi erledigt alle Firewall-Verhandlungen für Sie. Der einzige Nachteil ist, dass Sie sich darauf verlassen müssen, dass die Hamachi-Server betriebsbereit und funktionsfähig sind, wenn Sie eine Verbindung herstellen müssen.
Wenn Sie einen Server haben, der immer aktiv ist, können Sie autossh so einrichten , dass das Remote-System immer einen Tunnel offen hält und mit Ihrem Server verbunden ist. Der einzige Nachteil ist, dass das Remote-System kompromittiert ist und der Angreifer die Schlüssel erhält, mit denen die SSH-Sitzung eingerichtet wurde. Es wäre sehr wichtig, dass Ihr System, das die SSH-Verbindung akzeptiert, wirklich gesperrt bleibt.
Unten ist meine ursprüngliche Antwort, ich hatte angenommen, dass das Aktualisieren des Routers eine Option war.
Eine Lösung, die Sie möglicherweise untersuchen möchten, wenn Ihre Firewall dies unterstützt, ist das Klopfen von Ports . Bei einigen Firewalls sollte es möglich sein, einen speziellen Satz von Paketen zu versenden, die die Firewall bemerkt und dann vorübergehend ein Loch in der Firewall öffnet.
Es gibt viele Implementierungen, einige besser als andere. Einige verwenden eine starke Kryptographie, um es einer Person ohne die richtigen Schlüssel nahezu unmöglich zu machen, das richtige Klopfen zu senden.
quelle
Ich würde mir keine Sorgen machen, Port 22 für das Internet zugänglich zu machen, aber ich würde einige Schritte unternehmen, um ihn zu sichern.
Deaktivieren Sie zunächst die interaktive Tastaturauthentifizierung und wechseln Sie zu den SSH-Tasten.
Zweitens installieren Sie so etwas wie fail2ban auf Ihrem Remote-Server unter Blackball-IP-Adressen, die Ihren Computer wiederholt prüfen. Da Sie SSH-Schlüssel eingerichtet haben, sollten für autorisierte Benutzer keine Authentifizierungsfehler auftreten.
Wenn Sie in der Lage sind, befolgen Sie alternativ den Rat von WerkkreW und konfigurieren Sie die Firewall vor dem Computer so, dass eine VPN-Verbindung beendet wird. Lassen Sie dann nur den SSH-Dämon auf dem Remote-Server Verbindungen akzeptieren, die über diesen VPN kommen.
Wenn Ihre Firewall die VPN-Verbindung nicht beenden kann, können Sie die GRE- oder IPSEC-Pakete wahrscheinlich an Ihren Linux-Computer weiterleiten und dort beenden.
quelle
Es hört sich so an, als ob Sie nach Knockd suchen
Sie können das auf dem Linux-Server selbst mit iptables installieren, so dass es einer Art Firewall der zweiten Ebene ähnelt. Selbst wenn Port 22 in der Frontend-Firewall geöffnet wäre, wäre er auf dem Server nicht geöffnet, sodass Portscans keine offenen Ports sehen würden. Wenn Sie dann das "geheime Klopfen" senden, haben Sie plötzlich einen offenen Weg zu Port 22.
Ist das sinnvoll?
quelle
Um alle Antworten zusammenzufassen:
benutze ssh, aber mache es dunkler und sicherer.
Zur Sicherheit:
Für die Dunkelheit:
quelle
Geplante Aufgabe das Skript für Ihren Reverse-SSH-Tunnel oder öffnen Sie den Firewall-Port.
Wenn Sie befürchten, dass SSH für die Welt offen ist, können Sie während Ihrer Wartungszeit Aufgaben mit iptables-Skripten planen und nur dann den Port zur Verfügung haben.
quelle
Schauen Sie sich Port-Knocking an, um Ihren SSH-Tunnel zu öffnen.
Führen Sie außerdem Denyhosts aus, um Personen nach zu vielen schlechten Anforderungen auszusperren.
Beide Pakete sind in den Standard-Repositorys Ubuntu, Fedora und RHEL verfügbar.
quelle
Öffnen Sie einen Port, machen Sie ihn einfach außerhalb des normalen Bereichs. Ich würde es über 1024 zu einem zufälligen Port machen. Auf diese Weise würden Hacker wahrscheinlich nicht einmal danach suchen.
quelle
Kein Grund, das Loch in der Firewall nicht zu stechen, wenn Sie Remotezugriff auf den Computer benötigen, jedoch selten.
Wenn Sie den Port jedoch immer noch lieber nicht öffnen möchten (oder können), kann ein einfaches Shell-Skript eine im Internet verfügbare Ressource überwachen, die Sie steuern, und auf den Befehl zum Starten des umgekehrten Tunnels warten. E-Mail-Konten, IRC-Kanäle und Webseiten fallen sofort als Auslöser ein.
Dies ist natürlich viel spröder und weniger sicher als nur das Öffnen des Hafens. Aber ich bin sicher, Sie haben Ihre Gründe.
quelle