SSH Zugriff ohne öffentliche IP

  • Wie einige von euch wissen möchte ich einen MariaDB Galera Cluster aufbauen.

    Ich überlege nun mittels Cloud vLAN darauf zuzugreifen und die öffentliche IP aus dem Interface zu nehmen.

    Ich frage mich nur grad wie ich dann per SSH auf die Server zugreifen könnte wenn ich Updates machen möchte.


    Was gäbe es da für Möglichkeiten ausser die Verbindung über das SCP?

  • SSH über das Cloud vLAN von einem anderen Server aus (JumpHost).

    Du hast zusätzlich noch den Bedarf die Updates irgendwoher zu laden, wenn Du dazu weiter die Paketverwaltung Deiner Distribution nutzen möchtest, brauchst Du irgend einen Zugang zu den Paketquellen, z.B. über einen Proxy-Server (den Du z.B. ebenfalls am Jump Host bereitstellst).


    Alternativ: Du bringst für Updates doch das Internet-Interface immer kurzfristig online.

  • Hm guter Ansatz ?

    Bez. Updates könnte ds wirklich schlau sein das Interface mit der öffentlichen IP aktiv zu lassen.

  • Ich werde für die Updates bei mir einfach einen apt-cacher-ng am Jumphost installieren. Darüber können sich die internen (Debian) VMs problemlos ihre Updates übers vLAN holen. Das nutze ich zu Hause schon seit Jahren für VMs in abgeschotteten VLANs. Man muss nur vorsorgen, dass die Cache Partition nicht voll läuft… ;)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Vielleicht blauäugig oder leicht off topic - aber ich stehe ja auf Port knocking.


    Gibt es in diversen Variationen, auch als Dienst oder / und mit einer Sequenz von Ports. Für den gelegentlichen ssh Zugriff halte ich das für mehr als ausreichend sicher.


    Code
    ## Knock on 5226 required!  (e.g. "ssh host -P 5226 &")
    -A INPUT -p tcp -m tcp --dport 5226 -m recent --set --name SSH --mask 255.255.255.255 --rsource -m comment --comment "SSH Knock"
    
    ## sequential port scanning will check this port - and close the open Port again
    -A INPUT -p tcp -m tcp --dport 5225 -m recent --remove --name SSH --mask 255.255.255.255 --rsource -m comment --comment "SSH Knock"
    -A INPUT -p tcp -m tcp --dport 5227 -m recent --remove --name SSH --mask 255.255.255.255 --rsource -m comment --comment "SSH Knock"
    
    ## Only if knocked within the last 30 seconds - ssh is open
    -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 5229 -m recent --rcheck --seconds 30 --name SSH --mask 255.255.255.255 --rsource -j ACCEPT  -m comment --comment "SSH when Knocked"
    -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED -m tcp --dport 5229 -j ACCEPT -m comment --comment "SSH Knock when established"


    Dazu dann natürlich noch ein Drop all auf dem entsprechenden Interface - IPv6 nicht vergessen.


    :) ItsMee