Kā zināms, WireGuard — tas ir VPN, kas ļauj mums izveidot drošu tuneli gan privātajai tīklam, gan pārlūkošanai. Tas nodrošina mums drošu un uzticamu piekļuvi internetam no viedtālruņa vai personālā datora.
Kā to instalēt uz tīra servera, varat iepazīties šajā rakstā.
Šajā rokasgrāmatā mēs apskatīsim, kā instalēt WireGuard Docker konteinerā, izmantojot Docker Compose.
Bet vispirms ir jāatjaunina operētājsistēmas pakotnes.
apt update
Uzstādīsim nepieciešamās pakotnes un pievienosim jaunu repozitoriju:
apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Atjaunināsim pakotnes ar jauno repozitoriju:
apt update
Tagad uzstādīsim pašu Docker.
apt-get install docker-ce docker-ce-cli containerd.io
Pārbaudīsim versiju:
docker --version
Pārbaudīsim statusu:
systemctl status docker
Ja tas nav uzsācies, tad uzsākam:
systemctl start docker
Un pievienojam automātiskajai palaišanai.
systemctl enable docker
Šim projektam mums pietiks ar versiju 1.25.
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Uzstādām izpildes tiesības.
chmod +x /usr/local/bin/docker-compose
Pārbaudām, kā uzstādījās Docker-Compose:
docker-compose --version
Pievienojam Linux lietotāju grupai docker:
usermod -aG docker $USER
Izveidosim failu *.yaml Docker-Compose.
Lai nākotnē orientētos, kas mums ir uzstādīts, izveidosim atsevišķu mapi šim projektam katalogā /opt un pāriesim uz to.
mkdir /opt/wireguard-server && cd /opt/wireguard-server
Jūs varat izmantot arī savu mājas direktoriju /home šī un citu projektu izvietošanai.
Izmantosim linuxserver repozitoriju, lai izveidotu failu docker-compose.yaml pēc saites https://hub.docker.com/r/linuxserver/wireguard
Izveidojam failu docker-compose.yaml vai docker-compose.yml,
vim docker-compose.yaml
Un pievienojam tam sekojošo kodu:
version: "2.1"
services:
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=0
- PGID=0
- TZ=Europe/Amsterdam
- SERVERURL=auto
- SERVERPORT=51820
- PEERS=1
- PEERDNS=1.1.1.1
- INTERNAL_SUBNET=10.10.10.0
- ALLOWEDIPS=0.0.0.0/0
- LOG_CONFS=true
volumes:
- /opt/wireguard-server/config:/config
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: always
Kur:
container_name: jūsu konteineru nosaukums;
TZ=: laika zona, varat mainīt uz nepieciešamo, bet anonimitātei labāk atstāt Europe/Amsterdam;
SERVERPORT=: nejaušs ports, uz kura darbosies jūsu VPN. To arī būs jānorāda ports.
PEERS=: lietotāju skaits. To varēs palielināt līdz nepieciešamajam skaitam;
51820:51820/udp - pārsūtītie porti.
Uzsākam mūsu skriptu (tam jāatrodas direktorijā, kur izveidots mūsu fails. Šajā gadījumā tas ir /opt/wireguard-server/):
docker-compose up -d
Gaidām attēlu lejupielādi un izvietošanu.
Pārbaudām:
docker-compose ps
vai
docker ps
To var izdarīt arī ar vienu komandu docker:
docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=0 \\ -e PGID=0 \\ -e TZ=Europe/Amsterdam \\ -e SERVERURL=auto \\ -e SERVERPORT=51820 \\ -e PEERS=1 \\ -e PEERDNS=1.1.1.1 \\ -e INTERNAL_SUBNET=10.10.10.0 \\ -e ALLOWEDIPS=0.0.0.0/0 \\ -e LOG_CONFS=true \\ -p 51820:51820/udp \\ -v /opt/wireguard-server/config:/config \\ -v /lib/modules:/lib/modules \\ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \\ --restart always \\ lscr.io/linuxserver/wireguard:latest
Lai ģenerētu QR kodu viedtālrunim:
docker exec -it wireguard /app/show-peer 1
Kur:
1 - tas ir pirmais konfigurācija/lietotājs.
Rezultāts:
Visi konfigurācijas faili un QR kodi atrodas /opt/wireguard-server/config/peer*
Tam vienkārši jāmaina direktīva PEERS failā docker-compose.yaml, pievienojot nepieciešamo lietotāju skaitu.
Lai izmaiņas stātos spēkā, pārvietojam mūsu konteineru:
docker-compose up -d --force-recreate
Tāpat anonimitātei, izslēdzam ping uz hosta servera:
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
Un piemērojam izmaiņas:
sysctl -p
Patīkamu pārlūkošanu.