heinzelrumpel hat geschrieben:Ich sehe da nur einen Umweg als Lösung. Die IP des externen Rechners muss auf den Rechner gelangen, damit die iptables Regel erstellt werden kann. Ich würde mir da per OpenVPN ein Verbindung einrichten.
Es ist nicht besonders sinnvoll, eine VPN-Verbindung aufzubauen, um die IP des entfernten Rechners auf den Server zu übertragen, damit dann IP-Tables-Regeln erstellt werden können, die genau diese eine IP für SSH zuläßt. Das Problem ist nämlich dann, daß die VPN nur für bestimmte dynamische IPs zulassen willst, die du dann.....
Was genau soll denn der Sinn und Zweck dieser Übung sein?
Die Begrenzung des SSH-Zugangs auf einen eingeschränkten Nutzerkreis.
thoerb hat geschrieben:Das einzig Sinnvolle ist meiner Meinung nach eine Authentifizierung über Public-Keys.
Und genau die wurde bei mir schonmal ausgehebelt durch einen Fehler im SSH-Daemon, der zwar später geflickt wurde, aber da war es schon zu spät. Seither mache ich genau das, was der OP oben gefordert hat.
wckl hat geschrieben:Hat jemand dafür eine Lösung?
Ja, ich habe dafür eine Lösung.
Die sieht so aus:
- Client und Server müssen ihre aktuelle IP-Adresse bei einem DynDNS-Hoster ständig aktuell halten, z.B. bei afraid.org. Beim Server ist das nur nötig, wenn der ebenfalls eine dynamisch wechselnde IP-Adresse hat, sonst findet der Client den nicht.
- mit iptables wir eine Regel erstellt, so daß eingehenden SSH-Pakete, die einen Verbindungsaufbau initiieren sollen, gequeued werden:
Code: Alles auswählen
iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -j QUEUE
- ich habe mir einen eigenen Daemon geschrieben, der die gequeueten Pakete abfängt, die IP-Adresse des Clients extrahiert, und dann einen Nameserverlookup auf den Hostnamen des erlaubten Clients durchführt, als z.B. ein nslookup beispiel.homenet.org. Die IP-Adresse, die dieser nslookup liefert, wird dann mit dem eingehenden Paket verglichen und bei Übereinstimmung durchgelassen, sonst verworfen.
Es gibt leider keine Debianpaket, nur Sourcecode, den man selbst kompilieren muß.