WireGuard VPN Server Kurulumu

Bugün sizlere basit bir şekilde Wireguard vpn sunucusu nasıl kurulur bundan bahsedeceğim, Debian işletim sistemi üzerinde hem detaylı hem de kurulum betiği ile anlatım yapacağım. İster uzman olun isterseniz de acemi olun kolay bir şekilde kurulumu tamamlayabilirsiniz.

WireGuard Nedir?

WireGuard aktif olarak Jason A. Donenfeld tarafından geliştirilmektedir, kararlı bir sürümü henüz çıkartılmadı, ancak buna rağmen popüler OpenVPN protokolünden dört kat daha hızlı ve karşılaştırmalarda çok daha düşük ping süresi ile kararlı bir şekilde çalıştığı gözlemlenmiştir.

Her ne kadar Türkiye üzerinde kullanımlarda ping faydası sağladığını görmüyor olsak da hız konusunda rakiplerine göre oldukça büyük farklar yaratabiliyor.

wireguard

WireGuard, SSH uygulamasını yapılandırmak kadar basit olmayı amaçlamaktadır. Sunucu ile istemci arasındaki SSH anahtarları gibi bir ortak anahtar değişimi ile bir bağlantı kurulur ve sadece sunucu yapılandırma dosyasında bulunan ortak anahtarı olan bir istemci yetkilen dirilir.

Wireguard’ın birtakım rekabetleri ortadan kaldırması;

  • Ortak anahtar değişimi kullanılır.
  • Son teknoloji şifreleme algoritmaları ile çalışır. (ChaCha20, Poly1305)
  • Kaynak kodu rakiplerine oranla daha az satırlıdır.
    Böylece kolay bir şekilde güvenlik açıkları için denetlenebilir.
  • Gizlidir, herhangi bir kimliği doğrulanmamış pakete yanıt vermez ve her iki tarafın kullanacağı veri olmadığı zaman çalışmaz.
  • Kurulumu ve kullanımı kolaydır.

Wireguard VPN Sunucusu Kurulumu Nasıl Yapılır?

Debian üzerinde ki depolarda wireguard bulunuyor. Lakin hala stable sürüm olmadığı ve debia’nın şartlarını geçemediği için unstable reposunu sisteme dahil etmemiz gerekiyor.

Bu işlemi aşağıdaki gibi basit bir şekilde yapabilirsiniz.

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard-dkms wireguard-tools

Hemen ardından sistemde anahtar değişimi için kullanılacak olan genel ve gizli anahtarları üreteceğiz. Sırasıyla;

  • server_private
  • server_public
  • client_private
  • client_public
wg genkey | tee server_private | wg pubkey > server_public
wg genkey | tee client_private | wg pubkey > client_public

Sunucu yapılandırması

Sunucuda /etc/wireguard/wg0.conf adlı bir dosya oluşturun ve aşağıdaki yönergeleri takip ederek yapılandırmayı tamamlayın.

[Interface]
Address = 10.10.100.1/24
PrivateKey = 
ListenPort = 51820
PostUp = echo nameserver 8.8.8.8; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true
[Peer]
PublicKey = 
AllowedIPs = 10.10.100.2/32

AllowedIPs = 10.10.100.2/32 yönergesini görüyorsunuz, yalnızca 10.10.100.2‘ye sahip bir istemci’nin ve doğru gizli anahtara sahip olmak, wireguard VPN tünelinde kimlik doğrulamasına izin vermesini sağlayarak gelişmiş güvenlik önlemi sağlar.
ListenPort kullanacağınız udp bağlantı noktasıdır. Farklı bir tane kullanılabilir.

Sunucuda IP Forwarding etkinleştirme

/etc/sysctl.conf dosyasını düzenleyin ve aşağıdaki satırı bulup gerektiği gibi değiştirin.

net.ipv4.ip_forward=1

Tabii sunucuyu yeniden başlatma gerektirmemesi adına da aşağıdaki adımı gerçekleştirmenizi öneririm. Gereksiz yeniden başlatmalar hoş olmuyor.

sysctl -p
echo 1 > /proc/sys/net/ipv4/ip_forward

İstemci yapılandırması

İstemci de wg0-client-london.conf adlı bir dosya oluşturup aşağıdaki gibi içerisini düzenleyin. Bu dosya adımız önemli değil istediğiniz bir şeyler yazabilirsiniz. Sunucu tarafında uygulanan yapılandırmaya benzer şekilde olduğunu göreceksiniz.

[Interface]
Address = 10.10.100.2/32
PrivateKey = 
[Peer]
PublicKey = 
Endpoint = :51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

Wireguard VPN tüneli üzerinden istemci de ki tüm trafiğe izin verecek ve yönlendirecektir. Sadece VPN üzerinden trafik akışı sağlanacaksa bu aralığın daraltılmasını şiddetle öneririm.

Her şey tamamlandığını gördükten sonra servisleri başlatmaya geldi sıra.

chown -v root:root /etc/wireguard/wg0.conf
chmod -v 600 /etc/wireguard/wg0.conf
wg-quick up wg0
systemctl enable [email protected]

Ardından ifconfig diyerek çalışıp çalışmadığını gözlemleyebilirsiniz. wg0 olarak gözünüze çarpmalıdır.

Güvenlik Duvarı Yapılandırması

Bağlantıların başarılı bir şekilde sağlanması için birtakım portlara izin vermemiz gerekecek.

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 51820 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.100.0/24 -o eth0 -j MASQUERADE

Sonra yapılan bu işlemleri kalıcı hale getirmek için persistent paketini kurup güvenlik duvarı kuralları bunun içerisine aktarımını sağlayalım.

apt-get install iptables-persistent
systemctl enable netfilter-persistent
netfilter-persistent save

Başarılı bir şekilde Wireguard VPN sunucusunu yapılandırdık. İsterseniz bu aşamaları otomatik kurulum betiği ile kolayca geçebilirsiniz.

Wireguard VPN Otomatik Kurulum Betiği

Kurulum için aşağıdaki adımları gerçekleştirmeniz yeterlidir. Ardından Wireguard VPN makineniz kurulmuş olacaktır, Kurulumu yapabilmeniz için minimum 128 Mb Ram ve 1 core işlemci gerekmektedir.

cd ~ && wget https://git.io/JJgrX -O WireguardInstall.sh
chmod +x WireguardInstall.sh
./WireguardInstall.sh

Diğer teknolojilere alternatif olarak kullanabileceğiniz bu teknolojiye zamanla alışacağınıza eminim. VPN kullanmadan yasaklı web sitelerine erişmek isteyenler Yasaklı Sitelere Giriş: GoodbyeDPI Kullanım Rehberi makalesine göz atabilirsiniz.

Share this:

Leave a Comment