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, 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.