Beri WireGuard gelecekteki çekirdek Linux 5.6'da, bu VPN'i en iyi şekilde nasıl entegre edebileceğimi görmeye karar verdim. .
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 (, и ), 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 ç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 wireguardTelefonda Android Uygulamayı yükledim. 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.keyBu 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/32Birkaç 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/PostDownHarici 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=wg0Ek 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 ACCEPTArtık her şey çalıştığına göre VPN tünelinin otomatik başlatılmasını ayarlayabiliriz:
$ sudo systemctl enable wg-quick@wg0.serviceDizü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:51820Notlar:
- Edgewalker yerine genel IP veya VPN sunucusu ana bilgisayarını belirtmeniz gerekir
- Ayarlayarak
AllowedIPsüzerinde10.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.confQR 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
