Advanced VPN Configuration Using Wireguard - application description, testbed creation, implementation of some of the most well-known scenarios for VPN - 1: 1 and N: 1, connection of PKI with VPN
WireGuard je jednoduchý VPN protokol. Byl navržen jako lehká alternativa k tradičním VPN protokolům,
jako jsou IPsec nebo
OpenVPN, a funguje na základě kryptografického protokolu Noise, což mu umožňuje rychlé a bezpečné
šifrování dat.
WireGuard pracuje s veřejnými a soukromými klíči, které umožňují identifikaci a autorizaci mezi
jednotlivými VPN uzly. Konfigurace je velmi jednoduchá což z
něj činí ideální volbu pro rychlé a efektivní propojení zařízení. Hlavní využití WireGuardu je v
oblastech jako zabezpečení vzdáleného přístupu, privátní komunikace mezi servery nebo jako propojení
různých poboček organizací přes internet.
Tento protokol je oblíbený díky nízké latenci a bezpečnostní jednoduchosti – což ho
činí vhodným pro moderní VPN aplikace, kde je kladen důraz na rychlost a robustnost zabezpečení.
Pro oba peery vygenerujeme sadu klíčů a vytvoříme virtuální rozhraní "wg0". Následně oba peery propojíme.
IP adresa : 192.168.56.50/24
Port WG : 51820
Veřejný klíč : /Tb/oUwNi/nGwuc2Ix9XFL4MVDKPA+EP/cTtIw8ogkE=
cd /etc/wireguard/
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.1/24
wg set wg0 private-key ./privatekey
ip link set wg0 up
wg #zobrazení konfigurace (klíče, port, ...)
wg set wg0 peer ji3NzoAScuW+H2fFtMQHhHLNxFir1/Rz/hXLi3EyFzQ= allowed-ips 10.0.0.2/32 endpoint 192.168.56.51:47164
IP adresa : 192.168.56.51/24
Port WG : 47164
Veřejný klíč : ji3NzoAScuW+H2fFtMQHhHLNxFir1/Rz/hXLi3EyFzQ=
cd /etc/wireguard/
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.2/24
wg set wg0 private-key ./privatekey
ip link set wg0 up
wg #zobrazení konfigurace (klíče, port, ...)
wg set wg0 peer /Tb/oUwNi/nGwuc2Ix9XFL4MVDKPA+EP/cTtIw8ogkE= allowed-ips 10.0.0.1/32 endpoint 192.168.56.50:51820
Server i klienti si vygenerují soukromý a veřejný klíč, který klienti odešlou na server.
Na serveru se vytvoří konfigurační soubor se seznamem všech klientů/peerů a povolí IP forwarding.
Na klientských strojích se vytvoří konfigurační soubor kde se přiřadí IP adresa, privátní klíč.
IP adresa : 192.168.56.50/24
Port WG : 51820
Veřejný klíč : GrsqSzHV9lnPRiBv93uPQUXE7vH2mN/TutuxXTt253w=
cd /etc/wireguard/
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
nano wg0.conf #vytvoření konfiguračního souboru serveru
wg-quick up wg0
systemctl enable wg-quick@wg0.service
[Interface]
PrivateKey = ML8e2Oi16ef0BYzY5j8WqMY8fw/C9tAa9iQWD48AxlE=
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = nft add table nat; nft add chain nat postrouting { type nat hook postrouting priority 100 \; };
nft add rule nat postrouting masquerade; nft list ruleset > /etc/nftables.conf;
PostDown = nft flush chain nat postrouting; nft delete table nat; nft list ruleset > /etc/nftables.conf;
# Nastavení klienta 1
[Peer]
PublicKey = 5upnvBKED3NTwlQzXXfOo+x/HJYC5EV48wRFxRMXKFo=
AllowedIPs = 10.0.0.2/32
# Nastavení klienta 2
[Peer]
PublicKey = g/GOPJTGpuBc5FL9UXdmV7KEHUsYrt3fYEPpejfHsDk=
AllowedIPs = 10.0.0.3/32
nano /etc/sysctl.conf
#odkomentujeme následující řádek
net.ipv4.ip_forward=1
sysctl -p
Veřejný klíč : 5upnvBKED3NTwlQzXXfOo+x/HJYC5EV48wRFxRMXKFo=
Privátní klíč : eLpEES5eTLd6VMbb0qRnC4DW3aTc+LSkeGtWqpLaP1Q=
cd /etc/wireguard/
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
nano wg0.conf #vytvoření konfiguračního souboru klienta
wg-quick up wg0
systemctl enable wg-quick@wg0.service
[Interface]
Address = 10.0.0.2/32
PrivateKey = eLpEES5eTLd6VMbb0qRnC4DW3aTc+LSkeGtWqpLaP1Q=
#Nastavení serveru
[Peer]
PublicKey = GrsqSzHV9lnPRiBv93uPQUXE7vH2mN/TutuxXTt253w=
Endpoint = 192.168.56.50:51820
AllowedIPs = 0.0.0.0/0
Veřejný klíč : g/GOPJTGpuBc5FL9UXdmV7KEHUsYrt3fYEPpejfHsDk=
Privátní klíč : yEVHsonWKjFIFOENbPAQJXZht2U4McE80JSzfMzETHU=
- postup viz Klient 1
WireGuard nepoužívá a nepotřebuje certifikační autoritu (CA) kvůli své jednoduché
architektuře, která je založena na asymetrické kryptografii.
Klienti a server mají svůj vlastní pár klíčů a autentizace probíhá přímo, což zjednodušuje konfiguraci i správu.
Díky tomuto přímému modelu není nutné spravovat certifikáty, platnost a důvěryhodnost
prostřednictvím CA.
WireGuard se tím stává snadno nasaditelným řešením pro VPN, které je méně
náchylné na problémy spojené s expirovanými nebo kompromitovanými certifikáty.