Wechseln zu:Navigation, Suche
Wiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 9: Zeile 9:
| WireGuard® Konfiguration im Admin Interface
| WireGuard® Konfiguration im Admin Interface
| WireGuard® configuration in the admin interface }}
| WireGuard® configuration in the admin interface }}
{{var | neu--Funktion
| Neue Funktion ab v12.2.2
| New feature as of v12.2.2 }}
{{var | Allgemeines
{{var | Allgemeines
| Allgemeines
| Allgemeines
| General }}
| General }}
{{var | 1=Allgemeines--desc
| 2=Wireguard® ist ein modernes und einfaches VPN Protokoll, das zusätzlich durch seine Geschwindigkeit überzeugt.
Wireguard verzichtet auf einige aufwendige Verfahren zum Schlüsselaustausch und ist unter Anderem dadurch einfacher zu handhaben als IPSec.
Durch die Integration in den Linux Kernel ist eine performante und Ressourcen schonendere Verarbeitung als bei OpenVPN möglich.
Allerdings hat OpenVPN im Bezug auf das "pushen" von Einstellungen (Routen, DNS, etc.) Vorteile in der Administration von S2E/Roadwarrior-Verbindungen.
Wireguard kann für S2S- und S2E-Verbindungen genutzt werden.
Für S2E-Verbindungen stehen für verschiedenen Betriebssysteme entsprechende Clients durch das Wireguard-Projekt zur
Verfügung:
https://www.wireguard.com/install/
Verbindung
Die Kommunikation erfolgt über einen frei wählbaren UDP Port und nutzt IPv4 und IPv6 zum Transport der Datenpakete.
Das Handling zwischen den beiden Peers ist sehr an OpenSSH angelehnt.
"Peers" müssen zunächst ihre PublicKeys austauschen und können dann im weiteren "einfach" Daten austauschen.
Dabei zählt der Austausch der PublicKeys explizit nicht zur Spezifikation von WireGuard und muss manuell erfolgen.
Ein PublicKey muss einen Peer eindeutig identifizieren.
Eine mehrfache Verwendung ist nicht praktikabel.
Zum besseren Schutz kann noch zusätzlich ein Preshared Key verwendet werden.
Zum Start der Kommunikation muss ein Handshake zwischen den Peers erfolgen.
Dieser ist deutlich kürzer als zum Beispiel bei IPSec.
Peer A sendet ein Paket und Peer B antwortet auf dieses Paket.
Damit ist der Handshake abgeschlossen und die Peers haben einen synchronen Key jeweils für das Senden und Empfangen.
Der Handshake wird alle 2 Minuten bei einer laufenden Verbindung ausgeführt.
wg show zeigt den Status des Handshake (latest handshake) und Zeitpunkt mit an:
  1 root@a:~# wg show
  2 interface: wg0
  3 public key: beN9ikzlz2l6QPCj7IDbkI+lVeaLXBepkmnrE3XhVDo=
  4 private key: (hidden)
  5 listening port: 51280
  6
  7 peer: yyBYvlMU3J7ZFOF/5pafNPLIw6cHBggbuXzq9Nq6+Aw=
  8 preshared key: (hidden)
  9 endpoint: 88.198.198.46:51820
10 allowed ips: 10.2.0.0/16
11 latest handshake: 49 seconds ago
12 transfer: 4.80 MiB received, 154.58 KiB sent
13 persistent keepalive: every 1 second
Ist der Handshake nicht erfolgreich wird Wireguard keinen Fehler an den Absender schicken.
"Silence is a Virtue" -> Schweigen ist eine Tugend
Die Verschlüsselung ist dabei fest vorgegeben.
Der Wechsel der Cipher ist durch Einstellungen nicht vorgesehen.
Hier zeigt sich auch ein Nachteil: Gilt ein verwendetes Verfahren als nicht mehr sicher müssen alle Peers "zeitgleich" aktualisiert werden.
Die Schnittstelle zwischen dem WireGuard im Kernel und dem OS ist das wg-Interface (z.B.: wg0).
Das Interface präsentiert sich als "normales" Interface und kann über Tools wie iproute2 konfiguriert werden.
Ebenso wird das Interface in den Netzwerkeinstellungen gelistet und bietet ein paar relevante Einstellungen.
Routing
Pakete, die über eine Wireguard Verbindung geroutet werden sollen, müssen über das zugehörige wg-Interface geleitet werden. Innerhalb der WireGuard-Instanz wird über die Definition der AllowedIPs dann ein Peer identifiziert und die Daten verschlüsselt und auf die Reise geschickt.
Andersherum werden eingehende Pakete mit dem entsprechenden Key entschlüsselt und werden anschließend auf die AllowedIPs geprüft. Nicht akzeptable IP-Adressen werden verworfen.
So ist die Verwendung von 0.0.0.0/0 bzw. ::/0 als AllowedIPs zulässig.
Hier kann pro Interface / Instanz nur ein Peer definiert werden.
Details:
# Plaintext Paket kommt vom System durch eine Route am wgX Interfaec an
# Ziel-IP wird überprüft und bei einem Match mit einer AllowedIP einem Peer zugewiesen<br>Ist eine Zuweisung nicht möglich wird das Paket mittels ICMP “no route to host” abgelehnt
# Das Paket wird mit den für den Peer hinterlegten Key verschlüsselt
# Ein Header wird dem eigentlichen Paket vorgesetzt
# Anschließend werden der Header + Paket mittels UDP an die zuletzt gesetzte IP-Adresse und den definierten Port des Peers gesendet. Ist die IP nicht ermittelbar wird das Paket verworfen und eine entsprechende ICMP-Meldung verschickt.
# Paket kommt am Peer an
# Über den Header bestimmt WireGuard den zugehörigen Peer.<br>Wenn der Nachrichten Counter stimmt wird versucht das Daten-Paket zu entschlüsseln.<br>Ist das nicht möglich wird das Paket verworfen.
# Stimmen die Daten wird die Quell-IP als neuer Endpunkt des Peers geprüft und gegebenenfalls gesetzt
# Nachdem das Paket entschlüsselt wurde, wird geprüft, ob das Paket ein IP-Paket ist. Ansonsten wird es verworfen.<br>Bei einem gültigen IP-Paket wird anschließend geprüft ob das IP-Paket auf die AllowsIPs passt.<br>Sollte es nicht der Fall sein, wird das Paket verworfen.
# Wird das Paket zugelassen wird das Paket an das wg-Interface übergeben. Danach übernimmt das Routing im OS.
Peer Roaming
* Die Deklaration der IP/Hostname eines Peers ist nicht zwingend erforderlich
* WireGuard verwendet automatisch die äußere IP eines korrekt authentifizierten Datenpaketes
* Initial muss natürlich eine Seite bekannt sein
NAT
WireGuard kann einen Keepalive schicken. Dadurch werden Verbindungen auf NAT-Routern offengehalten. Da die Kommunikation nur über einen UDP-Port läuft ist WireGuard gegenüber NAT-Problematiken entsprechend nicht anfällig.
Sonstiges
Webseiten - weitere Informationen
https://www.wireguard.com/
https://www.wireguard.com/papers/wireguard.pdf
https://wiki.archlinux.org/title/WireGuard
http://www.noiseprotocol.org/noise.html#introduction
http://cr.yp.to/ecdh.html
http://cr.yp.to/chacha.html
http://cr.yp.to/mac.html
https://www.blake2.net/
https://github.com/veorq/SipHash/
https://eprint.iacr.org/2010/264
| 3=Wireguard® is a modern and simple VPN protocol that also impresses with its speed.
Wireguard does without some complex procedures for key exchange and is, among other things, easier to handle than IPSec.
Due to the integration into the Linux kernel, a high-performance and resource-saving processing is possible compared to OpenVPN.
However, OpenVPN has advantages in terms of "pushing" settings (routes, DNS, etc.) in the administration of S2E/Roadwarrior connections.
Wireguard can be used for S2S and S2E connections.
For S2E connections, appropriate clients are available for various operating systems through the Wireguard project:
https://www.wireguard.com/install/
Connection
Communication takes place via a freely selectable UDP port and uses IPv4 and IPv6 to transport the data packets.
The handling between the two peers is very similar to OpenSSH.
"Peers" must first exchange their PublicKeys and can then "simply" exchange data.
The exchange of PublicKeys is explicitly not part of the WireGuard specification and must be done manually.
A PublicKey must identify a peer unambiguously.
Multiple use is not practical.
For better protection, a preshared key can also be used.
A handshake between the peers is required to start communication.
This is much shorter than with IPSec, for example.
Peer A sends a packet and Peer B responds to this packet.
This completes the handshake and the peers have a synchronous key for sending and receiving.
The handshake is executed every 2 minutes with a running connection.
wg show displays the status of the handshake (latest handshake) and time:
  1 root@a:~# wg show
  2 interface: wg0
  3 public key: beN9ikzlz2l6QPCj7IDbkI+lVeaLXBepkmnrE3XhVDo=
  4 private key: (hidden)
  5 listening port: 51280
  6
  7 peer: yyBYvlMU3J7ZFOF/5pafNPLIw6cHBggbuXzq9Nq6+Aw=
  8 preshared key: (hidden)
  9 endpoint: 88.198.198.46:51820
10 allowed ips: 10.2.0.0/16
11 latest handshake: 49 seconds ago
12 transfer: 4.80 MiB received, 154.58 KiB sent
13 persistent keepalive: every 1 second
If the handshake is not successful Wireguard will not send an error to the sender.
"Silence is a Virtue"
The encryption is fixed.
The settings do not allow the cipher to be changed.
This also has a disadvantage: If a method used is no longer considered secure, all peers must be updated "simultaneously".
The interface between the WireGuard in the kernel and the OS is the wg interface (e.g.: wg0).
The interface presents itself as a "normal" interface and can be configured via tools like iproute2.
The interface is also listed in the network settings and offers a few relevant settings.
Routing
Packets that are to be routed via a Wireguard connection must be routed via the associated wg interface. Within the WireGuard instance, a peer is then identified via the definition of the AllowedIPs and the data is encrypted and send on its way.
Conversely, incoming packets are decrypted with the appropriate key and are then checked for the AllowedIPs. IP addresses that are not acceptable are discarded.
Thus, the use of 0.0.0.0/0 or ::/0 as AllowedIPs is permitted.
Here, only one peer can be defined per interface / instance.
Details:
# Plaintext packet arrives from the system through a route at the wgX interfaec
# Destination IP is checked and assigned to a peer in case of a match with an AllowedIP<br>If an assignment is not possible the packet is rejected using ICMP "no route to host"
# The packet is encrypted with the key stored for the peer.
# A header is placed in front of the actual packet.
# Then the header + packet are sent via UDP to the last set IP address and the defined port of the peer. If the IP cannot be determined, the packet is discarded and a corresponding ICMP message is sent.
# Packet arrives at the peer
# WireGuard determines the associated peer via the header.<br>If the message counter is correct, an attempt is made to decrypt the data packet.<br>If this is not possible, the packet is discarded.
# If the data is correct, the source IP is checked as the new endpoint of the peer and set if necessary.
# After the packet has been decrypted, it is checked whether the packet is an IP packet. Otherwise it is discarded.<br>If the IP packet is valid, it is then checked whether the IP packet matches the AllowsIPs.<br>If it does not, the packet is discarded.
# If the packet is allowed, the packet is passed to the wg interface. After that the routing in the OS takes over.
Peer Roaming
* The declaration of the IP/hostname of a peer is not mandatory
* WireGuard automatically uses the outer IP of a correctly authenticated data packet
* Initially, of course, one side must be known
NAT
WireGuard can send a keepalive. This keeps connections open on NAT routers. Since the communication only runs via a UDP port, WireGuard is not susceptible to NAT problems.
Other
Websites - more information
https://www.wireguard.com/
https://www.wireguard.com/papers/wireguard.pdf
https://wiki.archlinux.org/title/WireGuard
http://www.noiseprotocol.org/noise.html#introduction
http://cr.yp.to/ecdh.html
http://cr.yp.to/chacha.html
http://cr.yp.to/mac.html
https://www.blake2.net/
https://github.com/veorq/SipHash/
https://eprint.iacr.org/2010/264 }}
{{var | Übersicht--desc
{{var | Übersicht--desc
| Wireguard® ist ein modernes und einfaches VPN Protokoll, das zusätzlich durch seine Geschwindigkeit überzeugt.  
| Wireguard® ist ein modernes und einfaches VPN Protokoll, das zusätzlich durch seine Geschwindigkeit überzeugt.  
Zeile 230: Zeile 22:
| Advantages }}
| Advantages }}
{{var | 1=Vorteile--desc
{{var | 1=Vorteile--desc
| 2=<li class="list--element__bullet">Wireguard verzichtet auf einige aufwendige Verfahren zum Schlüsselaustausch und ist unter Anderem dadurch einfacher zu handhaben als IPSec</li>
| 2=<li class="list--element__bullet">Wireguard verzichtet auf einige aufwendige Verfahren zum Schlüsselaustausch und ist unter anderem dadurch einfacher zu handhaben als IPSec</li>
<li class="list--element__bullet">Durch die Integration in den Linux Kernel ist eine performante und Ressourcen schonendere Verarbeitung als bei OpenVPN möglich</li>
<li class="list--element__bullet">Durch die Integration in den Linux Kernel ist eine performante und Ressourcen schonendere Verarbeitung als bei OpenVPN möglich</li>
| 3=<li class="list--element__bullet">Wireguard does without some complex procedures for key exchange and is therefore easier to handle than IPSec.</li>
| 3=<li class="list--element__bullet">Wireguard does without some complex procedures for key exchange and is therefore easier to handle than IPSec.</li>
Zeile 253: Zeile 45:
{{var | Verbindung--desc
{{var | Verbindung--desc
| Die Kommunikation erfolgt über einen frei wählbaren UDP Port und nutzt IPv4 und IPv6 zum Transport der Datenpakete.
| Die Kommunikation erfolgt über einen frei wählbaren UDP Port und nutzt IPv4 und IPv6 zum Transport der Datenpakete.
<p>Das Handling zwischen den beiden Peers ist sehr an OpenSSH angelehnt.<br>
<p>Das Handling zwischen den beiden Peers ist sehr an OpenSSH angelehnt.<br> "Peers" müssen zunächst ihre PublicKeys austauschen und können dann im weiteren "einfach" Daten austauschen.<br> Dabei zählt der Austausch der PublicKeys explizit nicht zur Spezifikation von WireGuard und muss manuell erfolgen.</p>
"Peers" müssen zunächst ihre PublicKeys austauschen und können dann im weiteren "einfach" Daten austauschen.<br>
Ein PublicKey muss einen Peer eindeutig identifizieren.<br> Eine mehrfache Verwendung ist nicht praktikabel.<br> Zum besseren Schutz kann zusätzlich noch ein Preshared Key verwendet werden.  
Dabei zählt der Austausch der PublicKeys explizit nicht zur Spezifikation von WireGuard und muss manuell erfolgen.</p>
Ein PublicKey muss einen Peer eindeutig identifizieren.<br>
Eine mehrfache Verwendung ist nicht praktikabel.<br>
Zum besseren Schutz kann zusätzlich noch ein Preshared Key verwendet werden.  
| Communication takes place via a freely selectable UDP port and uses IPv4 and IPv6 to transport the data packets.
| Communication takes place via a freely selectable UDP port and uses IPv4 and IPv6 to transport the data packets.
<p>The handling between the two peers is very similar to OpenSSH.<br>
<p>The handling between the two peers is very similar to OpenSSH.<br> "Peers" must first exchange their PublicKeys and can then "simply" exchange data further on.<br> The exchange of PublicKeys is explicitly not part of the WireGuard specification and must be performed manually.</p>
"Peers" must first exchange their PublicKeys and can then "simply" exchange data further on.<br>
A PublicKey must identify a peer unmistakably.<br> Multiple uses are not practical.<br> For better protection, a preshared key can also be used. }}
The exchange of PublicKeys is explicitly not part of the WireGuard specification and must be performed manually.</p>
A PublicKey must identify a peer unmistakably.<br>
Multiple uses are not practical.<br>
For better protection, a preshared key can also be used. }}
{{var | NAT
| NAT
| NAT }}
{{var | NAT--desc
{{var | NAT--desc
| WireGuard kann einen Keepalive schicken.<br>Dadurch werden Verbindungen auf NAT-Routern offen gehalten. <p>Da die Kommunikation nur über einen UDP-Port läuft ist WireGuard gegenüber NAT-Problematiken entsprechend nicht anfällig. </p>
| WireGuard kann einen Keepalive schicken.<br> Dadurch werden Verbindungen auf NAT-Routern offen gehalten. <p>Da die Kommunikation nur über einen UDP-Port läuft ist WireGuard gegenüber NAT-Problematiken entsprechend nicht anfällig. </p>
| WireGuard can send a keepalive.<br>This keeps connections open on NAT routers. <p>Since the communication only runs via a UDP port, WireGuard is not susceptible to NAT related problems. </p> }}
| WireGuard can send a keepalive.<br> This keeps connections open on NAT routers. <p>Since the communication only runs via a UDP port, WireGuard is not susceptible to NAT related problems. </p> }}
{{var | Dashboard
| Dashboard
| Dashboard }}
{{var | Dashboard--desc
{{var | Dashboard--desc
| Das Dashboard zeigt den Verbindungsstatus der einzelnen Peers einer Verbindung sowie Name, Schlüssel und IP eines Benutzers / einer Benutzerin und die dazu gehörigen Benutzergruppen.
| Das Dashboard zeigt den Verbindungsstatus der einzelnen Peers einer Verbindung sowie Name, Schlüssel, den Wert des öffentlichen Schlüsselteils und die IP-Adresse eines Benutzers / einer Benutzerin und die dazu gehörigen Benutzergruppen.  
| The dashboard shows the connection status of each peer of a connection as well as the name, key and IP of a user and the associated user groups. }}
| The dashboard displays the connection status of each peer in a connection, as well as the name, key, public key value, IP address of a user, and the associated user groups. }}
{{var | Peer deaktivieren
| {{b|Aktiv}}{{ButtonAn|{{#var:ein}} |class=small}}: Peers, die nicht Cloud verwaltet sind, können deaktiviert {{ButtonAus|{{#var:aus}}|class=small }} werden
| {{b|Active}}{{ButtonAn|on |class=small}}: Peers that are not managed by the cloud can be deactivated {{ButtonAus|Off|class=small}}. }}
{{var | Dashboard--Bild
{{var | Dashboard--Bild
| UTM 12.4 VPN WireGuard Verbindung.png
| UTM_v14.0.1_WireGuard_Dashboard.png
| UTM 12.4 VPN WireGuard Verbindung-en.png }}
| UTM_v14.0.1_WireGuard_Dashboard-en.png }}
{{var | Dashboard--cap
{{var | Dashboard--cap
| WireGuard Dashboard
| WireGuard Dashboard
| WireGuard Dashboard }}
| WireGuard Dashboard }}
{{var | Neustarten
| Neustarten
| Restart }}
{{var | Dashboard--Einstellungen
{{var | Dashboard--Einstellungen
| Dashboard Einstellungen
| Dashboard Einstellungen
Zeile 289: Zeile 73:
{{var | 1=Dashboard--Einstellungen--desc
{{var | 1=Dashboard--Einstellungen--desc
| 2=Für eine bessere Übersicht können ggf. einzelne Abschnitte in der Übersicht ausgeblendet werden:
| 2=Für eine bessere Übersicht können ggf. einzelne Abschnitte in der Übersicht ausgeblendet werden:
<li class="list--element__bullet list--element__hint">Peers</li>
<li class="list--element__bullet">Peers</li>
<li class="list--element__bullet list--element__hint">Benutzer</li>
<li class="list--element__bullet">Benutzer</li>
<li class="list--element__bullet">Benutzergruppen</li>
<li class="list--element__bullet">Benutzergruppen</li>
<li class="list--element__bullet">Schlüsselwerte</li>
<li class="list--element__bullet">Stil {{Hinweis-box||gr|14.0.1|status=neu}}</li>
<li class="list--element__bullet">Einträge pro Seite {{Hinweis-box||gr|14.0.1|status=neu}}</li>
<li class="list--element__bullet">Max. Höhe {{Hinweis-box||gr|14.0.1|status=neu}}</li>
| 3=For a better overview, individual sections can be hidden in the overview if necessary:
| 3=For a better overview, individual sections can be hidden in the overview if necessary:
<li class="list--element__bullet list--element__hint">Peers</li>
<li class="list--element__bullet">Peers</li>
<li class="list--element__bullet list--element__hint">User</li>
<li class="list--element__bullet">User</li>
<li class="list--element__bullet">User group</li> }}
<li class="list--element__bullet">User group</li>
<li class="list--element__bullet">Key values</li>
<li class="list--element__bullet">Style {{Hinweis-box||gr|14.0.1|status=neu}}</li>
<li class="list--element__bullet">Entries per page {{Hinweis-box||gr|14.0.1|status=neu}}</li>
<li class="list--element__bullet">Max height {{Hinweis-box||gr|14.0.1|status=neu}}</li> }}
{{var | Dashboard--Einstellungen--Bild
{{var | Dashboard--Einstellungen--Bild
| UTM 12.4 VPN WireGuard Dashboard Einstellungen.png
| UTM v14.0.1 WireGuard Dashboard Einstellungen.png
| UTM 12.4 VPN WireGuard Dashboard Einstellungen-en.png }}
| UTM v14.0.1 WireGuard Dashboard Einstellungen-en.png }}
{{var | Dashboard--Einstellungen--cap
{{var | Dashboard--Einstellungen--cap
| Dashboard Einstellungen
| Dashboard Einstellungen
| Dashboard settings }}
| Dashboard settings }}
{{var | Widget
| Widget
| Widget }}
{{var | Widget--desc
{{var | Widget--desc
| Im Admininterface existiert ein Widget für die Übersicht der WireGuard-Verbindungen. Weitere Informationen sind im [[UTM/Widgets | Wiki-Artikel UTM Widget]] zu finden.
| Im Admininterface existiert ein Widget für die Übersicht der WireGuard-Verbindungen. Weitere Informationen sind im [[UTM/Widgets | Wiki-Artikel zu den UTM Widgets]] zu finden.
| There is a widget in the admin interface for the overview of WireGuard connections. Further information can be found in the [{{#var:host}}UTM/Widgets Wiki article UTM Widget]. }}
| There is a widget in the admin interface for the overview of WireGuard connections. Further information can be found in the [{{#var:host}}UTM/Widgets Wiki article for UTM Widgets]. }}
{{var | WireGuard-S2S-Link
{{var | WireGuard-S2S-Link
| [[UTM/VPN/WireGuard-S2S | WireGuard Site-to-Site]]
| [[UTM/VPN/WireGuard-S2S | WireGuard Site-to-Site]]
Zeile 317: Zeile 106:
| [[UTM/VPN/WireGuard-Peer | Einzelne Peers hinzufügen]]
| [[UTM/VPN/WireGuard-Peer | Einzelne Peers hinzufügen]]
| [{{#var:host}}UTM/VPN/WireGuard-Peer Add individual peers] }}
| [{{#var:host}}UTM/VPN/WireGuard-Peer Add individual peers] }}
{{var | Implizite Regel
| Status der impliziten Regel
| Status of the implicit rule }}
{{var | Implizite Regel--Bild
| UTM_v12.6_VPN_WireGuard_Dashboard_Implizite-Regel.png
| UTM_v12.6_VPN_WireGuard_Dashboard_Implizite-Regel-en.png }}
{{var | Implizite Regel--desc
| Eine Statuslampe zeigt den Zustand der impliziten Regel an:
| A status light indicates the status of the implicit rule: }}
{{var | 1=Implizite Regel Zustand
| 2=<li class="list--element__bullet">{{spc|fa|o|-|class=fas fa-times-circle}} die Dienste und die Verbindungen sind deaktiviert. Über die Schaltfläche {{Button||pl}} kann die implizite Regel aktiviert werden.</li>
<li class="list--element__bullet">{{spc|fa|o|-|class=fas fa-check-circle|icon-c=green}} die Dienste und die Verbindungen sind aktiviert und die Einstellungen sind synchronisiert.Über die Schaltfläche {{Button||class=fas fa-stop}} kann die implizite Regel deaktiviert werden. </li>
| 3=<li class="list--element__bullet">{{spc|fa|o|-|class=fas fa-times-circle}} the services are deactivated. The implicit rule can be activated via the {{Button||pl}} button.</li>
<li class="list--element__bullet">{{spc|fa|o|-|class=fas fa-check-circle|icon-c=green}} the services and connections are activated and the settings are synchronised, and the implicit rule can be deactivated via the {{Button||class=fas fa-stop}} button. </li> }}
{{var |
|
|  }}


----
----
Zeile 322: Zeile 128:
|  
|  
|  }}
|  }}
</div>
</div>

Aktuelle Version vom 2. September 2025, 11:05 Uhr