Basit bir VPN kurulumu ile WireGuard ve sunucu olarak Raspberry Pi

Beri WireGuard parçası olacak gelecekteki çekirdek Linux 5.6'da, bu VPN'i en iyi şekilde nasıl entegre edebileceğimi görmeye karar verdim. Raspberry Pi'de LTE yönlendirici/erişim noktası.

Mutfak Cihazları

  • Raspberry Pi 3, LTE modülü ve genel IP adresiyle. Burada bir VPN sunucusu olacak (bundan sonra metinde adı geçecektir) kenarda yürüyen kimse)
  • Telefonda AndroidBu durum, tüm iletişimler için VPN kullanmayı zorunlu kılmaktadır.
  • defter LinuxBu, VPN'i yalnızca ağ içinde kullanmalıdır.

VPN'ye bağlanan her cihazın diğer tüm cihazlara bağlanabilmesi gerekir. Örneğin, her iki cihaz da bir VPN ağının parçasıysa, telefonun dizüstü bilgisayardaki bir web sunucusuna bağlanabilmesi gerekir. Kurulumun oldukça basit olduğu ortaya çıkarsa, masaüstünü VPN'ye (Ethernet aracılığıyla) bağlamayı düşünebilirsiniz.

Kablolu ve kablosuz bağlantıların zaman içinde giderek daha az güvenli hale geldiği göz önüne alındığında (hedefli saldırılar, KRACK WPA2 kırma saldırısı и WPA3'e karşı Dragonblood saldırısı), kullanmayı ciddi olarak düşünüyorum. WireGuard Cihazlarımın tamamı için, hangi ortamda çalışırlarsa çalışsınlar.

Yazılım kurulumu

WireGuard sağlar önceden derlenmiş paketler çoğu dağıtım için Linux, Windows и macOS. Приложения для Android iOS ve iOS uygulamaları uygulama mağazaları aracılığıyla sunulmaktadır.

En son Fedora sürümüne sahibim. Linux 31 numaralı sürümü yükledim ve kurulumdan önce kılavuzu okumaya üşendim. Sadece paketleri buldum. wireguard-tools, onları yükledim ve sonra neden hiçbir şeyin işe yaramadığını anlayamadım. Daha fazla araştırma, paketin yüklü olmadığını ortaya çıkardı wireguard-dkms (bir ağ sürücüsüyle), ancak dağıtımımın deposunda değildi.

Talimatları okusaydım doğru adımları atardım:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Raspberry Pi'mde Raspbian Buster dağıtımı yüklü, orada zaten bir paket var wireguard, yükle:

$ sudo apt install wireguard

Telefonda Android Uygulamayı yükledim. WireGuard VPN resmi Google App Store kataloğundan.

Anahtarların kurulumu

Düğümlerin kimliğini doğrulamak için Wireguard VPN düğümlerini doğrulamak için basit bir özel/genel anahtar şeması kullanır. Aşağıdaki komutla kolayca VPN anahtarları oluşturabilirsiniz:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

Bu bize üç anahtar çifti (altı dosya) verir. Yapılandırmalardaki dosyalara başvurmayacağız, ancak içerikleri buraya kopyalayacağız: her anahtar base64'te bir satırdır.

VPN sunucusu için yapılandırma dosyası oluşturma (Raspberry Pi)

Yapılandırma oldukça basit, aşağıdaki dosyayı oluşturdum /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

Birkaç not:

  • Uygun yerlere, tuşlarla dosyalardan satırlar eklemeniz gerekir.
  • VPN'im dahili bant kullanıyor 10.200.200.0/24
  • Takımlar için PostUp/PostDown Harici ağ arayüzüm wwan0'ım var, sizin farklı bir arayüzünüz olabilir (örneğin, eth0)

VPN ağı aşağıdaki komutla kolayca yükseltilir:

$ sudo wg-quick up wg0

Küçük bir detay: Kullandığım DNS sunucusu olarak dnsmasq bir ağ arayüzüne bağlı br0, cihazları da ekledim wg0 izin verilen cihazlar listesine. Dnsmasq'ta bu, yapılandırma dosyasına yeni bir ağ arayüzü satırı eklenerek yapılır. /etc/dnsmasq.confÖrneğin:

interface=br0
interface=wg0

Ek olarak, UDP dinleme bağlantı noktasına (51280) giden trafiğe izin vermek için bir iptable kuralı ekledim:

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Artık her şey çalıştığına göre VPN tünelinin otomatik başlatılmasını ayarlayabiliriz:

$ sudo systemctl enable wg-quick@wg0.service

Dizüstü bilgisayarda istemci yapılandırması

Dizüstü bilgisayarda bir yapılandırma dosyası oluşturma /etc/wireguard/wg0.conf aynı ayarlarla:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Notlar:

  • Edgewalker yerine genel IP veya VPN sunucusu ana bilgisayarını belirtmeniz gerekir
  • Ayarlayarak AllowedIPs üzerinde 10.200.200.0/24, VPN'i yalnızca dahili ağa erişmek için kullanırız. Diğer tüm IP adreslerine/sunucularına giden trafik "normal" açık kanallardan geçmeye devam edecektir. Ayrıca dizüstü bilgisayardaki önceden yapılandırılmış DNS sunucusunu da kullanacaktır.

Test ve otomatik başlatma için aynı komutları kullanıyoruz wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.service

İstemciyi kurmak için Android-telefon

Telefon için Android Çok benzer bir yapılandırma dosyası oluşturuyoruz (buna diyelim ki...). mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

Dizüstü bilgisayardaki yapılandırmanın aksine, telefonun DNS sunucusu olarak VPN sunucumuzu kullanması gerekir (hat DNS) ve ayrıca tüm trafiği VPN tünelinden geçirin (AllowedIPs = 0.0.0.0/0).

Dosyayı mobil cihazınıza kopyalamak yerine QR koduna dönüştürebilirsiniz:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR kodu konsola ASCII olarak yazdırılacaktır. Uygulama üzerinden taranabilir. Android VPN'i yapılandırın ve VPN tünelini otomatik olarak kurun.

Aviator apk

Ayar WireGuard karşılaştırıldığında gerçekten büyülü OpenVPN.

Kaynak: habr.com

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster