DEV Community

Cover image for WireGuard ile Point-to-Point VPN Kurulumu
Erenalp Tekşen
Erenalp Tekşen

Posted on

WireGuard ile Point-to-Point VPN Kurulumu

Bu doküman, erişilebilir bir uzak sistem ile yerel bir Linux sistemi arasında WireGuard kullanarak point-to-point VPN bağlantısının nasıl kurulacağını anlatmaktadır.

WireGuard; hızlı, sade ve modern kriptografi kullanan bir VPN çözümüdür. Geleneksel VPN çözümlerine kıyasla çok daha az konfigürasyon gerektirir ve düşük kaynak tüketimi ile yüksek performans sunar.

Gereksinimler

  • Uzakta çalışan ve erişilebilen bir Linux makine (örneğin VPS, fiziksel sunucu veya yönlendirilmiş bir NAT cihazı)
  • Yerel bir Linux sistem (örneğin dizüstü bilgisayar, ofis sunucusu)
  • Her iki uçta root/sudo erişimi
  • İnternet bağlantısı ve gerekiyorsa güvenlik duvarı izinleri

1. WireGuard Kurulumu

sudo apt update
sudo apt install wireguard -y
Enter fullscreen mode Exit fullscreen mode

WireGuard kurulumunun ardından, her iki uç için ayrı ayrı anahtar çifti oluşturulması gerekmektedir.

2. Anahtar Üretimi

wg genkey | tee privatekey | wg pubkey > publickey
Enter fullscreen mode Exit fullscreen mode

Bu komut ile her cihaz için bir özel ve bir genel anahtar üretilmiş olur. Genel anahtar karşı tarafa verilir, özel anahtar ise yalnızca yerel cihazda kalmalıdır.

3. Yapılandırma Örnekleri

Aşağıdaki örneklerde, sunucu 10.0.0.1 adresini, istemci ise 10.0.0.2 adresini kullanmaktadır. Her iki uç, aynı sanal ağ (örneğin 10.0.0.0/24) içinde yer almalıdır.

Not: İstemci konfigürasyonundaki Endpoint = <sunucu_ip>:51820 satırı, istemcinin sunucuya hangi IP ve port üzerinden bağlanacağını belirtir. Bu IP, genellikle sunucunun public IP adresidir veya eğer aynı ağ üzerindeyseler, sunucunun erişilebilir lokal IP'si de olabilir. Eğer sunucu NAT arkasındaysa, bu port yönlendirilmiş olmalıdır. Bu satır olmadan istemci bağlantıyı başlatamaz.

Sunucu (10.0.0.1)

[Interface]
PrivateKey = <sunucu_private>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <istemci_public>
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25
Enter fullscreen mode Exit fullscreen mode

İstemci (10.0.0.2)

[Interface]
PrivateKey = <istemci_private>
Address = 10.0.0.2/24
ListenPort = 51821

[Peer]
PublicKey = <sunucu_public>
Endpoint = <sunucu_ip>:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25
Enter fullscreen mode Exit fullscreen mode

4. Firewall Ayarı (Sunucu)

sudo ufw allow 51820/udp
# veya
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
Enter fullscreen mode Exit fullscreen mode

Sunucunun güvenlik duvarı yapılandırması, UDP 51820 portunun dışarıdan ulaşılabilir olmasını sağlamalıdır.

5. Servis Başlatma

sudo systemctl start wg-quick@wg0
sudo systemctl start wg-quick@wg1
Enter fullscreen mode Exit fullscreen mode

Servisler başladıktan sonra, VPN tüneli otomatik olarak kurulacaktır.

6. Bağlantı Kontrolü

sudo wg show
ping 10.0.0.1
ping 10.0.0.2
Enter fullscreen mode Exit fullscreen mode

wg show komutu ile bağlantı durumu ve handshake zamanları takip edilebilir. ping komutları ise veri iletiminin sağlıklı çalıştığını gösterir.

Yeni Peer Ekleme (10.0.0.3)

WireGuard tek bir peer ile sınırlı değildir. Aynı sunucuya birden fazla istemci bağlanabilir. Bunun için sunucuya yeni [Peer] blokları eklenir.

Sunucuya ek:

[Peer]
PublicKey = <yeni_peer_public>
AllowedIPs = 10.0.0.3/32
PersistentKeepalive = 25
Enter fullscreen mode Exit fullscreen mode

Yeni istemci konfigürasyonu:

[Interface]
PrivateKey = <peer_private>
Address = 10.0.0.3/24
ListenPort = 51822

[Peer]
PublicKey = <sunucu_public>
Endpoint = <sunucu_ip>:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25
Enter fullscreen mode Exit fullscreen mode

WireGuard ile sade, modern ve hızlı VPN yapıları kurmak oldukça esnektir. Bu yapı hem kişisel projelerde hem de üretim ortamlarında güvenle kullanılabilir.

Top comments (0)