Wireguard kullanarak kendi kendine barındırılan bir VPN kurun
A VPN (Sanal Özel Ağ) kullanıcının bilgisayarı doğrudan özel ağa bağlıymış gibi kullanıcının özel bir ağa uzaktan bağlanmasına izin verir. Teknoloji, başlangıçta, dahili ağ konumunda gerçekte bulunmayan çalışanlar için bir şirketin dahili özel ağına uzaktan erişime izin vermek için geliştirildi.
Dahili ağın bulunduğu yere bir VPN Sunucusu dağıtılır. Bu sunucu genel ağdadır ve çalışan tarafından bir VPN istemcisi kullanılarak erişilebilir. VPN Sunucusuna bağlanmak için kimlik doğrulama gereklidir. VPN Sunucusu ve VPN İstemcisi arasındaki iletişim, bir tünel protokolü kullanılarak güvence altına alınır. Bu iletişimin şifreli olabileceğini veya olmayabileceğini unutmayın, ancak genellikle çoğu VPN protokolünde şifrelenir.
VPN'nin başka bir kullanımı, İnternete erişirken anonimlik kazanın veya bazı web sitelerine erişirken uygulanan coğrafi kısıtlamaları aşmak için. Bu gibi durumlarda, kullanıcının bağlanmak istediği ağ özel bir ağ değil, İnternet'tir.
Yıllar boyunca birçok VPN protokolü geliştirilmiştir. Bu protokoller, sunucu ve istemci arasındaki iletişim için farklı tünel protokollerini ve şifreleme algoritmalarını kullanır.
Son zamanlarda yaygın olarak kullanılmaya başlanan böyle bir protokol, tel koruma. Wireguard, OpenVPN, IPSec gibi iyi bilinen geleneksel olarak kullanılan VPN protokollerinden daha hafif, daha basit ve daha performanslıdır. Halihazırda Windows, Mac OS ve çok sayıda Linux dağıtımı için uygulanmaktadır. Linux'ta bir çekirdek modülü olarak uygulanır. Ubuntu 20.04'ün resmi depolarında mevcuttur.
Bu yazımızda Ubuntu 20.04'te Wireguard VPN Sunucusu ve İstemcisi nasıl kurulur onu göreceğiz.
Kurulum
Bu yazı için Ubuntu 20.04 Linode üzerinde Wireguard Server ve Ubuntu 20.04 ile yerel makinemde Wireguard Client kuruyorum.
paket tel koruma
hem Wireguard Sunucusunu hem de İstemciyi kurar. Aşağıdaki komutu çalıştırın hem Sunucu makinesinde hem de İstemci makinesinde.
sudo apt tel korumayı kurun
Sunucu Yapılandırması
Güvenlik Anahtarları
Bir dizi genel/özel anahtar çifti oluşturmamız gerekiyor Wireguard bağlantısını doğrulamak ve güvenliğini sağlamak için. Bu, aşağıdaki komutlar kullanılarak yapılabilir:
sudo su cd /etc/wireguard umask 077 wg genkey | tee private_key | wg pubkey > public_key
Tüm yapılandırma görevlerini bir süper kullanıcı olarak yaptığımızı unutmayın. Bunun nedeni, dizine erişimin /etc/wireguard
normal kullanıcılar için engellenir ve normal bir kullanıcı için yalnızca sudo ayrıcalıklarıyla dizin erişimi elde edilemez.
Ardından, dosya oluşturma maskesini 077
. Bu, herhangi bir işlem tarafından bu klasörde yeni bir dosya oluşturulduğunda, izinlerinin otomatik olarak 077 ile maskeleneceği anlamına gelir. bu klasörde 777 izinleriyle bir dosya oluşturulursa, otomatik olarak maskelenir ve izinler etkin bir şekilde 700 olur. Bu, yalnızca dosyanın sahibinin dosya üzerinde tüm izinlere sahip olması ve diğer herkesin hiçbir izni olmaması için yapılır.
Sonraki satırda, genel/özel anahtar çiftini oluşturuyoruz sunucu için. Dosyalara kaydedilirler Özel anahtar
ve Genel anahtar
. Anahtarları görüntülemek için şunu çalıştırın:
kedi private_key kedi public_key
Özel anahtarı kopyalayın, bir sonraki adımda ihtiyacımız var.
Not: Özel anahtarınızı asla herkese açık olarak paylaşmayın!
Yapılandırma Dosyası
Wireguard Server için bir konfigürasyon dosyası oluşturalım. Dosya için herhangi bir isim seçebilirsiniz. bir dosya oluşturacağız wg0.conf
bu örnekte.
vim wg0.conf
Dosyaya aşağıdakileri ekleyin.
[Arayüz] Adres = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A İLERİ -i wg0 -j KABUL; iptables -t nat -A POSTROUTING -o -j MASKERADE; ip6tables -A İLERİ -i wg0 -j KABUL; ip6tables -t nat -A POSTROUTING -o eth0 -j MASKERADE PostDown = iptables -D İLERİ -i wg0 -j KABUL; iptables -t nat -D POSTROUTING -o eth0 -j MASKERADE; ip6tables -D İLERİ -i wg0 -j KABUL; ip6tables -t nat -D POSTROUTING -o -j MASKELEME
Daha önce kopyaladığımız Özel Anahtarı yukarıdaki kodda 5. satıra yapıştırın.
Wireguard'ı farklı (sanal) bir alt ağda yapılandırmamız gerekiyor sunucunun IP Adresinden daha fazla. Burada sunucu için 10.20.43.1 kullandım ve istemci için 10.20.43.2 kullanacağım. Burada herhangi bir alt ağ kullanılabilir. Sunucunun ve arayüzün IP Adresini almak için şunu çalıştırın:
ifconfig
Sunucunun IP Adresini not edin. Bu, istemci yapılandırması sırasında gereklidir.
Yukarıdaki resimde görüldüğü gibi sunucunun kullandığı arayüz aşağıdaki gibidir. et0
. Arayüz adı, kullanıcının ağına göre farklılık gösterebilir, wlan0
veya wlp2s0
kullanıcının bir kablosuz kart kullanarak bir WiFi ağına bağlanması durumunda.
değiştirin içinde
PostUp
ve PostAşağı
arayüzünüz ile; bu örnekte et0
.PostUp
ve PostAşağı
Yönergeler, sunucu sırasıyla başladığında ve durduğunda hangi komutların çalıştırılacağını belirtmek için kullanılır. Örneğimizde, iptables
sunucunun IP Adresi istemciler tarafından paylaşılacak şekilde IP kurallarını ayarlamak için komut. Sunucu durduğunda kurallar düşecektir.
Dosyayı kaydedin ve çıkın. vim kullanırken, tuşuna basın ESC, ardından yazın :wq
ve bas Girmek kaydetmek ve çıkmak için.
kullanıyorsanız ufw
sunucuda güvenlik duvarı, VPN sunucusu 51190 için bağlantı noktasına UDP bağlantılarına izin vermemiz gerekiyor.
ufw 51190/udp'ye izin verir
Hizmeti Başlatmak
Artık konfigürasyon tamamlandığına göre Wireguard VPN hizmetini başlatabiliriz.
Etkinleştirmek önyükleme zamanında başlayacak hizmet, şunu çalıştırın:
systemctl wg-quick@wg0'ı etkinleştir
not edin wg0
yapılandırma dosyasının adıdır.
Başlamak hizmet, çalıştırın:
hizmet wg-quick@wg0 başlangıç
Doğrulayın hizmetin başarıyla başlatıldığını:
hizmet wg-quick@wg0 durumu
Arayüzün doğru olduğunu doğrulayın Oluşturduğumuz yapılandırma dosyasında IP komutu kullanılarak başlatıldı.
ip bir gösteri wg0
Wireguard VPN Sunucusu şimdi kuruldu ve çalışıyor. Şimdi istemciyi yapılandıralım.
İstemci Yapılandırması
Wireguard için İstemci Yapılandırması, bir sunucu yapılandırmasıyla aşağı yukarı aynıdır. İstemci için anahtarları oluşturuyoruz ve ardından bir yapılandırma dosyası oluşturuyoruz.
Güvenlik Anahtarları
Genel/özel anahtarı oluşturmak için istemci için eşleştirin, şunu çalıştırın:
sudo su cd /etc/wireguard umask 077 wg genkey | tee client_private_key | wg pubkey > client_public_key
İstemci için genel ve özel anahtarlar artık sırasıyla dosyalarda oluşturulmaktadır. client_private_key
ve client_public_key
.
kullanarak oluşturulduklarını kontrol edin. kedi
emretmek.
cat client_private_key cat client_public_key
Görüntülenen özel anahtarı, istemci için yapılandırma dosyasına eklememiz gerektiğinden kopyalayın.
Yapılandırma Dosyası
Yapılandırma dosyasını oluşturun Dilediğiniz isim ile. isimle oluşturacağız. wg0-istemci
bu örnek için.
vim wg0-client.conf
Aşağıdaki yapılandırmayı ekleyin.
[Arayüz] # İstemcinin IP Adresi ve Özel Anahtarı Adresi = 10.20.43.2/24 Özel Anahtar = [Eş] # Sunucunun Genel Anahtarı, IP Adresi ve Bağlantı Noktası PublicKey = Bitiş Noktası = :51190 AllowedIPs = 0.0.0.0/0, : :/0
İstemci için alt ağ adresini girin. Daha önce açıklandığı gibi, kullandığımız 10.20.43.2
bu örnekteki müşteri için.
İstemci özel anahtarını ekleyin önceki adımda yukarıdaki yapılandırma kodunda 4. satırda oluşturulur.
'Eş' altında, Wireguard VPN sunucusu hakkında bilgi ekliyoruz bağlanmak istiyoruz.
Sunucunun genel anahtarını girin. Giriş sunucunun IP Adresi, daha önce not ettiğimiz ve verilen biçimde bağlantı noktası uç nokta. Bu, sunucu yapılandırma dosyasında belirttiğimiz ve sunucudaki VPN hizmetinin başlatıldığı bağlantı noktasıdır.
İstemci tarafından kullanılan dinamik bir genel IP üzerindeki herhangi bir isteğin her zaman VPN sunucusuna iletilmesi için izin verilen IP'ler (0.0.0.0/0) verildiği gibi girilmelidir.
Dosyayı kaydedin ve çıkın. vim kullanırken, tuşuna basın ESC, ardından yazın :wq
ve bas Girmek kaydetmek ve çıkmak için.
İstemci hizmetini etkinleştir her açılışta çalıştırmak ve başlatmak için.
systemctl wg-quick@wg-client hizmetini etkinleştir wg-quick@wg-client start
Doğrulayın hizmet başladıysa.
hizmet wg-hızlı@wg-istemci durumu
Sunucuya Eş Eklemek
Artık VPN sunucumuz ve istemcimiz çalışır durumda. Ancak, sunucu ve istemci arasında bir eşler arası bağlantı kurmadıkça, ikisi arasında güvenli bir tünel kurulmaz.
Geri gitmek sunucuya. Öncelikle, VPN hizmetini durdur.
hizmet wg-hızlı@wg0 durdurma
Ardından, yapılandırma dosyasını açın eş için yapılandırma ekle (müşteri).
vim /etc/wireguard/wg0.conf
Ekle dosyaya aşağıdaki satırlar.
[Eş] PublicKey = İzin VerilenIP'ler = 10.20.43.2/32
Şimdi, VPN hizmetini yeniden başlatın.
hizmet wg-quick@wg0 başlangıç
Bu kadar! Wireguard VPN istemcisi ve sunucu kurulumu için gereken tüm yapılandırma budur. Şimdi VPN'imizi test edelim.
VPN'i test etme
İlk olarak, VPN tünel iletişiminin çalıştığından emin olmak için istemciden sunucuya basit bir ping yapalım. İstemcide aşağıdakileri çalıştırın:
ping 10.20.43.1
Sonraki, bir web tarayıcısı açın ve herhangi bir web sitesini açın İstemci makineden internete bağlanıp bağlanamadığınızı kontrol etmek için. İnternet bağlantınızı komut satırından da kontrol edebilirsiniz. wget
.
wget
Şimdi tünel bağlantısını ve İnternet bağlantısını kontrol ettik. Her ikisi de çalışıyorsa, şimdi istemciye gelen tüm internet trafiğinin sunucudan geçtiğinden emin olmamız gerekiyor.
Bunun için sadece istemcinin IP Adresini İnternet tarafından görüldüğü şekliyle kontrol etmemiz yeterlidir. Bunu yapmanın bir yolu whatsmyip.org'a gitmektir. Veya komut satırından, Curl kullanarak IP info adlı başka bir benzer hizmeti sorgulayabiliriz.
İstemci makinede aşağıdakileri çalıştırın
kıvrılma //ipinfo.io/ip
Evet. VPN sunucusunun barındırıldığı Linode'un genel IP Adresidir. VPN kullanılarak anonimlik bu şekilde sağlanır, çünkü İnternet'in her yerinde artık bilgisayarınızın değil VPN sunucusunun IP'si görülür.
Çözüm
Kurulum kolaylığı, kurmak için daha yüksek düzeyde ağ ve yönlendirme bilgisi gerektiren OpenVPN gibi geleneksel VPN yazılımlarına göre Wireguard'ın en önemli avantajlarından biridir. Ancak, Wireguard kurulumunuz hata veriyorsa veya beklendiği gibi çalışmıyorsa sorunlara neden olabilecek Wireguard için ayrıntılı resmi belgeler eksikliği vardır.
Bununla birlikte, İnternet üzerinden güvenli iletişim için kendi kendine barındırılan bir VPN istiyorsanız, Wireguard mükemmel bir seçimdir. Wireguard ve kullandığı protokoller ve teknolojiler hakkında daha fazla bilgi edinmek için resmi siteye göz atabilirsiniz.