Beiträge von frank_m

    Ich lasse mich nicht als Lügner bezeichnen, nur weil ich von einer Software (Wireguard) mal keine Ahnung habe und Hilfe benötige.

    Wenn du nur von Wireguard keine Ahnung hättest, dann wäre es ja nicht so schlimm. Aber es ist ja offensichtlich, dass du von IP, Routing und Firewalls keine Ahnung hast. Wie willst du dein System schützen, wenn du nicht weißt, welchen Weg die Datenpakete in dein System nehmen? Wie soll das gehen?

    Du musst hier nicht antworten. Beantworte dir einfach nur ehrlich diese Frage abends vorm Spiegel, und dann beurteile selber, ob es eine gute Idee ist, einen vServer öffentlich am Netz zu betreiben, oder ob du nicht besser noch einige Monate mit einer VM zu Hause übst.

    - Das mit dem NAT verstehe ich nicht, sind das die PostUp und PostDown Regeln und diese sollte ich löschen?

    - Was meinst du mit Default Routes im Client. Sind das die AllowedIPs?

    Du administrierst einen vServer, der öffentlich aus dem Netz erreichbar ist. Wenn du das nicht weißt, dann ist das hier:

    Zum Thema SSH.

    Das ist abgesichert.

    garantiert gelogen. Es nützt nichts, SSH abzusichern, wenn du dann hintenrum wieder haufenweise Lücken einbaust.


    - Das mit dem NAT verstehe ich nicht, sind das die PostUp und PostDown Regeln und diese sollte ich löschen?

    Ob du da alles löschen darfst, weiß ich nicht. Die NAT Regeln auf jeden Fall, aber dafür brauchst du vielleicht andere, die jetzt noch nicht drin sind. Anleitung lesen, verstehen, auf die eigene Situation adaptieren, umsetzen.

    - Was meinst du mit Default Routes im Client. Sind das die AllowedIPs?

    Momentan steht die Default Route in deinen Allowed IPs. Das sollte für deinen Anwendungsfall aber nicht so sein. Grundlagen IP Routing.

    Du solltest deine Configs vor dem Abspeichern immer auf Konsistenz prüfen. Zum Beispiel sieht man hier auf den ersten Blick, dass die "Address" in der Server Konfig ein Subnetz ist und keine Adresse. Das darf natürlich nicht sein und wird in der Folge auch nicht funktionieren. In der SSH Konfig hast du es hingegen richtig gemacht, womit auch direkt deutlich wird, dass die beiden nicht zusammen passen.

    Und dann sind da immer noch NAT Regeln in der Server Konfig und die Default Route im Client. Beides ist Unsinn für deinen Anwendungsfall.

    Wenn du SSH auf der öffentlichen Adresse lauschen lässt, solltest du einige Sicherheitsmaßnahmen ergreifen: Anderer Port (nicht 22), keine Anmeldung via Passwort, nur per Zertifikat, und fail2ban sollte sauber laufen. Dann musst du natürlich den Port in der Firewall freigeben.

    Ja, aber nur der Server. Der VPN Client soll ja nicht über den Tunnel ins Internet gehen. Was du auf dem Server erreichen kannst, kannst du ja sehr einfach über die Allowed IPs und Firewallregeln beeinflussen.

    Du solltest nur die Funktionen aktivieren und nur den Datenverkehr durchs VPN leiten, den du wirklich brauchst. Also wenn es nur um den Zugriff auf Docker geht, dann weg mit den NAT Regeln und der Defaultroute, dafür das Docker Netz in die Allowed IPs aufnehmen.

    Gute Fragen, kann ich dir wirklich nicht beantworten. Ich habe für wireguard eine Anleitung verwendet.

    Deshalb sage ich immer, nie eine Anleitung blind abtippen. Lesen, verstehen, auf die eigene Situation adaptieren, umsetzen.


    Ich denke, ich muss wohl das ganze Konzept nochmal überarbeiten.

    Das Konzept ist ok, die Umsetzung ist schlecht. In erster Linie solltest du den VPN Tunnel umbauen.

    Also entweder hast du uns nicht alles verraten, oder die Konfiguration macht so keinen Sinn.

    Einige Fragen: Warum macht der Server NAT, und warum wird im Client der ganze Internetverkehr über VPN geleitet, wenn es nur darum geht, Port 81 auf dem Docker zu erreichen? Wofür IPv6 Regeln, wenn es gar keine IPv6 Adressen im Tunnel gibt? Waum ist die Allowed IP im Server 10.8.0.2/32, während die Adresse des Clients 10.8.0.3/32 ist? Es wird nie ein Paket den Client erreichen.

    Damit ich nun den Port 81 über Wireguard erreich kann. Habe ich in der Compose-Datei von NPM die folgende Zeile hinzugefügt

    ...

    Ports:

    - '10.8.0.1:81:81'

    Das ist gefährlich. Existiert der VPN Tunnel nicht, scheitert der Docker Aufruf. Das ist besonders nach einem Reboot gerne der Fall. Öffne Port 81 einfach nur lokal und erlaube den Zugriff aufs Docker Interface über die Allowed IPs des Tunnels.

    Ich würde die Portfreigabe gerne über ufw steuern. Docker kann gerne die Ports öffnen, aber ich würde die gerne mit, z.B. sudo ufw deny 81/tcp sperren.

    Kann mir einer sagen, ob das eine gute Lösung ist oder gibt es eine bessere?

    Ja. Öffne den Port gar nicht erst auf dem WAN Interface. Mach eine Weiterleitung, falls nötig. Aber das sollte bei einem Zugriff über den Tunnel nicht nötig sein.

    Zum Port-Forwarding habe ich folgende iptables Regel hinzugefügt:

    -I PREROUTING -s 1.2.3.4/32 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 172.22.1.99:3306

    Die Source IP (1.2.3.4) habe ich zensiert.

    1.2.3.4 ist dabei deine öffentliche IP? Dann muss dort "-d" hin, nicht "-s". Außerdem muss "-t nat" in die Regel. Das kann aber ggf. auch durchs Framework erledigt werden.

    Entsprechend habe ich eine weitere Regel in die FORWARD Tabelle (DOCKER-USER) hinzugefügt:

    -I DOCKER-USER -p tcp -m tcp --dport 3306 -j ACCEPT

    In der Regel würde ich auch noch die Zieladresse (-d 172.22.1.99) mit angeben.

    Die Fritzbox kann netcup DNS Einträge nicht direkt aktualisieren, du brauchst eine Zwischeninstanz. Das kann ein Webservice wie ownDynDns sein, oder du benutzt einen anderen ddns Dienst und arbeitest mit CNAMEs.

    Im Wiki finden sich Beispielprojekte für die netcup DNS Schnittstelle (z.B. ownDynDns, aber auch andere). Ob da was für den ddclient dabei ist, weiß ich nicht. Für die Fritzbox wird sich da nichts finden.

    Am liebsten ist mir alles was ich rein per ssh und Konsole konfigurieren kann und es danach auch noch funktioniert am liebsten.

    Endlich normale Menschen! Mir geht dieser ganze Clicki-Bunti Kram auch auf die Nerven. Von mir aus könnte auch das Infotainment System in meinem Auto eine bash als Eingabemedium haben.

    Nicht ganz. Du erzeugst nur auf deinem Wireguard Server die .key und .pub und ergänzt deine Wireguard-Conf auf dem Server.

    Ich tue mich bei Wireguard schwer mit den Begriffen Server und Client. Im Grunde kommunizieren da zwei oder mehr gleichberechtigte Partner miteinander, und jeder öffnet einen Server Port, auf dem die jeweiligen Partner als Client zugreifen.

    Deshalb ist es auch egal, wo die Keys erzeugt werden, solange am Ende jeder Knoten seinen (und nur seinen!) Private Key hat und alle anderen Knoten den zugehörigen Public Key.

    Das würde dann beudeuten, dass jeder der Rechner zwar selbst ein Wireguard-Server ist aber eine Liste von *.pub der restlichen Rechner hat auf die er zugreifen darf/kann/soll.

    Exakt so ist es richtig.

    Natürlich wird man häufig auf Konstellationen treffen, in denen es einen zentralen Knoten gibt, auf den alle zugreifen, und der dann die Daten verteilt. Der heißt dann häufig Server, aber schon Cisco nannte seine VPN Server "Concentrator", und der Begriff passt deutlich besser.

    Aber man kann mit Wireguard auch wundervolle dezentrale Netze bauen, in denen die jeweiligen Peers direkt miteinander reden. Kann aus Performance-Sicht vielleicht sogar vorteilhaft sein, wenn der Hop über den Concentrator entfällt. Schwierig wird es, wenn keiner der beiden Nodes eine öffentliche IP hat, dann ist eine zentrale Instanz, die von überall erreichbar ist, natürlich wertvoll.

    Wenn ich die UFW-Firewall vewende und nicht iptables?

    Willst du wirklich NAT verwenden? Das solltest du anhand deiner Anwendungsfälle noch mal kritisch prüfen. Das braucht man längst nicht so oft, wie es die gängigen Tutorials erwarten lassen. Eigentlich gibt es nur einen Grund dafür, nämlich Internetzugriff über VPN. In allen anderen Fällen ist es eher kontraproduktiv.

    Warum? Sie ist bei GMail im Spamordner gelandet! Also liegt das Problem nicht bei mir,

    Stell dir vor, du stehst vor Gericht und erzählst dem Richter die Nummer. Du merkst es selber, oder?

    Wenn muss Netcup auch dafür Sorge tragen, dass solche wichtigen Informationen auch wirklich beim Empfänger ankommen!

    In dem Moment, wo die Mail an deinen Mailserver übergeben wurde, ist das der Fall. Für deine SPAM Regeln können sie nichts. Du hast ja bestimmt einen gmail Business Account bei so wichtigen Geschäften, da kannst du das ja selber einstellen, z.B. durch das Hinzufügen von Adressen deiner Geschäftspartner zur Whitelist.

    Ich würde dir raten, das Thema zu den Akten zu legen. Du machst es nur schlimmer.

    Du bekommst eine Abuse Meldung von einem Server mit tausenden Kunden und schaffst es nicht, innerhalb von 24 Stunden eine Stellungnahme abzugeben? Du musst es ja nicht selber machen, dann übergebe es halt an einen Mitarbeiter.

    ... Freitagabend dann mein Server gesperrt wird, ich dann sofort Stellung genommen habe,

    Ach, da ging es "sofort"? Hmm.

    Jetzt ist mein Produktionsserver, mit tausenden Kunden übers Wochenende nicht erreichbar, ich verliere Geld und Vertrauen der Kunden, nur weil solche wichtigen Ding am Wochenende nicht bearbeitet werden.

    Jetzt ist es plötzlich wichtig.

    Ich kann den Ärger verstehen, aber hier muss man echt fragen, wo der Fehler gemacht wurde. Du verpennst es während der regulären Arbeitswoche, und erwartest nun, dass andere am Wochenende dein Problem wieder grade biegen? Das hättest du vermeiden können.

    Ich würde mich auch fragen, wo die Abuse Meldung herkommt. Auch wenn sie falsch ist, gibt es eine Ursache.