Ok. Die Idee ist sogar noch besser. Im Moment mach' ich den Port für 2 Stunden auf. Aber nach erfolgreichem Login kann man natürlich für den betreffenden Client länger erlauben und die Regel für den für alle geöffneten SSH sofort wieder entfernen.MSfree hat geschrieben:Das ist eine Idee, die mir so noch gar nicht gekommen ist. OK, SSH muß wohl oder übel für 1-2 Minuten für jeden geöffnet werden, aber das Risiko, ausgerechnet während dieses Zeitfensters gehackt zu werden, ist überschaubar.heisenberg hat geschrieben:Ich habe meinen PortKnocking-Client auf dem Handy. Dort schalte ich es frei und nutze von anderer Stelle. Ist natürlich temporäres Sicherheitsrisiko den SSH für alle zu öffnen. Ich halte das für mich für akzeptabel.
IPTABLES - ssh für bestimmte dynamische IP zulassen
- heisenberg
- Beiträge: 3565
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
Mit iptables wäre das eigentlich ganz einfach mit folgender permanenten Regel:heisenberg hat geschrieben:Ok. Die Idee ist sogar noch besser. Im Moment mach' ich den Port für 2 Stunden auf. Aber nach erfolgreichem Login kann man natürlich für den betreffenden Client länger erlauben und die Regel für den für alle geöffneten SSH sofort wieder entfernen.
Code: Alles auswählen
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Die folgende Regel, die sich nur um den Neuaufbau von SSH-Verbindungen kümmert, mußt du dann nach 1-2 Minuten wieder löschen:
Code: Alles auswählen
IPTABLES -A INPUT --dport 22 -m state --state NEW -j ACCEPT
- heisenberg
- Beiträge: 3565
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
War/Bin mir nicht sicher ob die gleiche SSH-Sitzung unter allen Umständen auch die gleiche TCP-Sitzung ist. Ist das wirlich so?
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
Ja, das ist garantiert.heisenberg hat geschrieben:War/Bin mir nicht sicher ob die gleiche SSH-Sitzung unter allen Umständen auch die gleiche TCP-Sitzung ist. Ist das wirlich so?
Allerdings habe ich mir über dieses dynamische IP-Problem auch meine Gedanken gemacht und einen Daemon geschrieben, der Clients mit Hostnamen, die per DynDNS auflösbar sind, Zugang gewährt. Mittlerweise ist dieser Daemon noch um Pingknocking erweitert worden, was aber einen speziellen Pingclient voraussetzt, der die Payload in die Pingpakete schreibt.
- heisenberg
- Beiträge: 3565
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
Das wäre dann also ein sehr komplexes Passwort, dass im Klartext über die Leitung geschickt wird?MSfree hat geschrieben:Allerdings habe ich mir über dieses dynamische IP-Problem auch meine Gedanken gemacht und einen Daemon geschrieben, der Clients mit Hostnamen, die per DynDNS auflösbar sind, Zugang gewährt. Mittlerweise ist dieser Daemon noch um Pingknocking erweitert worden, was aber einen speziellen Pingclient voraussetzt, der die Payload in die Pingpakete schreibt.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: IPTABLES - ssh für bestimmte dynamische IP zulassen
Nein, das Paßwort wird durch einen Zeitfaktor verlängert und mit SHA256 gehasht und dann der Hash übertragen. Das ganze ist im Endeffekt so etwas ähnliches wie ein One-Time-Paßwort. Der Knockingdaemon nimmt das hinterlegte Paßwort und hasht es ebenfalls mit diesem Zeitfaktor und vergleicht die Hashes.heisenberg hat geschrieben:Das wäre dann also ein sehr komplexes Passwort, dass im Klartext über die Leitung geschickt wird?
Durch den Zeitfaktor ist so ein Hash dann nur eine gewisse zeit gültig, und selbst, wenn ein Angreifer den mitliest, hätte er nicht lange Freude daran. Die Uhren in Client und Server müssen dazu allerdings halbwegs synchron laufen, was dank NTP ja eigentlich kein großes Problem ist. Dennoch erlaube ich hier noch 100s Tolleranz.
- ein Angreifer müßte also zunächst den Hash mitlesen
- dann müßte er das Pingpaket selbst von seinem Angriffsrechner abschicken
- dann müßte er wissen, was der Knockingdaemon mit dem Hash macht, er öffnet ja nicht unbedingt den SSH-Port, das funktioniert mit einem OpenVPN-Port auch.
- Sollte er herausbekommen haben, daß der verschickte Hash den SSH-Port für 2 Minuten öffnet, kann er in dieser Zeit versuchen, den SSH-Server zu kapern
Ich denke, das dürfte hinreichend abgesichert sein