Instalacja WireGuarda:
Kod: Zaznacz cały
sudo apt install wireguard
Po zainstalowaniu pakietu musimy włączyć przekierowanie IP na serwer WireGuard-a.
Edytujemy plik:
Kod: Zaznacz cały
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1 ...... dla IPv4
lub
net.ipv6.conf.all.forwarding=1 .....dla IPv6
zapisujemy w nano : Ctrl+x ...t ...enter
Następnie ładujemy ponownie konfigurację:
Kod: Zaznacz cały
sudo sysctl -p
Tworzymy klucz na serwerze:
Kod: Zaznacz cały
sudo su
cd /etc/wireguard
umask 077; wg genkey | tee server.key | wg pubkey > server.pub
Kod: Zaznacz cały
sudo su
cd /etc/wireguard
umask 077; wg genkey | tee klient1.key | wg pubkey > klient1.pub
Kod: Zaznacz cały
ls -al
cat /etc/wireguard/klient1.key
wDpA3lxpr1umsfsfLPSoMEhXExpjwzHuTTvtkvZGg2fFA=
cat /etc/wireguard/klient1.pub
GdvfdbvdbhdGjnscncsjdchYbbbxpjwz1BH4c07ZfGg2fFA=
Budowanie interfejsu:
Kolejnym krokiem jest utworzenie po jednym wirtualnym interfejsie sieciowym dla każdego urządzenia. Domyślna wartość to wg0.
Wymagany jest także zakresu adresów IP różny od najczęściej wykorzystywanych w sieciach LAN : 192.168.x.x ...
Wybieramy np. 10.0.10.x
Konfigurację serwera i klientów zapisujemy w :
Kod: Zaznacz cały
/etc/wireguard/wg0.conf
Kod: Zaznacz cały
[Interface]
Address = 10.0.10.1/24,fd42:42:42::1/64
SaveConfig = true
PrivateKey = Klucz server.key
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -j MASQUERADE; iptables -A FORWARD -o wg0 -j ACCEPT
PostUp = ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -j MASQUERADE; ip6tables -A FORWARD -o wg0 -j ACCEPT
PostDown = iptables -F; iptables -t nat -F
PostDown = ip6tables -F; ip6tables -t nat -F
DNS = Adres IP routera WLAN
[Peer]
PublicKey = Klucz klient1.pub
AllowedIPs = 10.0.10.2/32,fd42:42:42::/64
a klient WireGuarda powinien skorzystać z opcji DNS = 10.0.10.1, aby odpytywać komputer z WireGuard-em jako serwer DNS.
Konfiguracja klienta:
Kod: Zaznacz cały
[Interface]
Address = 10.0.10.2/32,fd42:42:42::2/64
PrivateKey = Klucz klient1.key
DNS = 10.0.10.1
[Peer]
PublicKey = Klucz server.pub
Endpoint = adres-DynDNS.com:51820
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 20
Aby sprawdzić ustawienia wykonujemy polecenie:
Kod: Zaznacz cały
sudo wg-quick up wg0
Kod: Zaznacz cały
sudo wg-quick down wg0
Kod: Zaznacz cały
sudo wg
Kod: Zaznacz cały
ping 10.0.10.1
Kod: Zaznacz cały
sudo systemctl enable wg-quick@wg0
Kod: Zaznacz cały
sudo systemctl restart network-manager
Dostęp do zasobów Samby powinniśmy uzyskać wpisując adres serwera Wireguarda :
Kod: Zaznacz cały
smb://10.0.10.1/zasób-samby/
viewtopic.php?f=137&t=183710&p=1027954& ... a#p1027954
Jeśli korzystamy z usługi : Dynamic DNS Client z https://freedns.afraid.org/
jednak nasz router nie ma opcji aktualizacji tego serwisu możemy skorzystać z usługi cron i skryptu ( uruchamianego co 5 min ) na serwerze Wireguard-a :
Tworzymy skrypt o nazwie np. freedns.sh wpisujemy zawartość ad1 ... kopiujemy i nadajemy uprawnienia:
Kod: Zaznacz cały
sudo nano /etc/root/freedns.sh
chmod +x /etc/root/freedns.sh
Kod: Zaznacz cały
#!/bin/sh
#FreeDNS updater script
UPDATEURL="http://freedns.afraid.org/dynamic/update.php?<tu_wpisujemy_token_z_afraid.org>"
DOMAIN="_YOURDOMAINHERE_"
registered=$(nslookup $DOMAIN|tail -n2|grep A|sed s/[^0-9.]//g)
current=$(wget -q -O - http://checkip.dyndns.org|sed s/[^0-9.]//g)
[ "$current" != "$registered" ] && {
wget -q -O /dev/null $UPDATEURL
echo "DNS updated on:"; date
}
Wpis do usługi cron wykonywany co 5 minut:
Kod: Zaznacz cały
crontab -e
Kod: Zaznacz cały
2,7,12,17,22,27,32,37,42,47,52,57 * * * * sleep 15 ; /root/freedns.sh > /dev/null