nur eine dyndns IP auf ssh erlauben?

Started by nautilus, February 27, 2025, 07:08:20 PM

Previous topic - Next topic
Guten Abend,

ich würde gerne das Login auf einen SSH-Server beschränken.
Beim Kunde gibt eine feste IP "extern". Bei mir zu Hause habe ich einen Dyndns!

Wie könnte ich das Einrichten, dass nur die IP "des dyndns" auf den SSH-Server erlaubt wird?
Ich setzte die Version "OPNsense 25.1.1-amd64" ein.

danke

Bei einer dynamischen Adresse nimm besser eine VPN-Verbindung.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Moin, das ist mit einem Alias möglich.  Bedingung ist, dass du eine dyndns-adresse hast. Anbieter ist egal. IPV64.net ist ganz nett.

Du gehst auf Firewall -> Aliases -> +
Enable: ✓
Name :DYNDNS oder so
Type: Host(s)
Categories: leer
Content: Deine Dyndns-Adresse
Statistics: kein Haken
Description: DYNDNS to allow SSH


Dann zu Firewall -> Rules -> WAN -> +
Action: pass
Disabled: kein Haken
Quick: ✓
Interface: WAN
Direction: in
TCP/IP Version: IPv4 (ggf. IPv4+IPv6)
Protocol: TCP
Source / Invert; kein Haken
Source: Den vorher angelegten Alias auswählen
Destination / Invert: kein Haken
Destination: This Firewall
Destination port range: bei from: und to: SSH auswählen (ggf. other und alternativen SSH-Port eintragen)
Log: kein Haken (optional)
Category: leer lassen (optional)
Description: Allow SSH from ....
No XMLRPC Sync: kein Haken
Schedule: none
Gateway: default



Das gleiche kann man auch mit dem http(s) Zugriff machen.

 Viel Erfolg
Pascal


Hallo Pascal,

entschuldige für die späte Antwort. Ich habe eine Lösung gefunden, die ich zur Zeit nutze.

Ein Bashscript !

#!/bin/sh
GRAF=ausgabe


IP=$(echo $(dig dyndns.de +short))

#IP="dig dyndns.de.de +short"

if [ -f $GRAF ]; then
    ALT=`cat $GRAF`
        if [ $GRAF = $IP ]; then
                        echo "IP ist aktuell!"
                        exit 0;
                else
                        echo "IP ist nicht aktuell!"
                        echo "Schreibe neue IP in Datei."
                        echo $IP > $GRAF
                       # ufw delete allow  from $ALT to any port 4576 proto tcp
                       # ufw allow from $IP to any port 4576,80,443,143,25 proto tcp

                    /usr/sbin/ufw delete allow from $ALT to any port 2222  proto tcp
                    /usr/sbin/ufw allow from $IP to any port 2222 proto tcp
                fi
else
        echo "Datei ist nicht vorhanden."
        echo "Erstelle Datei in $IP und schreibe die aktuelle IP."
        echo $IP > $GRAF
        chmod 775 $GRAF
fi

exit 0;


so habe ich in der UFW auf dem Server immer die neuste IP.

Das werde ich auch noch mit OPENSENSE probieren, "danke für deinen POST!"

Der Cronjob wird alle 5 Minuten ausgeführt.

liebe grüsse

Das brauchst Du nicht probieren, es geht auf keinen Fall, weil Linux ungleich FreeBSD und ufw ungleich pf.

Die Frage ist, wo Du die Filterung durchführen willst. Entweder auf der OpnSense selbst, dann geht es mit dem DynDNS-Host-Alias wie oben beschrieben - allerdings nicht mit einer Firewall-Regel, sondern mit einem Port-Forward, der dann auf den Alias beschrönkt wird.

Oder auf dem Zielsystem, wo es z.B. so gehen könnte wie in dem Skript. Dann würde man den Port-Forward auf der OpnSense nicht einschränken.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Hallo, ich werde die Filterung mal auf dem Debian Server lassen.
Dieser stellt ein SSH LOGIN Server da. Bei dem ich nur extern einen Zugang habe.

lieben dank und ein schönes wochenende.