GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Nainstalujte server Wireguard VPN pomocí Docker

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…


Docker
  1. Nainstalujte ModSecurity s Apache v kontejneru Docker

  2. Monitorujte MySQL Server pomocí Nagios 3.4

  3. Jak nainstalovat a hostovat server OpenVPN pomocí Dockeru

  1. Jak nainstalovat Jenkins pomocí Docker

  2. Jak nainstalovat Nextcloud s Dockerem na váš Linux Server

  3. Nainstalujte phpMyAdmin na Ubuntu 20.04 s Nginx

  1. Jak nainstalovat SQL Server na MacOS

  2. Jak nainstalovat ONLYOFFICE 8.9.0 s Dockerem na Ubuntu

  3. Monitorování serveru pomocí Shinken na Ubuntu 16.04