GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Instal server Wireguard VPN dengan Docker

Ringkasan

Artikel ini akan menampilkan prosedur cara menginstal server Wireguard VPN dengan Docker. Wireguard adalah opsi VPN bagus lainnya selain OpenVPN. Wireguard belum memiliki gambar Docker resmi, jadi kami akan menggunakan gambar Docker Wireguard dari linuxserver.io – Gambar persis yang digunakan dalam posting ini:Docker Hub (dan halaman Github)

Prosedur ini juga tercakup dalam OpenVPN. Anda dapat memeriksanya di postingan ini.

Persyaratan:

  • Docker diinstal dan dijalankan.

Untuk instalasi buruh pelabuhan, Anda dapat merujuk ke posting ini atau melihat dokumentasi resmi.

Jika Anda menjalankan distro seperti – Ubuntu, Debian, Raspbian, maka Anda dapat menggunakan skrip instalasi cepat Docker resmi:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Kemudian tambahkan pengguna ke grup buruh pelabuhan, jika Anda mau. Itu jika Anda ingin menjalankan perintah buruh pelabuhan tanpa sudo.

sudo usermod -aG docker <username>

Konfigurasi firewall

Jika Anda menjalankan firewall (yang sangat disarankan), Anda harus memiliki port terbuka untuk Wireguard, jika tidak, Anda tidak akan dapat membuat koneksi dengan server 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

Instal dan jalankan image Docker

Di bawah ini tercantum perintah Docker dengan set variabel lingkungan (ini adalah contoh dan dijelaskan juga):

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

Variabel lingkungan dijelaskan:

nama wireguard – ini adalah nama yang kami tetapkan untuk wadah wireguard
cap-add=NET_ADMIN  &cap-add=SYS_MODULE – variabel ini akan memberikan izin yang ditinggikan wadah pada server host dan memungkinkannya untuk mengelola kernel host dan berinteraksi dengan antarmuka jaringan host (yang diperlukan jika kita ingin membangun komunikasi ke VPN kita).
e PUID=1000 -e PGID=1000 – variabel untuk menentukan pengguna dan grup izin (grup yang sama dengan pengguna sudo)
e TZ=Europe/London – Zona waktu server (Setel ini sesuai)
e SERVERURL=vpn.domainanda.com – Nama domain (FQDN) dari server. Domain adalah opsional tetapi setidaknya alamat IP publik server HARUS disetel (Ini diperlukan, agar perangkat klien kami dapat menemukan server dan berkomunikasi dengannya). Anda juga dapat mengatur konfigurasi secara otomatis.
e PEERS=laptop,tablet,phone – variabel untuk mengkonfigurasi koneksi klien ke VPN untuk perangkat klien (Pada dasarnya jumlah perangkat klien)
e PEERDNS=auto – Variabel untuk mengkonfigurasi resolver domain
p 51820:51820/udp – port yang akan ditampilkan pada container dan port mana yang akan didengarkan pada server host yang digunakan untuk lalu lintas VPN.
v wireguard_config:/config &v /lib/modules:/lib/modules – direktori volume untuk dipasang pada server host dan menggunakannya untuk menyimpan konfigurasi dan file Wireguard
sysctl=”net.ipv4.conf.all.src_valid_mark=1″ – Variabel penting lainnya. Ini untuk mengaktifkan parameter kernel di tingkat jaringan sehingga wadah dapat berkomunikasi dengan jaringan di luar wadah. Artinya, container bisa mendapatkan akses internet.
restart=unless-stopped – untuk memulai ulang penampung setiap kali penampung berhenti
linuxserver/wireguard – Gambar buruh pelabuhan untuk digunakan

Versi komposer

Catatan – ini mengharuskan untuk menginstal dan menjalankan 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

Menghubungkan klien

Meninjau konfigurasi rekan

Segera setelah Anda memulai wadah Wireguard, Wireguard akan membuat semua konfigurasi koneksi klien. Anda dapat meninjau konfigurasi dengan perintah:

docker logs wireguard

atau

docker exec -it wireguard /app/show-peer peer-number

Output ini juga akan mencetak kode QR untuk pengaturan koneksi yang mudah dan cepat. Ini paling nyaman untuk perangkat pintar yang dapat memindai kode QR melalui aplikasi Wireguard. Jadi, untuk perangkat pintar, cukup unduh aplikasi Wireguard, pindai kode QR dan Anda akan langsung terhubung.

Menginstal klien Wireguard dan mendapatkan konfigurasi rekan

Pada perangkat Linux (PC dan laptop), pengaturan klien sedikit berbeda. Instalasi dan konfigurasi klien dilakukan melalui terminal. Pertama, instal Wireguard:

sudo apt install wireguard

Klien Wireguard juga tersedia untuk distribusi lain dan juga untuk Windows. Jika Anda membutuhkan klien untuk klien lain, lihat dokumennya.

Selanjutnya, buat antarmuka Wireguard:

ip link add dev wg0 type wireguard

dan periksa kembali apakah ada melalui perintah:ip -a. Jika Anda mengalami masalah dengan ini, dokumen wireguard juga memiliki metode lain dan pemecahan masalah yang tercakup.

Seharusnya terlihat seperti ini:

Biarkan apa adanya untuk saat ini dan pindahkan ke server. Kita perlu mendapatkan konfigurasi rekan langsung dari server terlebih dahulu, salin konfigurasi dan tempel di perangkat klien linux kita.

Lokasi default dari konfigurasi rekan terletak di:

/var/lib/docker/volumes/wireguard_config/_data/

Anda dapat menyalinnya (jika perlu) untuk mencadangkannya atau mengakses konfigurasi rekan secara langsung:

sudo cp /var/lib/docker/volumes/wireguard_config/_data/peer*/*.conf ~

Ini akan menyalin semua konfigurasi rekan ke direktori home dan kemudian pada direktori home mencetak file dengan cat:

sudo cat peer_laptop.conf

or

sudo nano peer_laptop.conf

atau akses konfigurasi rekan secara langsung:

sudo cat /var/lib/docker/volumes/wireguard_config/_data/peer_laptop/peer_laptop.conf

Jika Anda mendapatkan kesalahan izin ditolak dengan perintah sudo juga, itu berarti konfigurasi hanya dapat diakses sebagai root. Jika demikian, maka login saja sebagai root dengan – sudo su dan jalankan kembali salah satu perintah dari sebelumnya tanpa sudo.

Mengonfigurasi antarmuka klien dan membuat koneksi

Setelah Anda menyalin konfigurasi, kembali ke perangkat linux Anda, buat file konfigurasi rekan (hanya untuk contoh kita akan membuat konfigurasi di direktori home):

sudo nano wireguard-vpn.conf

dan tempel di konfigurasi rekan, simpan dan keluar.

Terakhir jalankan perintah ini untuk mengonfigurasi antarmuka wireguard secara otomatis, untuk mengaktifkannya dan setelah itu, secara otomatis akan terhubung ke server Anda:

sudo wg-quick up wireguard-vpn.conf

Anda dapat memeriksanya kembali dengan – ip a dan dengan ping ke server vpn atau dengan apa layanan ip saya.

Untuk memutuskan sambungan, jalankan perintah yang sama lagi tetapi dengan argumen turun:

sudo wg-quick down wireguard-vpn.conf

Ringkasan

Apa yang kami bahas dalam posting ini adalah langkah-langkah cara menginstal server Wireguard VPN dengan Docker. Metode ini cukup cepat untuk diatur dan mudah disesuaikan, jika Anda ingin menambahkan atau menghapus klien. Tetapi, Jika Anda lebih menyukai solusi dengan OpenVPN, ada prosedur yang sama dengan OpenVPN pada tautan ini

Terima kasih banyak atas waktunya…


Docker
  1. Instal ModSecurity dengan Apache di Docker Container

  2. Cara menginstal dan menghosting server OpenVPN dengan Docker

  3. Cara Menginstal Jenkins dengan Docker

  1. Pantau Server MySQL dengan Nagios 3.4

  2. Cara Menginstal Nextcloud dengan Docker di Server Linux Anda

  3. Instal phpMyAdmin di Ubuntu 20.04 dengan Nginx

  1. Cara Menginstal SQL Server di MacOS

  2. Cara menginstal ONLYOFFICE 8.9.0 dengan Docker di Ubuntu

  3. Pemantauan Server dengan Shinken di Ubuntu 16.04