Přehled
Tento článek představí postup, jak nainstalovat server Wireguard VPN pomocí Docker. Wireguard je další dobrá možnost VPN kromě OpenVPN. Wireguard zatím nemá oficiální obrázek Dockeru, takže budeme používat obrázek Wireguard Docker z linuxserver.io – přesně tento obrázek použitý v tomto příspěvku:Docker Hub (a stránka Github)
Tento postup je také pokryt OpenVPN. Můžete se na to podívat v tomto příspěvku.
Požadavky:
- Docker nainstalován a spuštěn.
Informace o instalaci dockeru naleznete v tomto příspěvku nebo v oficiální dokumentaci.
Pokud provozujete distribuce jako – Ubuntu, Debian, Raspbian, můžete použít oficiální skript rychlé instalace Docker:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Pokud chcete, přidejte uživatele do skupiny dockerů. To je, pokud chcete spouštět příkazy docker bez sudo.
sudo usermod -aG docker <username>
Konfigurace brány firewall
Pokud máte spuštěný firewall (což je vysoce doporučeno), je nutné mít otevřené porty pro Wireguard, jinak nebudete moci navázat spojení se serverem Wireguard.
UFW
sudo ufw allow 51820
IPTABLES
sudo iptables -I INPUT -p tcp -m tcp --dport 51820 -j ACCEPT or sudo iptables -A INPUT -p tcp -m tcp --dport 51820 -j ACCEPT
Nainstalujte a spusťte obraz Docker
Níže je uveden příkaz Docker s nastavenými proměnnými prostředí (toto jsou příklady a jsou také vysvětleny):
docker run -d \ --name wireguard \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ -e PUID=1000 -e PGID=1000 \ -e TZ=Europe/London \ -e SERVERURL=wireguard.yourdomain.com \ -e PEERS=laptop,tablet,phone \ -e PEERDNS=auto \ -p 51820:51820/udp \ -v wireguard_config:/config \ -v /lib/modules:/lib/modules \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --restart=unless-stopped \ linuxserver/wireguard
Vysvětlení proměnných prostředí:
pojmenujte drátového strážce – toto je název, který jsme nastavili pro kontejner drátěnky
cap-add=NET_ADMIN &cap-add=SYS_MODULE – tato proměnná poskytne kontejneru zvýšená oprávnění na hostitelském serveru a umožní mu spravovat jádro hostitele a komunikovat se síťovými rozhraními hostitele (která jsou nezbytná, pokud chceme navázat komunikaci s naší VPN).
e PUID=1000 -e PGID=1000 – proměnná pro specifikaci uživatele a skupiny oprávnění (stejná skupina jako uživatel sudo)
e TZ=Evropa/Londýn – Časové pásmo serveru (nastavte podle toho)
e SERVERURL=vpn.yourdomain.com – Název domény (FQDN) serveru. Doména je volitelná, ale MUSÍ být nastavena alespoň veřejná IP adresa serveru (toto je nutné, aby naše klientské zařízení mohlo server lokalizovat a komunikovat s ním). Konfiguraci můžete také nastavit na auto.
e PEERS=laptop,tablet,phone – proměnná pro konfiguraci připojení klienta k VPN pro klientská zařízení (v podstatě počet klientských zařízení)
e PEERDNS=auto – Proměnná pro konfiguraci překladače domény
p 51820:51820/udp – port, který se má zobrazit na kontejneru a který port na hostitelském serveru použít pro provoz VPN.
v wireguard_config:/config &v /lib/modules:/lib/modules – adresáře svazků k připojení na hostitelský server a k jejich použití k uložení konfigurace a souborů Wireguard
sysctl=”net.ipv4.conf.all.src_valid_mark=1″ – Další důležitá proměnná. Slouží k povolení parametru jádra na úrovni sítě, aby kontejner mohl komunikovat se sítěmi mimo kontejner. To znamená, že kontejner může získat přístup k internetu.
restart=unless-stopped – restartovat kontejner pokaždé, když se zastaví
linuxserver/wireguard – Obrázek dockeru k použití
Verze skladatele
Poznámka – to vyžaduje mít nainstalovaný a spuštěný docker-compose
version: "2.1" services: wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=vpn.domain.com # domain optional, public IP is required at least - SERVERPORT=51820 - PEERS=3 # number of peers - PEERDNS=auto #optional volumes: - /lib/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped
Připojování klientů
Kontrola konfigurace partnera
Jakmile spustíte kontejner Wireguard, Wireguard vytvoří veškerou konfiguraci připojení klienta. Konfiguraci můžete zkontrolovat příkazem:
docker logs wireguard
nebo
docker exec -it wireguard /app/show-peer peer-number
Tento výstup také vytiskne QR kódy pro snadné a rychlé nastavení připojení. To je nejvhodnější pro chytrá zařízení, která mohou skenovat QR kódy prostřednictvím aplikace Wireguard. Pro chytrá zařízení si tedy stačí stáhnout aplikaci Wireguard, naskenovat QR kód a měli byste se okamžitě připojit.
Instalace klienta Wireguard a získání konfigurace peer
Na zařízeních se systémem Linux (PC a notebooky) je nastavení klienta trochu jiné. Instalace a konfigurace klienta se provádí přes terminál. Nejprve nainstalujte Wireguard:
sudo apt install wireguard
Klient Wireguard je dostupný také pro jiné distribuce a také pro Windows. Pokud potřebujete klienta pro jiné klienty, podívejte se na dokumenty.
Dále vytvořte rozhraní Wireguard:
ip link add dev wg0 type wireguard
a znovu zkontrolujte, zda je přítomen pomocí příkazu:ip -a. Pokud s tím narazíte na problémy, dokument wireguard má také jiné metody a řešení problémů.
Mělo by to vypadat nějak takto:
Nechte to zatím tak, jak je, a přejděte na server. Nejprve musíme získat konfiguraci peer přímo ze serveru, zkopírovat konfiguraci a vložit ji do našeho linuxového klientského zařízení.
Výchozí umístění konfigurace partnera je umístěno na adrese:
/var/lib/docker/volumes/wireguard_config/_data/
Můžete jej zkopírovat (v případě potřeby) a zálohovat jej nebo přímo přistupovat ke konfiguraci partnera:
sudo cp /var/lib/docker/volumes/wireguard_config/_data/peer*/*.conf ~
Tím se zkopírují všechny konfigurace protějšku do domovského adresáře a poté se z domovského adresáře vytiskne soubor s cat:
sudo cat peer_laptop.conf or sudo nano peer_laptop.conf
nebo přistupte přímo ke konfiguraci partnera:
sudo cat /var/lib/docker/volumes/wireguard_config/_data/peer_laptop/peer_laptop.conf
Pokud se chyba oprávnění odepřen i s příkazem sudo, znamená to, že ke konfiguraci lze přistupovat pouze jako root. Pokud je to tak, přihlaste se jako root pomocí – sudo su a znovu spusťte některý z předchozích příkazů bez sudo.
Konfigurace klientského rozhraní a navázání spojení
Po zkopírování konfigurace se vraťte do svého linuxového zařízení, vytvořte konfigurační soubor peer (jen pro příklad, který vytvoříme v domovském adresáři):
sudo nano wireguard-vpn.conf
a vložte peer config, uložte a ukončete.
Nakonec spusťte tento příkaz pro automatickou konfiguraci rozhraní Wireguard, pro jeho aktivaci a poté by se mělo automaticky připojit k vašemu serveru:
sudo wg-quick up wireguard-vpn.conf
Můžete to zkontrolovat pomocí – ip a a pomocí příkazu ping na server vpn nebo pomocí služby what’s my ip.
Chcete-li se odpojit, spusťte znovu stejný příkaz, ale s argumentem dolů:
sudo wg-quick down wireguard-vpn.conf
Shrnutí
V tomto příspěvku jsme popsali kroky, jak nainstalovat server Wireguard VPN s Dockerem. Tato metoda je poměrně rychlá na nastavení a je snadno nastavitelná, pokud chcete přidat nebo odebrat klienty. Pokud však dáváte přednost řešení s OpenVPN, na tomto odkazu je stejný postup s OpenVPN
Velice vám děkuji za váš čas…