Wireguard Tunnel Oluşturma
Last updated
Last updated
Wireguard, bir ağ güvenliği teknolojisidir. Bu teknoloji, ağ trafiğini şifreleyerek ağın güvenliğini artırır ve aynı zamanda hızlı bir şekilde işlem yapar. Wireguard'ın kodu diğer VPN teknolojilerine göre daha küçük ve daha basit olduğu için, onu diğerlerinden daha hızlı hale getirir. Wireguard, VPN teknolojisi kullanarak ağ trafiğini güvenli bir şekilde yönlendirir ve bu sayede ağın güvenliğini artırır.
Web Arayüzünde Configuration –> Network -> Tunnel -> Wireguard arayüzünde daha önce oluşturulan wireguard tüneller düzenlenebilir veya sağ üstte yer alan New Wireguard butonuyla yeni wireguard tüneli oluşturma arayüzüne geçiş yapılabilir
Wireguard Tünel konfigürasyonunda aşağıdaki adımları inceleyeceğiz:
Server modunda Wireguard oluşturulması
Server modunda oluşturulan Wireguard Tünelin Public Key bilgisinin edinilmesi
Client modunda Wireguard oluşturulması
Client modunda oluşturulan Wireguard Tünelin Public Key bilgisinin edinilmesi
Oluşturulan Client Wireguard tünelin peer olarak Server Wireguard tünel içerisinde tanımlanması
Yukarıda örnek bir Server modunda çalışan Wireguard tünel konfigürasyonu bulunmaktadır. Bu adımda belilenen parametreler için dikkat edilmesi gereken noktalar şunlardır:
ID değeri oluşturulan Wireguard Interface için özgün belirteçtir ve wireguard tünel oluşturulduktan sonra bu değer değiştirilemez.
IP Address değeri oluşturulan Wireguard Tünelin sahip olacağı IP adresidir. Sadece IP adresi veya IP/Netmask yapısıyla belirtilmesi gereklidir.
Private Key değeri sağda yer alan anahtar butonuyla otomatik oluşturulabilir. Oluşturulan Wireguard tünelin kriptolojik işlemler için oluşturulması zorunludur.
Mode değeri senaryomuzun bu adımında server modunda wireguard tüneli oluşturulmak istendiği için Server olarak belirlenmelidir.
Listen Interface değeri Targitas’ın wireguard trafiği için hangi ağ arayüzünün (Interface) kullanılacağı belirtir. Senaryomuzda Egress Interface, ethernet 1/1/3 olduğu için bu şekilde bir konfigürasyon gerçekleştirilmiştir.
Port değeri 5.adımda belirtilen Listen Interface’e gelen trafik içerisinden hangi port değerine yönelik gelen trafiğin Server modunda çalışan Wireguard tünele aktaracağını belirtir.
Konfigürasyon işlemleri gerçekleştirildikten sonra sağ altta yer alan Apply butonu sayesinde gerçekleştirilen işlemlerin kaydedilmesi gereklidir.
1.3 adımında Client modunda Wireguard tünel oluşturulması için gerekli olan Server modundaki Wireguard tünele ait Public Key bilgisine erişmek için Targitas’a CLI veya SSH üzerinden bağlantı kurulması gereklidir.
CLI erişimi sağlandıktan sonra show interface wireguard [ID] komutuyla oluşturulan Wireguard tüneline ait bilgiler elde edilebilir.
! [ID] değeri yerine 1.1. maddede oluşturulan Wireguard tünelin ID değeri yerleştirilmelidir.
Senaryomuzda 10.10.12.240 IP adresinde çalışan Targitas’a ssh bağlantısı kurduktan sonra show interface wireguard 1 komutunu çalıştırıyoruz.
! Eğer CLI arayüzüne erişim konusunda sıkıntı yaşıyorsanız Targitas CLI Arayüzüne Giriş dokümantasyonundan faydalanabilirsiniz.
Yukarıdaki örnekde beyaz arka plan ile gösterilen wireguardpubkey değerini kaydetmemiz gereklidir. wireguardpubkey değer wireguard tünel konfigürasyonunda belirlenen Private Key kullanılarak gerçekleştirilen kriptolojik işlemlerin ardından oluşturulur. Asimetrik şifreleme güvenliği için bu yapı gereklidir.
Oluşturulan Wireguard tünel ile eşleştirilecek tüm Client modundaki Wireguard tüneller için aynı wireguardpubkey değeri kullanılacaktır.
CLI arayüzünde enable komutu ile geçiş yapılabilen hostname# prompt bölümünde kullanılabilir generate-wireguard-key komutu ile yeni Private Key ve Pre-Shared Key oluşturulabilir. Bu komut sadece örnek Key oluşturulmasını sağlar Wireguard konfigürasyonunda herhangi bir parametreyi değiştirmez.
Bu adımda aralarında Wireguard tünel kurulacak diğer Targitas’ta konfigürasyon gerçekleştirilmesi gereklidir. 1.2 adımında belirlenen wireguardpubkey ve Pre-Shared Key bu adımda kullanılacaktır.
Yukarıda örnek bir Client modunda çalışan Wireguard tünel konfigürasyonu bulunmaktadır. Bu adımda belilenen parametreler için dikkat edilmesi gereken noktalar şunlardır:
ID değeri oluşturulan Wireguard Interface için özgün belirteçtir ve wireguard tünel oluşturulduktan sonra bu değer değiştirilemez
IP Address değeri oluşturulan Wireguard Tünelin sahip olacağı IP adresidir. Sadece IP adresi veya IP/Netmask yapısıyla belirtilmesi gereklidir. Örnek Senaryomuzda Server modundaki Wireguard tünelin IP adresi: 169.254.1.1/24 Örnek Senaryomuzda Server modundaki Wireguard tünelin IP adresi: 169.254.1.2/24 olarak belirlenmiştir.
Private Key değeri sağda yer alan anahtar butonuyla otomatik oluşturulabilir. Oluşturulan Wireguard tünelin kriptolojik işlemler için oluşturulması zorunludur.
Mode değeri senaryomuzun bu adımında client modunda wireguard tüneli oluşturulmak istendiği için Client olarak belirlenmelidir.
Server IP değeri, Server modunda çalışan Wireguard tünelin Listen IP değeri olması gereklidir. Örnek senaryomuzda bu değer Private IP olan 10.10.12.240 değeridir. Gerçek bir senaryoda bu değer Public IP değeri olabilir. Dikkat edilmesi gereken nokta Client modunda çalışan Wireguard tünelin belirtilen Server IP değerine ulaşabilmesi gerekliliğidir.
Server Public Key, 1.2. adımda elde edilen wireguardpubkey değeri ile aynı olması gereklidir. Client tünelden server tünele gidecek olan trafik wireguardpubkey ile şifrelenecektir ve sadece Server modunda çalışan Wireguard tünelin Private Key’i ile açılabilir. Wireguardpubkey değeri doğru olmaması durumunda wireguard trafiği sağlanamaz.
Port değeri, Server modunda oluşturulan Wireguard tünel konfigürasyonunun 6. adımında belirlenen port değeri ile aynı olması gereklidir.
Pre Shared Key değeri, 1.2. adımda elde edilen Pre Shared Key değeri ile aynı olması gereklidir.
Allow From değeri ile Wireguard tünelin kullanılması için bir Access Control List oluşturulabilir.
Konfigürasyon işlemleri gerçekleştirildikten sonra sağ altta yer alan Apply butonu sayesinde gerçekleştirilen işlemlerin kaydedilmesi gereklidir.
1.2. adımda Server modunda oluşturulan Wireguard tünelin Public Key bilgisinin edinilmesi için gerçekleştirilen adımların aynısı bu adımda Client modunda oluşturulan Wireguard tünelin Public Key bilgisini elde etmek için gerçekleştirilir.
Client modundaki Wireguard tünele ait Public Key bilgisine erişmek için Targitas’a CLI veya SSH üzerinden bağlantı kurulması gereklidir.
Senaryomuzda Client modunda Wireguard tüneli konfigürasyonu 10.10.12.241 IP adresinde çalışan Targitas üzerinde gerçekleştirilmiştir. Targitas’a ssh bağlantısı kurduktan sonra show interface wireguard 1 komutu sayesinde Public Key bilgisine erişebiliriz.
! Eğer CLI arayüzüne erişim konusunda sıkıntı yaşıyorsanız Targitas CLI Arayüzüne Giriş dokümantasyonundan faydalanabilirsiniz.
Yukarıdaki örnekde beyaz arka plan ile gösterilen wireguardpubkey değerini kaydetmemiz gereklidir. wireguardpubkey değer wireguard tünel konfigürasyonunda belirlenen Private Key kullanılarak gerçekleştirilen kriptolojik işlemlerin ardından oluşturulur. Asimetrik şifreleme güvenliği için bu yapı gereklidir.
Bu adımda 1.1. adımda Server modunda Wireguard tünel konfigürasyonunun gerçekleştirildiği web arayüzünde son konfigürasyon adımı gerçekleştirilmelidir.
1.1 adımda oluşturulan ID değerine sahip Wireguard tüneli için sol başta yer alan Kalem butonuyla Wireguard tüneli düzenleme arayüzüne geçiş yapılması gereklidir.
Wireguard Tünel düzenleme arayüzünde Peers bölümünün altındaki New Peer butonu sayesinde oluşturulan server modundaki wireguard tünel ile client modundaki wireguard tüneli eşleştirme konfigürasyonunun gerçekleştirileceği Peer arayüzüne geçiş yapılabilir.
Geçiş yapılan New Peer arayüzünde 1.3. adımda belirlenen ve 1.4. adımda elde edilen Client’a ait Remote IP adresi, Peer Public Key gibi değerler ve belirlenen Pre Shared Key değeri kullanılarak Server ve Client Wireguard tüneller arasında eşleşme sağlanacaktır.
Yukarıda örnek bir Peer konfigürasyonu bulunmaktadır. Bu adımda belilenen parametreler için dikkat edilmesi gereken noktalar şunlardır:
Server modunda çalışan bir Wireguard Tünel birden fazla Client modunda çalışan Wireguard tünel ile eşleştirilebilir. Network yönetimini kolaylaştırmak için oluşturulan Wireguard Peer konfigürasyonuna görevini ifade eden bir isim verilmesi önerilir.
Remote IP değeri, Client Modunda çalışan Wireguard tünelin IP adresidir.
Peer Public Key, 1.4. adımda elde ettiğimiz Client Modunda çalışan Wireguard tünel için wireguardpubkey değeridir. Server tünelden Client tünele gidecek olan trafik belirlenen wireguardpubkey ile şifrelenecektir ve sadece Client modunda çalışan Wireguard tünelin Private Key’i ile açılabilecektir.
Allow From değeri ile Wireguard tünelin kullanılması için bir Access Control List oluşturulabilir.
Pre Shared Key değeri, 1.3. adımda Client tarafında belirlenen Pre Shared Key ile aynı olması gereklidir.
Konfigürasyon işlemleri gerçekleştirildikten sonra sağ altta yer alan Apply butonu sayesinde gerçekleştirilen Peer konfigürasyonun kaydedilmesi gereklidir.
Server modunda çalışan Wireguard tünel üzerinde gerçekleştirilen konfigürasyon işlemlerinin kaydedilmesi için de sağ altta yer alan Apply butonuna tıklanılması gereklidir.
Görselde beyaz arka planlı bölümde last handshake değeri Wireguard tüneller arasında başarılı bir şekilde bağlantı kurulabildiğini gösterir. Görseldeki kırmızı ve mavi oklarda gösterildiği gibi Server tarafındaki wireguardpubkey ile Client tarafındaki wireguardpeer değeri ile Client tarafındaki wireguardpubkey ile Server tarafındaki wireguardpeer değeri aynı olmalıdır.
Yukarıda görselde beyaz arka plandaki görselde belirtildiği gibi pre-shared-key değeri Client Wireguard Tünel ve Server Wireguard Tünel tarafında da aynı olması gereklidir.
Gerçekleştirdiğimiz konfigürasyon adımlarıyla birlikte iki cihaz arasında kurulan wireguard tüneli üzerinden şifrelenmiş trafik başarılı bir şekilde aktarılabilir.