LIONFIN

WireGuard VPN Kurulumu: Kendi VPN Sunucunuzu Kurun

WireGuard, birkaç satırlık yapılandırmayla çalışan hızlı ve modern bir VPN protokolüdür. Ubuntu 24.04 bir VPS üzerinde sunucu ve istemci ayarlarını, IP yönlendirmeyi, güvenlik duvarını ve bağlantı testini adım adım anlatıyoruz.

YYönetici 6 dk okuma 1 görüntülenme
WireGuard VPN Kurulumu: Kendi VPN Sunucunuzu Kurun

WireGuard VPN kurulumu, bir Linux sunucuya WireGuard paketini yükleyip sunucu ile her cihaz arasında açık anahtarlarla doğrulanan şifreli bir tünel tanımlamaktır; işlem birkaç komut ve iki kısa yapılandırma dosyasıyla tamamlanır. WireGuard modern şifreleme algoritmalarını kullanır, Linux çekirdeğinin içinde çalışır ve OpenVPN ya da IPsec’e göre çok daha az yapılandırma satırı gerektirir.

Kendi VPN sunucunuz; ekibinizin şirket içi panellere güvenli erişimi, halka açık Wi-Fi ağlarında trafiğin korunması ya da yönetim portlarını internete kapatıp yalnızca VPN üzerinden açmak için kullanılabilir. Aşağıdaki adımlar Ubuntu 24.04 LTS kurulu, root yetkili bir VPS sunucu için yazılmıştır; Debian 12 ve 13’te de aynı şekilde çalışır.

Kısa cevap

WireGuard VPN kurulumu, Ubuntu 24.04 bir sunucuda apt install wireguard ile paketi yüklemek, wg genkey ile anahtar çifti üretmek, /etc/wireguard/wg0.conf dosyasında sunucu adresini, 51820 numaralı UDP portunu ve istemcileri tanımlamak, IP yönlendirmeyi açmak, güvenlik duvarında 51820/udp portuna izin vermek ve servisi systemctl enable --now wg-quick@wg0 ile başlatmaktan oluşur. İstemci tarafında aynı mantıkta kısa bir yapılandırma dosyası yeterlidir.

WireGuard VPN kurulumu için neler gerekir?

WireGuard VPN kurulumu için sabit bir genel IP adresine sahip, root ya da sudo yetkisiyle erişebildiğiniz bir Linux sunucu ve 51820 numaralı UDP portunu dışarıya açabilmeniz yeterlidir. Kaynak ihtiyacı düşüktür; küçük bir ekip için en küçük VPS paketleri bile çoğu zaman yeter. Sunucuya SSH ile anahtar kullanarak bağlanmıyorsanız önce SSH anahtarı oluşturma rehberini uygulayın.

Paketi kurup sunucu anahtar çiftini üretin. umask 077 komutu, özel anahtar dosyasının yalnızca root tarafından okunabilmesini sağlar:

sudo apt update
sudo apt install wireguard
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey publickey

privatekey dosyası sunucunun gizli anahtarıdır ve sunucudan hiçbir yere kopyalanmamalıdır. publickey ise istemcilere vereceğiniz açık anahtardır. Ubuntu 24.04 ve Debian 12’nin çekirdeğinde WireGuard modülü hazır geldiği için ayrıca modül derlemeniz gerekmez. Sanal sunucunuzun KVM gibi kendi çekirdeğini çalıştıran bir sanallaştırma kullandığından emin olun; çekirdeği ana makineyle paylaşan konteyner tabanlı ortamlarda WireGuard modülü yüklenemeyebilir.

Sunucu yapılandırma dosyası wg0.conf nasıl yazılır?

Sunucu yapılandırması /etc/wireguard/wg0.conf dosyasında tutulur; [Interface] bölümü sunucuyu, her [Peer] bölümü bir istemciyi tanımlar. Önce internete çıkan ağ arayüzünün adını öğrenin, çünkü NAT kuralı bu ada göre yazılır:

ip route show default

Çıktıdaki dev kelimesinden sonraki ad (örneğin eth0 ya da ens3) arayüz adınızdır. Aşağıdaki örnekte eth0 yazan yerleri kendi arayüz adınızla değiştirin:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SUNUCU_OZEL_ANAHTARI
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Ali - dizüstü
PublicKey = ISTEMCI_ACIK_ANAHTARI
AllowedIPs = 10.8.0.2/32

%i, wg-quick tarafından arayüz adıyla (wg0) değiştirilir. MASQUERADE kuralı, istemcilerden gelen trafiğin sunucunun genel IP adresiyle internete çıkmasını sağlar. Sunucudaki AllowedIPs değeri, o istemciye ait tünel adresidir ve her istemci için farklı olmalıdır. Debian’ın en küçük kurulumlarında iptables paketi yüklü gelmeyebilir; bu durumda sudo apt install iptables ile ekleyin.

IP yönlendirme ve güvenlik duvarı nasıl ayarlanır?

Sunucunun istemci trafiğini internete iletebilmesi için çekirdekte IPv4 yönlendirmesi açılmalı ve güvenlik duvarında WireGuard portuna izin verilmelidir. Adımları sırayla uygulayın:

  1. Yönlendirmeyi kalıcı olarak açın ve ayarı yükleyin:
    echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
    sudo sysctl --system
  2. UFW kullanıyorsanız SSH erişimini kaybetmemek için önce SSH’ye, sonra WireGuard portuna izin verin:
    sudo ufw allow OpenSSH
    sudo ufw allow 51820/udp
    sudo ufw status
  3. Servisi açılışta otomatik başlayacak şekilde etkinleştirin:
    sudo systemctl enable --now wg-quick@wg0
    sudo wg show

UFW’nin temel kullanımı ve varsayılan politikalar UFW firewall kurulumu rehberinde anlatılır. Sağlayıcınızın panelinde ayrı bir ağ güvenlik duvarı varsa 51820/UDP portunu orada da açmayı unutmayın.

Dikkat: NAT kuralındaki arayüz adı yanlışsa tünel kurulur ama istemciler internete çıkamaz; arayüz adını mutlaka ip route çıktısından kontrol edin.

WireGuard istemcisi nasıl yapılandırılır?

Her istemci kendi anahtar çiftini üretir, açık anahtarını sunucuya verir ve sunucunun açık anahtarıyla adresini kendi yapılandırmasına yazar. Windows, macOS, Android ve iOS için resmî WireGuard uygulamaları vardır; Linux istemcide ise sunucudaki gibi wireguard paketi kurulur. Örnek istemci dosyası:

[Interface]
PrivateKey = ISTEMCI_OZEL_ANAHTARI
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SUNUCU_ACIK_ANAHTARI
Endpoint = SUNUCU_IP_ADRESI:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

İstemcideki AllowedIPs değeri hangi trafiğin tünelden geçeceğini belirler. 0.0.0.0/0 tüm IPv4 trafiğini VPN’den geçirir; yalnızca şirket içi sunuculara erişmek istiyorsanız 10.8.0.0/24 gibi dar bir aralık yazarak diğer trafiği normal bağlantınızda bırakabilirsiniz. PersistentKeepalive, NAT arkasındaki istemcilerde bağlantının kopmamasına yardımcı olur.

Sunucuya yeni istemci eklediğinizde wg0.conf dosyasına bir [Peer] bölümü ekleyip servisi yeniden başlatın. Telefonlara yapılandırmayı elle yazmak yerine sunucuda qrencode paketiyle karekod üretebilirsiniz: qrencode -t ansiutf8 < istemci.conf. İstemci dosyası özel anahtar içerdiği için aktardıktan sonra silin.

Bağlantı nasıl test edilir, sık görülen sorunlar nelerdir?

Bağlantının çalıştığını en hızlı sudo wg show çıktısındaki latest handshake satırından anlarsınız: birkaç saniye ya da dakika önce gerçekleşmiş bir el sıkışma, tünelin kurulduğunu gösterir. İstemciden ping 10.8.0.1 komutuyla sunucunun tünel adresine de ulaşabilmelisiniz.

BelirtiOlası nedenÇözüm
Hiç el sıkışma yok51820/UDP kapalı ya da Endpoint adresi yanlışUFW ve sağlayıcı güvenlik duvarını, istemcideki IP ve portu kontrol edin
El sıkışma yok, port açıkAnahtarlar karışmışSunucuda istemcinin, istemcide sunucunun açık anahtarı yazılı olmalı
Tünel var, internet yokYönlendirme kapalı ya da NAT arayüzü yanlışsysctl net.ipv4.ip_forward çıktısı 1 olmalı; PostUp satırındaki arayüz adını düzeltin
Sayfalar açılmıyor, IP ile ping çalışıyorDNS sorunuİstemcideki DNS satırını kontrol edin
İki istemci aynı anda bağlanamıyorAynı tünel adresi kullanılmışHer istemciye ayrı adres verin

Servis günlüklerine journalctl -u wg-quick@wg0 ile bakabilirsiniz. Ekip büyüdükçe kullanıcı sayısını ve trafik hacmini düşünerek kaynakları planlayın; yoğun kullanımda ayrılmış çekirdekli bir VDS sunucu daha tutarlı performans verir.

Kendi VPN sunucunuzu kullanırken nelere dikkat etmelisiniz?

Kendi VPN sunucunuzu yalnızca kendi erişiminiz ve ekibiniz için, yürürlükteki yasalara ve sağlayıcınızın kullanım koşullarına uygun biçimde kullanmalısınız. VPN üzerinden çıkan tüm trafik sunucunun IP adresiyle görünür; bu nedenle tünelden yapılan kötüye kullanımın sorumluluğu sunucu sahibine döner.

  • Yapılandırma dosyalarını kişiye özel üretin; bir dosyayı birden fazla kişiyle paylaşmayın.
  • Ayrılan çalışanın [Peer] bölümünü hemen silip servisi yeniden başlatın.
  • VPN sunucusunu güncel tutun ve SSH erişimini anahtarla sınırlandırın; genel önlemler için sunucu güvenliği kontrol listesi yazısına bakın.
  • Yönetim panelleri gibi hassas servisleri internete kapatıp yalnızca 10.8.0.0/24 aralığına açarak VPN’i bir erişim katmanı olarak kullanın.

Sık Sorulan Sorular

WireGuard mı OpenVPN mi daha iyi?

İkisi de güvenilir VPN çözümleridir. WireGuard çok daha kısa yapılandırma ister, Linux çekirdeğinde çalıştığı için genellikle daha yüksek hız ve daha düşük gecikme sunar ve ağ değişimlerinde hızlı yeniden bağlanır. OpenVPN ise TCP üzerinden çalışabilmesi ve kullanıcı adı ile parola tabanlı kimlik doğrulama gibi ek seçenekleri nedeniyle bazı kurumsal senaryolarda hâlâ tercih edilir.

WireGuard hangi portu kullanır?

WireGuard yalnızca UDP kullanır ve yaygın olarak 51820 numaralı port tercih edilir; ancak bu zorunlu değildir. Port numarasını sunucudaki ListenPort satırında ve istemcideki Endpoint satırında birlikte değiştirebilirsiniz. Hangi portu seçerseniz seçin, sunucu güvenlik duvarında ve varsa sağlayıcının ağ güvenlik duvarında o UDP portuna izin vermeniz gerekir.

WireGuard sunucusuna kaç kişi bağlanabilir?

WireGuard’ın yapılandırmada belirlenmiş düşük bir kullanıcı sınırı yoktur; her istemci ayrı bir Peer bölümüyle eklenir ve 10.8.0.0/24 aralığı yüzlerce adres sağlar. Pratik sınırı sunucunun işlemci gücü ve bant genişliği belirler. Küçük ve orta ekipler için küçük bir VPS genellikle yeterlidir; yoğun trafik bekleniyorsa kaynakları buna göre seçin.

WireGuard ile sadece şirket sunucularına mı bağlanabilirim?

Evet. İstemci yapılandırmasındaki AllowedIPs değerini tüm trafik yerine yalnızca şirket ağı aralığıyla, örneğin 10.8.0.0/24 ile sınırlarsanız buna bölünmüş tünel (split tunnel) denir. Bu durumda yalnızca o aralığa giden trafik VPN’den geçer, internet trafiğiniz normal bağlantınızı kullanmaya devam eder. Uzaktan erişim için en sık tercih edilen düzen budur.

WireGuard IPv6 destekliyor mu?

Evet, WireGuard hem tünel içinde hem de tünelin taşıyıcı bağlantısında IPv6 kullanabilir. Tünelde IPv6 için Address satırına bir IPv6 adresi eklemeniz, sysctl ile IPv6 yönlendirmesini açmanız ve ip6tables için karşılık gelen NAT ya da yönlendirme kurallarını yazmanız gerekir. Yalnızca IPv4 yapılandırılmışsa istemcinin IPv6 trafiği tünel dışından gidebilir.

  • #wireguard kurulumu
  • #wireguard ubuntu
  • #kendi vpn sunucum
  • #wg0.conf
  • #wg-quick
  • #vpn sunucusu kurma
  • #wireguard istemci
  • #site to site vpn
X LinkedIn WhatsApp