ubuntuusers.de

reresolve-dns script

Status: Ungelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

dippes

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Hallo

ich wollte das von Wireguard mitgelieferte script in Betrieb nehmen.Leider funktioniert der gewünschte Effekt das auflösen des Hostnamen nicht.Ich finde auch keine Dokumentation wie man das script benutzt bzw konfiguriert.

Muss hier in der reset_peer_section was eingetragen werden? oder sollte sich das script das von der /etc/wireguard/*conf holen?

Kann man das script aufrufen das man sehen kann ob es funktioniert?

}

reset_peer_section() {
    PEER_SECTION=0
    PUBLIC_KEY=""
    ENDPOINT=""
}

Gestartet wird das script mit einem systemctl.timer was offentsichtich auch funktioniert.

Feb 16 13:51:03 hp-server systemd[1]: Starting wg-reresolve-dns@...
Feb 16 13:51:03 hp-server systemd[1]: wg-reresolve-dns@wg0.service: Succeeded.
Feb 16 13:51:03 hp-server systemd[1]: Finished wg-reresolve-dns@.
Feb 16 13:51:36 hp-server systemd[1]: Starting wg-reresolve-dns@...
Feb 16 13:51:36 hp-server systemd[1]: wg-reresolve-dns@wg0.service: Succeeded.
Feb 16 13:51:36 hp-server systemd[1]: Finished wg-reresolve-dns@.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (C) 2015-2020 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.

set -e
shopt -s nocasematch
shopt -s extglob
export LC_ALL=C

CONFIG_FILE="$1"
[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]]
INTERFACE="${BASH_REMATCH[1]}"

process_peer() {
    [[ $PEER_SECTION -ne 1 || -z $PUBLIC_KEY || -z $ENDPOINT ]] && return 0
    [[ $(wg show "$INTERFACE" latest-handshakes) =~ ${PUBLIC_KEY//+/\\+}\    ([0-9]+) ]] || return 0
    (( ($EPOCHSECONDS - ${BASH_REMATCH[1]}) > 135 )) || return 0
    wg set "$INTERFACE" peer "$PUBLIC_KEY" endpoint "$ENDPOINT"
    reset_peer_section
}

reset_peer_section() {
    PEER_SECTION=0
    PUBLIC_KEY=""
    ENDPOINT=""
}

reset_peer_section
while read -r line || [[ -n $line ]]; do
    stripped="${line%%\#*}"
    key="${stripped%%=*}"; key="${key##*([[:space:]])}"; key="${key%%*([[:space:]])}"
    value="${stripped#*=}"; value="${value##*([[:space:]])}"; value="${value%%*([[:space:]])}"
    [[ $key == "["* ]] && { process_peer; reset_peer_section; }
    [[ $key == "[Peer]" ]] && PEER_SECTION=1
    if [[ $PEER_SECTION -eq 1 ]]; then
        case "$key" in
        PublicKey) PUBLIC_KEY="$value"; continue ;;
        Endpoint) ENDPOINT="$value"; continue ;;
        esac
    fi
done < "$CONFIG_FILE"
process_peer

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9627

Wohnort: Münster

dippes schrieb:

[…] das von Wireguard mitgelieferte script

Welches Skript genau? Aus welchem Paket?

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

wird mit wireguard-tools installiert und liegt in /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh/

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Muss hier in der reset_peer_section was eingetragen werden? oder sollte sich das script das von der /etc/wireguard/*conf holen?

Nein, es muss nichts eingetragen werden. Wie sind die Ausgaben von:

systemctl status wg-reresolve-dns@wg0.service
systemctl cat wg-reresolve-dns@wg0.service
systemctl status wg-reresolve-dns@wg0.timer
systemctl cat wg-reresolve-dns@wg0.timer
systemctl list-timers --all
ls -la /etc/wireguard

?

dippes schrieb:

Kann man das script aufrufen das man sehen kann ob es funktioniert?

Ja. Z. B.:

sudo bash -x <Pfad>/<zum>/<Script-Name> <wg-Interface>

EDIT:

BTW: $EPOCHSECONDS geht nur mit der bash-Version >/= 5.0.

Testen geht mit:

date -d @$EPOCHSECONDS

Wenn Du eine bash < 5.0 hast dann benutze im Script die Zeile:

(( ($(date +%s) - ${BASH_REMATCH[1]}) > 135 )) || return 0

statt der dort jetzigen Zeile 19:

(( ($EPOCHSECONDS - ${BASH_REMATCH[1]}) > 135 )) || return 0

EDIT 2:

Du kannst auch die timer-unit ignorieren und zusätzlich einen cronjob eintragen (systemweite crontab oder root-crontab):

*/5 * * * * root /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh wg0

(wg0 evtl. anpassen bzw. muss der config entsprechen). Das bash-Script soll ausführbar sein (sudo chmod 755).

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Habe das script Händisch ausgeführt.

Kannst du hier was erkennen?

vor der Trennung

root@hp-server:/usr/share/doc/wireguard-tools/examples/reresolve-dns# bash -x  reresolve-dns.sh VPN
+ set -e
+ shopt -s nocasematch
+ shopt -s extglob
+ export LC_ALL=C
+ LC_ALL=C
+ CONFIG_FILE=VPN
+ [[ VPN =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]]
+ CONFIG_FILE=/etc/wireguard/VPN.conf
+ [[ /etc/wireguard/VPN.conf =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]]
+ INTERFACE=VPN
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ read -r line
+ stripped='[Interface]'
+ key='[Interface]'
+ key='[Interface]'
+ key='[Interface]'
+ value='[Interface]'
+ value='[Interface]'
+ value='[Interface]'
+ [[ [Interface] == \[* ]]
+ process_peer
+ [[ 0 -ne 1 ]]
+ return 0
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ [[ [Interface] == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='Address = 192.168.206.1/24'
+ key='Address '
+ key='Address '
+ key=Address
+ value=' 192.168.206.1/24'
+ value=192.168.206.1/24
+ value=192.168.206.1/24
+ [[ Address == \[* ]]
+ [[ Address == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='SaveConfig = true'
+ key='SaveConfig '
+ key='SaveConfig '
+ key=SaveConfig
+ value=' true'
+ value=true
+ value=true
+ [[ SaveConfig == \[* ]]
+ [[ SaveConfig == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PostUp = iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ key='PostUp '
+ key='PostUp '
+ key=PostUp
+ value=' iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ value='iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ value='iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ [[ PostUp == \[* ]]
+ [[ PostUp == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PostDown = iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ key='PostDown '
+ key='PostDown '
+ key=PostDown
+ value=' iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ value='iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ value='iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ [[ PostDown == \[* ]]
+ [[ PostDown == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='ListenPort = 51820'
+ key='ListenPort '
+ key='ListenPort '
+ key=ListenPort
+ value=' 51820'
+ value=51820
+ value=51820
+ [[ ListenPort == \[* ]]
+ [[ ListenPort == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PrivateKey = CE3yg06Aa99guxFAVerndbG6nXoTUserIGe+XEzNLlU='
+ key='PrivateKey '
+ key='PrivateKey '
+ key=PrivateKey
+ value=' xxxxxxxx='
+ value=xxxxxxxxxx=
+ value=xxxxxxxxxx=
+ [[ PrivateKey == \[* ]]
+ [[ PrivateKey == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped=
+ key=
+ key=
+ key=
+ value=
+ value=
+ value=
+ [[ '' == \[* ]]
+ [[ '' == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='[Peer]'
+ key='[Peer]'
+ key='[Peer]'
+ key='[Peer]'
+ value='[Peer]'
+ value='[Peer]'
+ value='[Peer]'
+ [[ [Peer] == \[* ]]
+ process_peer
+ [[ 0 -ne 1 ]]
+ return 0
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ [[ [Peer] == \[\P\e\e\r\] ]]
+ PEER_SECTION=1
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ read -r line
+ stripped='PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+ key='PublicKey '
+ key='PublicKey '
+ key=PublicKey
+ value=' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ [[ PublicKey == \[* ]]
+ [[ PublicKey == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ PUBLIC_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+ continue
+ read -r line
+ stripped='AllowedIPs = 192.168.206.2/32'
+ key='AllowedIPs '
+ key='AllowedIPs '
+ key=AllowedIPs
+ value=' 192.168.206.2/32'
+ value=192.168.206.2/32
+ value=192.168.206.2/32
+ [[ AllowedIPs == \[* ]]
+ [[ AllowedIPs == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ read -r line
+ stripped='Endpoint = 46.114.149.51:9223'
+ key='Endpoint '
+ key='Endpoint '
+ key=Endpoint
+ value=' 46.114.149.51:9223'
+ value=46.114.149.51:9223
+ value=46.114.149.51:9223
+ [[ Endpoint == \[* ]]
+ [[ Endpoint == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ ENDPOINT=46.114.149.51:9223
+ continue
+ read -r line
+ [[ -n '' ]]
+ process_peer
+ [[ 1 -ne 1 ]]
+ [[ -z 5ByOt8eSvVf0j06NTmdvs2HJuikPQOuH0K4UOLoVWkM= ]]
+ [[ -z 46.114.149.51:9223 ]]
++ wg show VPN latest-handshakes
+ [[ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=       1645090529 =~ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=      ([0-9]+) ]]
++ date +%s
+ ((  (1645090580 - 1645090529) > 135  ))
+ return 0
root@hp-server:/usr/share/doc/wireguard-tools/examples/reresolve-dns#

Mit neuer IP

root@hp-server:/usr/share/doc/wireguard-tools/examples/reresolve-dns# bash -x  reresolve-dns.sh VPN
+ set -e
+ shopt -s nocasematch
+ shopt -s extglob
+ export LC_ALL=C
+ LC_ALL=C
+ CONFIG_FILE=VPN
+ [[ VPN =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]]
+ CONFIG_FILE=/etc/wireguard/VPN.conf
+ [[ /etc/wireguard/VPN.conf =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]]
+ INTERFACE=VPN
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ read -r line
+ stripped='[Interface]'
+ key='[Interface]'
+ key='[Interface]'
+ key='[Interface]'
+ value='[Interface]'
+ value='[Interface]'
+ value='[Interface]'
+ [[ [Interface] == \[* ]]
+ process_peer
+ [[ 0 -ne 1 ]]
+ return 0
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ [[ [Interface] == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='Address = 192.168.206.1/24'
+ key='Address '
+ key='Address '
+ key=Address
+ value=' 192.168.206.1/24'
+ value=192.168.206.1/24
+ value=192.168.206.1/24
+ [[ Address == \[* ]]
+ [[ Address == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='SaveConfig = true'
+ key='SaveConfig '
+ key='SaveConfig '
+ key=SaveConfig
+ value=' true'
+ value=true
+ value=true
+ [[ SaveConfig == \[* ]]
+ [[ SaveConfig == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PostUp = iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ key='PostUp '
+ key='PostUp '
+ key=PostUp
+ value=' iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ value='iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ value='iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT'
+ [[ PostUp == \[* ]]
+ [[ PostUp == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PostDown = iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ key='PostDown '
+ key='PostDown '
+ key=PostDown
+ value=' iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ value='iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ value='iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT'
+ [[ PostDown == \[* ]]
+ [[ PostDown == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='ListenPort = 51820'
+ key='ListenPort '
+ key='ListenPort '
+ key=ListenPort
+ value=' 51820'
+ value=51820
+ value=51820
+ [[ ListenPort == \[* ]]
+ [[ ListenPort == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxx='
+ key='PrivateKey '
+ key='PrivateKey '
+ key=PrivateKey
+ value=' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx='
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+ [[ PrivateKey == \[* ]]
+ [[ PrivateKey == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped=
+ key=
+ key=
+ key=
+ value=
+ value=
+ value=
+ [[ '' == \[* ]]
+ [[ '' == \[\P\e\e\r\] ]]
+ [[ 0 -eq 1 ]]
+ read -r line
+ stripped='[Peer]'
+ key='[Peer]'
+ key='[Peer]'
+ key='[Peer]'
+ value='[Peer]'
+ value='[Peer]'
+ value='[Peer]'
+ [[ [Peer] == \[* ]]
+ process_peer
+ [[ 0 -ne 1 ]]
+ return 0
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=
+ [[ [Peer] == \[\P\e\e\r\] ]]
+ PEER_SECTION=1
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ read -r line
+ stripped='PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx='
+ key='PublicKey '
+ key='PublicKey '
+ key=PublicKey
+ value=' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx='
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+ value=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+ [[ PublicKey == \[* ]]
+ [[ PublicKey == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ PUBLIC_KEY=vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv=
+ continue
+ read -r line
+ stripped='AllowedIPs = 192.168.206.2/32'
+ key='AllowedIPs '
+ key='AllowedIPs '
+ key=AllowedIPs
+ value=' 192.168.206.2/32'
+ value=192.168.206.2/32
+ value=192.168.206.2/32
+ [[ AllowedIPs == \[* ]]
+ [[ AllowedIPs == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ read -r line
+ stripped='Endpoint = 46.114.149.51:9223'
+ key='Endpoint '
+ key='Endpoint '
+ key=Endpoint
+ value=' 46.114.149.51:9223'
+ value=46.114.149.51:9223
+ value=46.114.149.51:9223
+ [[ Endpoint == \[* ]]
+ [[ Endpoint == \[\P\e\e\r\] ]]
+ [[ 1 -eq 1 ]]
+ case "$key" in
+ ENDPOINT=46.114.149.51:9223
+ continue
+ read -r line
+ [[ -n '' ]]
+ process_peer
+ [[ 1 -ne 1 ]]
+ [[ -z xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= ]]
+ [[ -z 46.114.149.51:9223 ]]
++ wg show VPN latest-handshakes
+ [[ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=       1645090766 =~ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=      ([0-9]+) ]]
++ date +%s
+ ((  (1645090940 - 1645090766) > 135  ))
+ wg set VPN peer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= endpoint 46.114.149.51:9223
+ reset_peer_section
+ PEER_SECTION=0
+ PUBLIC_KEY=
+ ENDPOINT=

root@hp-server:/usr/share/doc/wireguard-tools/examples/reresolve-dns#

ls -la /etc/wireguard

drwx------   2 root root  4096 Feb 16 16:39 .
drwxr-xr-x 150 root root 12288 Feb 16 06:21 ..
-rw-------   1 root root    45 Feb 14 15:24 client.psk
-rw-------   1 root root    45 Feb 11 14:18 privatekey
-rw-r--r--   1 root root    45 Feb 11 14:18 pubkey
-rw-------   1 root root   723 Feb 16 16:40 VPN.conf

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Kannst du hier was erkennen?

root@hp-server:/usr/share/doc/wireguard-tools/examples/reresolve-dns# bash -x  reresolve-dns.sh VPN

ls -la /etc/wireguard

-rw-------   1 root root   723 Feb 16 16:40 VPN.conf

Wie ist die Ausgabe von:

ip a

? Das Interface wird doch nicht "VPN" sein, oder? Du musst die config so bezeichnen wie das Interface. Z. B. wg0.conf (wenn das Interface wg0 ist) und nicht VPN.conf.

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Doch passt schon.Habe es VPN genannt was es auch ist.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
root@hp-server:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul                                                                                                                                                             t qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group defa                                                                                                                                                             ult qlen 1000
    link/ether a0:1d:48:c7:cb:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.48/24 brd 192.168.1.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::a21d:48ff:fec7:cb8c/64 scope link
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen                                                                                                                                                              1000
    link/ether a0:1d:48:c7:cb:8d brd ff:ff:ff:ff:ff:ff
5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP gr                                                                                                                                                             oup default
    link/ether 02:42:ce:3c:68:8b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:ceff:fe3c:688b/64 scope link
       valid_lft forever preferred_lft forever
7: veth18df210@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mas                                                                                                                                                             ter docker0 state UP group default
    link/ether 66:c6:34:b4:a0:65 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::64c6:34ff:feb4:a065/64 scope link
       valid_lft forever preferred_lft forever
13: VPN: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN gr                                                                                                                                                             oup default qlen 1000
    link/none
    inet 192.168.206.1/24 scope global VPN
       valid_lft forever preferred_lft forever

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Doch passt schon.Habe es VPN genannt was es auch ist.

OK.

Die IP-Adresse des Endpoints (WG-Server?) ist aber gleich geblieben: Vor und nach dem Trennen 46.114.149.51

Oder geht es dir um die externe/öffentliche IPv4-Adresse beim Wireguard-Client?

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Es geht darum wenn die ip wechselt vom Provider her oder von einem Routerneustart das wireguard mitbekommt.

Ich benutze eine dyndns Adresse.wenn der DNS Eintrag sich ändert soll das script dafür sorgen das der neue Eintrag übergeben wird.

1
2
3
4
5
6
7
8
9
reresolve-dns
=============

Run this script from cron every thirty seconds or so, and it will ensure
that if, when using a dynamic DNS service, the DNS entry for a hosts
changes, the kernel will get the update to the DNS entry.

This works by parsing configuration files, and simply running:
    $ wg set wg0 peer ... endpoint ...

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Es geht darum wenn die ip wechselt vom Provider her oder von einem Routerneustart das wireguard mitbekommt.

Ich benutze eine dyndns Adresse.wenn der DNS Eintrag sich ändert soll das script dafür sorgen das der neue Eintrag übergeben wird.

Ich weiß schon um was es geht, denn ich benutze dieses Script auch.

Die Frage oder der Hinweis war, was sich bei dir geändert hat? ... denn die IP-Adresse ist gleich geblieben: 46.114.149.51

Beschreibe mal deine Konstellation ganz genau bzw. wo sich was ändert.

EDIT:

BTW: Starte mal auf WG-Server und auf WG-Client (oder auf den WG-peers), als root den debug-Modus mit:

echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control

und schau dir (mit dmesg oder im syslog) bei einer Änderung der externen/öffentlichen IP-Adresse(n), die handshakes bzw. das zerstören und neu erstellen der Keypairs an.

Stoppen kannst den debug-Modus als root, mit:

echo module wireguard -p > /sys/kernel/debug/dynamic_debug/control

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Diese Fehlermeldung habe ich gefunden.

 reresolve-dns.sh[1971974]: /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh: line 43: /etc/wireguard/wg0.conf: No such file or directory

Aber wg0 gibt es ja nicht mehr.lt Script wird ja eine .conf Datei gesucht und die nennt sich VPN.conf.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Diese Fehlermeldung habe ich gefunden.

 reresolve-dns.sh[1971974]: /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh: line 43: /etc/wireguard/wg0.conf: No such file or directory

Wo bzw. wie hast Du diese Fehlermeldung gefunden bzw. bekommen?

EDIT:

Wie ist die richtig anonymisierte Ausgabe von:

sudo cat /etc/wireguard/VPN.conf

?

EDIT 2:

Trennen heißt bei dir ja nicht zwingend, dass der Router (als "border device") eine neue externe IPv4-Adresse bekommen hat, oder?

... und ein "wg set wg0 peer ... endpoint ..." (auf dem einen wg-peer) wird _richtigerweise_ auch dann ausgeführt, wenn der erkannte bzw. festgestellte Zeitabstand zwischen den letzten handshakes > 135 Sekunden ist.

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Die Fehlermeldung hat sich erledigt.Neustart hat geholfen.

Jetzt nach einem ip wechsel kommmen zuhauf diese Fehlermeldungen

Das script bewirkt nichts. Immer noch die alte ip.

Was kann ich noch tun?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Feb 17 14:47:13 hp-server kernel: [ 1945.112702] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 5 seconds, retrying (try 16)
Feb 17 14:47:13 hp-server kernel: [ 1945.112724] wireguard: VPN: Sending handshake initiation to peer 1 (46.114.149.51:9223)
Feb 17 14:47:18 hp-server kernel: [ 1950.488699] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 5 seconds, retrying (try 17)
Feb 17 14:47:18 hp-server kernel: [ 1950.488722] wireguard: VPN: Sending handshake initiation to peer 1 (46.114.149.51:9223)
Feb 17 14:47:23 hp-server kernel: [ 1955.864692] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 5 seconds, retrying (try 18)
Feb 17 14:47:23 hp-server kernel: [ 1955.864718] wireguard: VPN: Sending handshake initiation to peer 1 (46.114.149.51:9223)
Feb 17 14:47:28 hp-server kernel: [ 1960.984684] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 5 seconds, retrying (try 19)
Feb 17 14:47:28 hp-server kernel: [ 1960.984730] wireguard: VPN: Sending handshake initiation to peer 1 (46.114.149.51:9223)
Feb 17 14:47:33 hp-server kernel: [ 1966.104679] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 5 seconds, retrying (try 20)
Feb 17 14:47:33 hp-server kernel: [ 1966.104746] wireguard: VPN: Sending handshake initiation to peer 1 (46.114.149.51:9223)
Feb 17 14:47:39 hp-server kernel: [ 1971.224678] wireguard: VPN: Handshake for peer 1 (46.114.149.51:9223) did not complete after 20 attempts, giving up

erst wenn ich mich bei meinem Smartphone client wireguar aus -einschalte zeigt der Server eine neue ip und der VPN Tunnel steht.

Feb 17 14:54:00 hp-server kernel: [ 2352.571638] wireguard: VPN: Packet has unallowed src IP (192.168.1.160) from peer 1 (93.236.4.64:42307)
Feb 17 14:54:05 hp-server kernel: [ 2357.939725] net_ratelimit: 20 callbacks suppressed
Feb 17 14:54:05 hp-server kernel: [ 2357.939730] wireguard: VPN: Packet has unallowed src IP (192.168.1.160) from peer 1 (9x.xxx.4.64:33927)
Feb 17 14:54:05 hp-server kernel: [ 2357.939739] wireguard: VPN: Packet has unallowed src IP (192.168.1.160) from peer 1 (9x.xxx.4.64:33927)
Feb 17 14:54:07 hp-server kernel: [ 2359.931498] wireguard: VPN: Packet has unallowed src IP (192.168.1.160) from peer 1 (9x.xxx.4.64:33927)

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

dippes schrieb:

Die Fehlermeldung hat sich erledigt.Neustart hat geholfen.

Jetzt nach einem ip wechsel kommmen zuhauf diese Fehlermeldungen

Das script bewirkt nichts. Immer noch die alte ip.

Was kann ich noch tun?

Du solltest die Fragen die man dir stellt beantworten und das tun, was man dir sagt. Denn nur so wirst Du verstehen um was es bei dir geht bzw. wie das Script seine Wirkung (in welchem Zeitraum) entfalten kann.

Führe das Script mal manuell aus und schau nach, ob dann die Fehlermeldungen weg sind.

EDIT:

BTW: Nach einer Trennung bzw. nach einem IP-Adresse-Wechsel, ist der "neue" handshake, schneller wieder erfolgreich, wenn Du (auch) auf WG-Client-Seite einen festen Port (... den der WG-Server dann logischerweise aus vorherigen erfolgreichen handshakes schon immer kennt) benutzt.

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

trennen heißt bei dir ja nicht zwingend, dass der Router (als "border device") eine neue externe IPv4-Adresse bekommen hat, oder?

Doch,bekomme immer bei einer Trennung eine neue IP.

Wie ist die richtig anonymisierte Ausgabe von:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[Interface]
Address = 192.168.206.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i VPN -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT
PostDown = iptables -D FORWARD -i VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i VPN -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT
ListenPort = 51820
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 192.168.206.2/32
Endpoint = 46.114.149.51:9223

Direkt nach der Trennung

Feb 17 17:05:56 hp-server kernel: [10268.162052] wireguard: VPN: Receiving handshake response from peer 1 (93.236.4.64:45927)
Feb 17 17:05:56 hp-server kernel: [10268.162060] wireguard: VPN: Keypair 86 destroyed for peer 1
Feb 17 17:05:56 hp-server kernel: [10268.162062] wireguard: VPN: Keypair 88 created for peer 1

nach dem der Router neue IP bekommen hat habe das script gestartet 10 Minuten später immer noch keine Verbindung zum client.

Feb 17 17:15:06 hp-server kernel: [10818.599593] wireguard: VPN: Zeroing out all keys for peer 1 (93.236.4.64:45927), since we haven't re                                         ceived a new one in 540 seconds
Feb 17 17:15:06 hp-server kernel: [10818.599598] wireguard: VPN: Keypair 87 destroyed for peer 1
Feb 17 17:15:06 hp-server kernel: [10818.599600] wireguard: VPN: Keypair 88 destroyed for peer 1
Antworten |