WireGuard Konfigürasyonu Nasıl yapılır?

WireGuard Konfigürasyonu Hakkında Bilgilendirme

WireGuard Konfigürasyonu Nasıl yapılır? Size bunu anlatacağım. Önce ufak bir bilgi vermek istiyorum. Günümüzde yaygın olarak kullanılan VPN protokolleri OpenVPN ve IPsec’dir. OpenVPN ayarlarının kolay yapılması nedeniyle IPsec’e göre daha fazla tercih ediliyor. Milyonlarca kullanıcı tarafından bu protokoller kullanılsa da, bu protokollerin belirli sorunları mevcut. Bu sorunlardan birisi protokollerin karmaşık yapıda olmalarıdır. Örneğin OpenVPN protokolü yaklaşık olarak 120.000 kod satırından oluşuyor.

Hız açısından sınıfının en iyisi konumunda yer alıyor. SSSE3, AVX, AVX2, AVX512 ve NEON hızlandırma geliştirmelerini şifreleme protokolünde kullanıyor. Modern ChaCha20 şifreleme algoritmasını da kullandığından hemen hemen her donanımda çok hızlı şekilde çalışıyor. Yapılan testlerde de ilgili grafikte göreceğiniz gibi bant genişliği ve ping süresi açısından rakiplerine fark atıyor.

WireGuard en hızlı VPN protokolü olmakla kalmıyor, aynı zamanda da şifreleme mekanizması matematiksel olarak da ispatlanmış. WireGuard küçük ve kolaylıkla kontrol edilebilen kodlarıyla birlikte güvenlik açısından da oldukça güvenilir bir konumda.

Adım 1: Sunucu üzerine WireGuard Kurma

WireGuard Konfigürasyonunu yapabilmek için WireGuard repository sini eklememiz gerekiyor. Sonrasında WireGuard kurulumunu yapacağız.

add-apt-repository ppa:wireguard/wireguard
apt-get update
apt-get install wireguard-dkms wireguard-tools linux-headers-$(uname -r)

Adım 2: WireGuard Konfigürasyonu Anahtarları üretme

Sunucu üzerinde public ve private olmak üzere anahtar üretimi yapacağız.

umask 077
wg genkey | tee server_private_key | wg pubkey > server_public_key

Adım 3: Sunucu WireGuard Konfigürasyonu ayarlarının yapılması

Verilen isimde “/etc/wireguard/wg0.conf” sunucu konfigürasyon dosyası oluşturulur. Oluşturulan dosya içine aşağıdaki gibi config ayarları yapılır.

[Interface]
Address = 10.100.100.1/24
SaveConfig = true
PrivateKey = 
ListenPort = 51820
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]
PublicKey = 
AllowedIPs = 10.100.100.2/32
Adress: VPN Interfacesinin kullanacağı IP adresi.                                                                Private Key: Adım 2 deki oluşturulan private key buraya yazılır.              ListenPort: VPN sunucusunun dinleyeceği port adresi.                           PostUp: VPN Interfacesini aktif ettiğimiz zaman verilen firewall komutları çalışacaktır.                                                                PostDown: VPN interfacesi down edildiği zaman verilen firewall komutları çalıştırılacaktır.                                                           PublicKey: Sunucuya bağlanacak olan clientin public keyi(Bu keyi ilerleyen kısımda oluşturacağız)                                                      AllowedIPs: Bağlanan clientin private IP adresi.

Adım 4: IPv4 yönlendirilmesinin aktif edilmesi.Sunucuya gelen client isteklerinin sunucunun router görevi görerek yönlendirebilmesi için aşağıdaki ayarlamalar yapılır.“/etc/sysctl.conf” dosyası açılır ve aşağıdaki değer yorum satırından kaldırılır.

net.ipv4.ip_forward=1

Adım 5: Yapılan ayarın aktif olabilmesi için ya sunucu restart edilmeli ya da sunucuyu restart etmek istemiyorsak aşağıdaki komut çalıştırılmalıdır.

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

Adım 6: WireGuard’ı başlatma

WireGuard başlatılır ve sunucu restart olduğunda WireGuard’ın otomatik başlaması için WireGuard enable edilmelidir.

chown -v root:root /etc/wireguard/wg0.conf
chmod -v 600 /etc/wireguard/wg0.conf
wg-quick up wg0
systemctl enable wg-quick@wg0.service 

Adım 7: Client üzerine WireGuard kurulumu

Kurulumu yapabilmek için WireGuard repository sini eklememiz gerekiyor. Sonrasında WireGuard kurulumunu yapacağız.

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard-dkms wireguard-tools linux-headers-$(uname -r)

Adım 8: Client Keylerini üretme

Client üzerinde public ve private olmak üzere anahtar üretimi yapacağız.

wg genkey | tee client_private_key | wg pubkey > client_public_key

Adım 9: Client Konfigürasyon ayarlarının yapılması

Client üzerinde “/etc/wireguard/wg0-client.conf” dosyası oluşturulur ve aşağıdaki konfigürasyonlar yapılır.

[Interface]
Address = 10.100.100.2/32
PrivateKey = 
DNS = 8.8.8.8

[Peer]
PublicKey = 
Endpoint = :51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21
Address: Client private IP adres (Bunu VPN sunucusu üzerinde verdiğimiz IP adresi olduğunu belirteyim)                                                                                  PrivateKey: Client üzerinde ürettiğimiz private key.                                              DNS: DNS adresi girilir. Ben örnek olarak Google DNS adresini girdim.                   
PublicKey: Sunucunun public IP adresi.                                                                Endpoint:<WireGuard Sunucu IP adresi>:51820                             AllowedIPs: WireGuard sunucunun IP adresi yazılabilir ya da bu şekilde kalabilir.

Adım 10: Client tarafında WireGuard çalıştırılır.

sudo wg-quick up wg0-client

Adım 11: wg0 Komutu çalıştırılarak bağlanan client ları gözlemleyebiliriz.

wireguard client keys
“wg” komut çıktısı. Peer yazan kısımVPN sunucusuna bağlanan client bilgilerini göstermektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir