WireGuard VPN Kurulumu: Ubuntu Rehberi
Merhaba sevgili teknoloji meraklıları ve sistem yöneticileri! Günümüz dünyasında internet güvenliği ve gizliliği her zamankinden daha önemli. Bu noktada, hızlı, modern ve güvenli bir VPN çözümü arayışında olanlar için WireGuard harika bir seçenektir. Geleneksel VPN protokollerine kıyasla çok daha az kod satırına sahip olması, denetlemesi daha kolay ve performans açısından oldukça üstün olmasını sağlıyor.
Bu yazımızda, WireGuard VPN sunucusunu ve bir istemcisini Ubuntu işletim sistemi üzerinde adım adım nasıl kuracağınızı anlatacağım. Hazırsanız, başlayalım!
Ön Gereksinimler
Kuruluma başlamadan önce birkaç şeye ihtiyacımız var:
- SSH erişimi olan bir Ubuntu 20.04 (veya daha yeni) sunucusu (VPN sunucusu olarak kullanacağız).
- İstemci olarak kullanmak için bir Ubuntu makine (veya WireGuard destekleyen herhangi bir cihaz).
- Her iki makinede de
sudoyetkilerine sahip bir kullanıcı.
Adım 1: WireGuard Sunucusunu Kurulumu
İlk olarak VPN sunucumuzu hazırlayalım.
WireGuard Paketini Yükleme
Sunucunuzda terminalleri açın ve paket listelerini güncelleyip WireGuard paketini yükleyin:
sudo apt update
sudo apt upgrade -y
sudo apt install wireguard -y
Anahtarları Oluşturma
WireGuard, kriptografik anahtarlar kullanarak güvenli bir tünel oluşturur. Sunucu ve her istemci için bir çift özel (private) ve genel (public) anahtar oluşturmamız gerekiyor. Bu anahtarlar, /etc/wireguard dizininde saklanacak.
cd /etc/wireguard/
wg genkey | sudo tee privatekey
sudo chmod 600 privatekey
sudo cat privatekey | wg pubkey | sudo tee publickey
Yukarıdaki komutlar, sunucunuz için privatekey ve publickey dosyalarını oluşturacaktır. privatekey dosyasının izinlerini 600 olarak ayarladığımıza dikkat edin, bu sadece root kullanıcısının okuyabilmesini sağlar, ki bu çok önemlidir!
WireGuard Yapılandırma Dosyasını Oluşturma
Şimdi sunucumuz için WireGuard yapılandırma dosyasını (wg0.conf) oluşturalım. Bu dosya, VPN arayüzünün ayarlarını, anahtarları ve ağ kurallarını içerecek.
sudo nano /etc/wireguard/wg0.conf
Aşağıdaki içeriği dosyaya yapıştırın. <SERVER_PRIVATE_KEY> kısmına az önce oluşturduğunuz sunucunun özel anahtarını (cat /etc/wireguard/privatekey ile görebilirsiniz) yapıştırmayı unutmayın. eth0 yerine sunucunuzun dışa dönük ağ arayüzünü kullanmanız gerekebilir (genellikle ens3, enp0s3 gibi isimler alabilir, ip a komutu ile kontrol edebilirsiniz). Aşağıdaki komutla otomatik olarak bulabilirsiniz:
PUBLIC_INTERFACE=$(ip -4 route show default | grep -oP 'dev \K\S+')
echo "Public interface is: $PUBLIC_INTERFACE"
Ardından yapılandırma dosyasını düzenleyin:
[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o <PUBLIC_INTERFACE> -j MASQUERADE; iptables -A FORWARD -o <PUBLIC_INTERFACE> -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o <PUBLIC_INTERFACE> -j MASQUERADE; iptables -D FORWARD -o <PUBLIC_INTERFACE> -j ACCEPT
<PUBLIC_INTERFACE> yerine yukarıdaki komutla bulduğunuz arayüz adını yazın. Örneğin, eth0 veya ens3. `PostUp` ve `PostDown` komutları, VPN trafiğini internete yönlendirmek (NAT) için gereklidir.
Dosyayı kaydedin ve kapatın (CTRL+O, Enter, CTRL+X).
IP Yönlendirmeyi Etkinleştirme
VPN sunucusunun, VPN tüneli üzerinden gelen trafiği internete yönlendirebilmesi için IP yönlendirme özelliğini etkinleştirmemiz gerekiyor.
sudo nano /etc/sysctl.conf
Dosyada aşağıdaki satırı bulun ve başındaki # karakterini kaldırarak yorum satırı olmaktan çıkarın:
net.ipv4.ip_forward=1
Dosyayı kaydedin ve kapatın. Değişiklikleri uygulamak için:
sudo sysctl -p
Güvenlik Duvarını Yapılandırma (UFW)
VPN sunucunuzu dışarıdan gelen bağlantılara karşı korumak için bir güvenlik duvarı (UFW) kullanmanız şiddetle tavsiye edilir. WireGuard’ın varsayılan portu 51820/udp‘dir, bu portu açmamız gerekiyor.
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH # SSH bağlantınızın kesilmemesi için
sudo ufw enable
sudo ufw status
sudo ufw enable komutunu çalıştırdığınızda bir uyarı alabilirsiniz, ‘y’ tuşuna basarak devam edin. sudo ufw status komutu ile kuralların doğru ayarlandığından emin olun.
WireGuard Sunucusunu Başlatma ve Etkinleştirme
Şimdi WireGuard servisini başlatabilir ve sistem başlangıcında otomatik olarak açılması için etkinleştirebiliriz.
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Sunucunuzun durumunu kontrol etmek için:
wg show
Eğer her şey yolundaysa, arayüz detaylarını ve herhangi bir peer’ın (istemcinin) bağlı olup olmadığını göreceksiniz. Şu anda henüz istemci eklemediğimiz için peer bölümü boş olacaktır.
Adım 2: WireGuard İstemcisini Kurulumu (Ubuntu Örneği)
Şimdi, VPN sunucusuna bağlanacak olan istemci makinemizi hazırlayalım. Bu örnekte de bir Ubuntu makine kullanacağız, ancak prensip diğer işletim sistemleri için de benzerdir.
WireGuard Paketini Yükleme
İstemci makinenizde de WireGuard paketini yükleyin:
sudo apt update
sudo apt upgrade -y
sudo apt install wireguard -y
Anahtarları Oluşturma
İstemci için de özel ve genel anahtarlar oluşturalım:
wg genkey | tee client_privatekey
cat client_privatekey | wg pubkey | tee client_publickey
Bu komutlar, istemcinizin bulunduğu dizinde client_privatekey ve client_publickey dosyalarını oluşturacaktır. Bu anahtarları not alın, sunucu yapılandırmasında kullanacağız.
İstemci Yapılandırma Dosyasını Oluşturma
İstemci makinenizde /etc/wireguard/wg0.conf dosyasını oluşturalım:
sudo nano /etc/wireguard/wg0.conf
Aşağıdaki içeriği dosyaya yapıştırın. <CLIENT_PRIVATE_KEY> yerine az önce oluşturduğunuz istemcinin özel anahtarını, <SERVER_PUBLIC_KEY> yerine sunucunuzun genel anahtarını (sunucuda cat /etc/wireguard/publickey ile görebilirsiniz) ve <SERVER_PUBLIC_IP> yerine VPN sunucunuzun genel IP adresini yazın.
[Interface]
PrivateKey = <CLIENT_PRIVATE_KEY>
Address = 10.0.0.2/32
DNS = 8.8.8.8, 8.8.4.4 # Google DNS, istediğiniz DNS sunucularını kullanabilirsiniz
[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Address = 10.0.0.2/32 istemcinin VPN tüneli içindeki IP adresidir. Her istemci için farklı bir IP (örn. 10.0.0.3, 10.0.0.4) vermeniz gerekecektir. AllowedIPs = 0.0.0.0/0, ::/0 tüm trafiğin VPN üzerinden geçmesini sağlar.
Dosyayı kaydedin ve kapatın.
Adım 3: İstemciyi Sunucuya Ekleme
İstemci yapılandırmasını tamamladıktan sonra, sunucumuza bu istemcinin bağlanmasına izin vermemiz gerekiyor.
VPN sunucunuza geri dönün ve /etc/wireguard/wg0.conf dosyasını düzenleyin:
sudo nano /etc/wireguard/wg0.conf
Dosyanın sonuna aşağıdaki [Peer] bölümünü ekleyin. <CLIENT_PUBLIC_KEY> yerine istemcinin genel anahtarını (istemcide cat client_publickey ile görebilirsiniz) yazın. AllowedIPs değeri, bu istemcinin tünel içinde hangi IP’leri kullanabileceğini belirtir.
# Client 1
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32
Birden fazla istemciniz varsa, her biri için bu bloğu kopyalayıp farklı PublicKey ve AllowedIPs (farklı IP’lerle) değerleriyle eklemeniz gerekir.
Dosyayı kaydedin ve kapatın. Değişikliklerin etkili olması için WireGuard servisini yeniden başlatın:
sudo systemctl restart wg-quick@wg0
Adım 4: Bağlantıyı Test Etme
Her şey yolunda gittiyse, şimdi bağlantıyı test edebiliriz.
İstemcide WireGuard’ı Başlatma
İstemci makinenizde WireGuard servisini başlatın:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
İstemcinin bağlantı durumunu kontrol etmek için:
wg show
Burada sunucu peer’ının detaylarını ve aktarılan veri miktarını görmelisiniz.
Bağlantıyı Doğrulama
İstemci makinenizden VPN tünelinin çalışıp çalışmadığını kontrol edelim:
ping 10.0.0.1
Bu komut, VPN sunucusunun dahili IP adresine ping atmalıdır. Başarılı olursa, tünel çalışıyor demektir.
Şimdi dış IP adresinizi kontrol edelim. İstemci makinenizin dış IP adresi, VPN sunucunuzun genel IP adresi olmalıdır:
curl ifconfig.me
Bu komutun çıktısı, VPN sunucunuzun genel IP adresiyle eşleşiyorsa, tüm internet trafiğiniz VPN tüneli üzerinden yönlendiriliyor demektir. Tebrikler!
Sonuç
Bu kapsamlı rehberde, Ubuntu sunucunuzda bir WireGuard VPN’i nasıl kuracağınızı ve bir istemciyi nasıl bağlayacağınızı adım adım öğrendiniz. WireGuard’ın sadeliği ve yüksek performansı sayesinde artık güvenli ve hızlı bir şekilde internete erişebilirsiniz. Unutmayın, her istemci için ayrı bir anahtar çifti oluşturmanız ve sunucu yapılandırmasına eklemeniz gerekmektedir.
Umarım bu rehber işinize yaramıştır. Güvenli internet gezintileri dilerim!
