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.