Kaip žinoma, WireGuard — tai VPN, kuris leidžia mums sukurti saugų tunelį tiek asmeninei tinklui, tiek naršymui. Tai suteikia mums saugų ir patikimą prieigą prie interneto iš išmaniojo telefono ar asmeninio kompiuterio.
Kaip jį įdiegti švariame serveryje, galite susipažinti su šiuo straipsniu.
Šiame vadove mes aptarsime, kaip įdiegti WireGuard Docker konteineryje, naudojant Docker Compose.
Bet pirmiausia reikia atnaujinti OS paketus.
apt update
Įdiegsime reikalingus paketus ir pridėsime naują saugyklą:
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"
Atnaujinsime paketus su nauja saugykla:
apt update
Dabar įdiegsime patį Docker.
apt-get install docker-ce docker-ce-cli containerd.io
Patikrinsime versiją:
docker --version
Patikrinsime būseną:
systemctl status docker
Jei jis neįsijungė, tai įjungiame:
systemctl start docker
Ir pridėsime prie automatinio paleidimo.
systemctl enable docker
Šiam projektui mums pakaks 1.25 versijos.
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Nustatome vykdymo teises.
chmod +x /usr/local/bin/docker-compose
Patikriname, kaip įdiegėme Docker-Compose:
docker-compose --version
Pridėsime Linux vartotoją prie docker grupės:
usermod -aG docker $USER
Sukursime failą *.yaml Docker-Compose.
Kad ateityje galėtume orientuotis, kas mums įdiegtas, sukursime atskirą aplanką šiam projektui kataloge /opt ir pereisime į jį.
mkdir /opt/wireguard-server && cd /opt/wireguard-server
Taip pat galite naudoti savo namų katalogą /home šiam ir kitiems projektams.
Pasinaudosime linuxserver saugykla, kad sukurtume docker-compose.yaml failą pagal nuorodą https://hub.docker.com/r/linuxserver/wireguard
Sukuriame failą docker-compose.yaml arba docker-compose.yml,
vim docker-compose.yaml
Ir pridėsime į jį šį kodą:
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ūsų konteinerio pavadinimas;
TZ=: laiko zona, galite pakeisti į reikiamą, bet anonimiškumui geriau palikti Europe/Amsterdam;
SERVERPORT=: atsitiktinis portas, kuriuo veiks jūsų VPN. Jį taip pat reikia nurodyti ports.
PEERS=: vartotojų skaičius. Jų galima didinti iki reikiamo skaičiaus;
51820:51820/udp - praleidžiami portai.
Paleidžiame mūsų skriptą (tam reikia būti kataloge, kur sukurtas mūsų failas. Šiuo atveju tai /opt/wireguard-server/):
docker-compose up -d
Laukiame, kol bus atsisiųsti vaizdai ir išplėsti.
Patikriname:
docker-compose ps
arba
docker ps
Taip pat tai galima padaryti viena komanda 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
Kad sugeneruoti QR kodą išmaniajame telefone:
docker exec -it wireguard /app/show-peer 1
Kur:
1 - tai pirmas konfigūracija/vartotojas.
Rezultatas:
Visi konfigūracijos failai ir QR kodai yra saugomi /opt/wireguard-server/config/peer*
Tam tereikia pakeisti direktyvą PEERS faile docker-compose.yaml, pridėti reikiamą vartotojų skaičių.
Kad pakeitimai įsigaliotų, perkuriame mūsų konteinerį:
docker-compose up -d --force-recreate
Taip pat anonimiškumui, išjungiam ping ant hosto serverio:
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
Ir taikome pakeitimus:
sysctl -p
Malonaus naršymo.