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…