[Eisfair] wireguard,?==?utf-8?Q? weiter

Sebastian Ertz sebastian.ertz at tk-ertz.de
Di Mai 14 12:57:38 CEST 2019


Beispiel 1 (Server und ein Client):

eisfair:
START_WIREGUARD='yes'
WIREGUARD_N='1'
WIREGUARD_1_ACTIVE='yes'
WIREGUARD_1_NAME='SEVER'
WIREGUARD_1_IF_NAME='wgnet0'
WIREGUARD_1_PRIVATE_KEY='sCDfYNlLkP11LDnLNV5F7GWFP7xHrOhjgyUTdkg5lVs='
WIREGUARD_1_PUBLIC_KEY='qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA='
WIREGUARD_1_ADDR='10.20.9.1/24'
WIREGUARD_1_PORT='15199'
WIREGUARD_1_DNS=''
WIREGUARD_1_MASQ_IF=''
WIREGUARD_1_PEER_N='1'
WIREGUARD_1_PEER_1_ACTIVE='yes'
WIREGUARD_1_PEER_1_NAME='Client 1'
 WIREGUARD_1_PEER_1_PRIVATE_KEY='YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbb
zk8='
 WIREGUARD_1_PEER_1_PUBLIC_KEY='yg3uEXob7J8r5RuGOiok4+5y7jBtj0eKnCZ5ATgk6
nI='
WIREGUARD_1_PEER_1_PRESHARED_KEY=''
WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32'
WIREGUARD_1_PEER_1_ENDPOINT=''
WIREGUARD_1_PEER_1_KEEPALIVE='0'

Client 1:
[Interface]
PrivateKey=YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbbzk8=
Address=10.20.9.2/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.1/32
PersistentKeepalive=60


Beispiel 1.1 (Server und ein Client mit PRESHARED_KEY):

eisfair:
START_WIREGUARD='yes'
WIREGUARD_N='1'
WIREGUARD_1_ACTIVE='yes'
WIREGUARD_1_NAME='SEVER'
WIREGUARD_1_IF_NAME='wgnet0'
WIREGUARD_1_PRIVATE_KEY='sCDfYNlLkP11LDnLNV5F7GWFP7xHrOhjgyUTdkg5lVs='
WIREGUARD_1_PUBLIC_KEY='qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA='
WIREGUARD_1_ADDR='10.20.9.1/24'
WIREGUARD_1_PORT='15199'
WIREGUARD_1_DNS=''
WIREGUARD_1_MASQ_IF=''
WIREGUARD_1_PEER_N='1'
WIREGUARD_1_PEER_1_ACTIVE='yes'
WIREGUARD_1_PEER_1_NAME='Client 1'
 WIREGUARD_1_PEER_1_PRIVATE_KEY='YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbb
zk8='
 WIREGUARD_1_PEER_1_PUBLIC_KEY='yg3uEXob7J8r5RuGOiok4+5y7jBtj0eKnCZ5ATgk6
nI='
 WIREGUARD_1_PEER_1_PRESHARED_KEY='aFLNF15AbiVDs7pspfDIytjNJqAEEnpFQvM059
DTk3A='
WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32'
WIREGUARD_1_PEER_1_ENDPOINT=''
WIREGUARD_1_PEER_1_KEEPALIVE='0'

Client 1:
[Interface]
PrivateKey=YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbbzk8=
Address=10.20.9.2/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
PresharedKey=aFLNF15AbiVDs7pspfDIytjNJqAEEnpFQvM059DTk3A=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.1/32
PersistentKeepalive=60


Beispiel 2 (Server und zwei Clients, Kommunikation nur zwischen Clients
und Server!!!):

eisfair:
START_WIREGUARD='yes'
WIREGUARD_N='1'
WIREGUARD_1_ACTIVE='yes'
WIREGUARD_1_NAME='SEVER'
WIREGUARD_1_IF_NAME='wgnet0'
WIREGUARD_1_PRIVATE_KEY='sCDfYNlLkP11LDnLNV5F7GWFP7xHrOhjgyUTdkg5lVs='
WIREGUARD_1_PUBLIC_KEY='qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA='
WIREGUARD_1_ADDR='10.20.9.1/24'
WIREGUARD_1_PORT='15199'
WIREGUARD_1_DNS=''
WIREGUARD_1_MASQ_IF=''
WIREGUARD_1_PEER_N='2'
WIREGUARD_1_PEER_1_ACTIVE='yes'
WIREGUARD_1_PEER_1_NAME='Client 1'
 WIREGUARD_1_PEER_1_PRIVATE_KEY='YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbb
zk8='
 WIREGUARD_1_PEER_1_PUBLIC_KEY='yg3uEXob7J8r5RuGOiok4+5y7jBtj0eKnCZ5ATgk6
nI='
WIREGUARD_1_PEER_1_PRESHARED_KEY=''
WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32'
WIREGUARD_1_PEER_1_ENDPOINT=''
WIREGUARD_1_PEER_1_KEEPALIVE='0'
WIREGUARD_1_PEER_2_ACTIVE='yes'
WIREGUARD_1_PEER_2_NAME='Client 2'
 WIREGUARD_1_PEER_2_PRIVATE_KEY='sO9wAbnPKOx2fguhGsUVigIDdKT+IfV3+LeauIdB
+l8='
 WIREGUARD_1_PEER_2_PUBLIC_KEY='fiDNc2LTTJw2hzHuhiM2Jv8kocVq6q1WPZqVqFXHi
kE='
WIREGUARD_1_PEER_2_PRESHARED_KEY=''
WIREGUARD_1_PEER_2_ALLOWEDIPS='10.20.9.3/32'
WIREGUARD_1_PEER_2_ENDPOINT=''
WIREGUARD_1_PEER_2_KEEPALIVE='0'

Client 1:
[Interface]
PrivateKey=YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbbzk8=
Address=10.20.9.2/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.1/32
PersistentKeepalive=60

Client 2:
[Interface]
PrivateKey=sO9wAbnPKOx2fguhGsUVigIDdKT+IfV3+LeauIdB+l8=
Address=10.20.9.3/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.1/32
PersistentKeepalive=60



Beispiel 3 (Server und zwei Clients, Kommunikation zwischen allen):

eisfair:
START_WIREGUARD='yes'
WIREGUARD_N='1'
WIREGUARD_1_ACTIVE='yes'
WIREGUARD_1_NAME='SEVER'
WIREGUARD_1_IF_NAME='wgnet0'
WIREGUARD_1_PRIVATE_KEY='sCDfYNlLkP11LDnLNV5F7GWFP7xHrOhjgyUTdkg5lVs='
WIREGUARD_1_PUBLIC_KEY='qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA='
WIREGUARD_1_ADDR='10.20.9.1/24'
WIREGUARD_1_PORT='15199'
WIREGUARD_1_DNS=''
WIREGUARD_1_MASQ_IF=''
WIREGUARD_1_PEER_N='2'
WIREGUARD_1_PEER_1_ACTIVE='yes'
WIREGUARD_1_PEER_1_NAME='Client 1'
 WIREGUARD_1_PEER_1_PRIVATE_KEY='YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbb
zk8='
 WIREGUARD_1_PEER_1_PUBLIC_KEY='yg3uEXob7J8r5RuGOiok4+5y7jBtj0eKnCZ5ATgk6
nI='
WIREGUARD_1_PEER_1_PRESHARED_KEY=''
WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32'
WIREGUARD_1_PEER_1_ENDPOINT=''
WIREGUARD_1_PEER_1_KEEPALIVE='0'
WIREGUARD_1_PEER_2_ACTIVE='yes'
WIREGUARD_1_PEER_2_NAME='Client 2'
 WIREGUARD_1_PEER_2_PRIVATE_KEY='sO9wAbnPKOx2fguhGsUVigIDdKT+IfV3+LeauIdB
+l8='
 WIREGUARD_1_PEER_2_PUBLIC_KEY='fiDNc2LTTJw2hzHuhiM2Jv8kocVq6q1WPZqVqFXHi
kE='
WIREGUARD_1_PEER_2_PRESHARED_KEY=''
WIREGUARD_1_PEER_2_ALLOWEDIPS='10.20.9.3/32'
WIREGUARD_1_PEER_2_ENDPOINT=''
WIREGUARD_1_PEER_2_KEEPALIVE='0'

Client 1:
[Interface]
PrivateKey=YF6+mh7qkeoNh/fNT/+tU6kavsDFuD9W3LHCfFbbzk8=
Address=10.20.9.2/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.0/24
PersistentKeepalive=60

Client 2:
[Interface]
PrivateKey=sO9wAbnPKOx2fguhGsUVigIDdKT+IfV3+LeauIdB+l8=
Address=10.20.9.3/32
[Peer]
PublicKey=qVZUppkWcmwEAm23P6PGXxVRVpxlAJDuaoyNvucw6jA=
Endpoint=111.111.54.162:15199
AllowedIPs=10.20.9.0/24
PersistentKeepalive=60



Wie du siehst, braucht der Client nur den Public Key vom Server.
Und eigentlich braucht der Server nur den Public Key vom Client.
ALLOWEDIPS sagt nur aus, welche SOURCE IP-Adresse erlaubt ist, bzw.
welche IP-Adresse erreicht werden kann (wegen routing)
Bezug auf Beispiel 3:
- Wenn Client 1 einen ping an 10.20.9.1 sendet, darf er es senden (weil
Client 1 AllowedIPs=10.20.9.0/24) und der eisfair Server nimmt es an
weil die SOURCE-IP Adresse 10.20.9.2 ist
(WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32' ist)
- Wenn der Server einen ping an 10.20.9.2 sendet, sendet er es an Peer
Client 1 (weil WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32') und Client
1 nimmt das Paket an (weil AllowedIPs=10.20.9.0/24)
- Wenn Client 1 einen ping an 10.20.9.3 sendet, darf er es senden (weil
Client 1 AllowedIPs=10.20.9.0/24) und der eisfair Server nimmt es an
weil die SOURCE-IP Adresse 10.20.9.2 ist
(WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.2/32' ist) und sendet es weiter
an Peer Client 2 (weil WIREGUARD_1_PEER_1_ALLOWEDIPS='10.20.9.3/32') und
Client 1 nimmt das Paket an (weil AllowedIPs=10.20.9.0/24) (hierbei ist
SOURCE-IP Adresse immer noch 10.20.9.2

Wenn PRESHARED_KEY benutzt werden sollen, müssen die bei Server_PEER
und Client GLEICH sein!!!

Gruß
Sebastian

PS: In der nächsten Version wird es einen Punkt geben, an dem man aus
der Konfig für jeden Client eine jeweils eigene Konfig erzeugen lassen
kann.


Mehr Informationen über die Mailingliste Eisfair