Watchguard IPSec Site-to-Site VPN Phase 1 & Phase 2 Parametreleri – Tek Merkezden İnternet Çıkışı Konfigürasyonu
Makalemizde Site-to-Site VPN kurulumu içerisinde istenen bazı detaylı ayarlamalara değineceğim. Çözümpark içerisinde Site-to-Site konfigürasyonunun nasıl yapılacağına dair bir makale mevcut. Fakat VPN konusunda sadece iki lokasyon arasında tünel oluşturmak çoğu şirketin gereksinimlerinin altında kalıyor ve Watchguard konusunda fazla deneyimli olmayan IT personeli istenen konfigürasyonları oluşturma noktasında bazı sıkıntılar yaşıyor. IPSec terimlerinden ve ne işe yaradıklarından da biraz bahsedeceğim. Eminim makalede işinize yarayacak şeyler bulacaksınızdır.
Site-to-Site VPN Watchguard üzerinde BOVPN(Branch Office VPN) diye tanımlanmaktadır. BOVPN iki farklı network’ün, güvenli olmayan bir network üzerinde(İnternet) , şifreli(encyrpted) ve doğrulanmış(authenticated) bir bağlantı üzerinden datan alış-verişi yapmalarına olanak sağlayan bir methoddur.
İki farkı lokasyondaki gateway cihazları, arkasında bulunan bütün bilgisayarlar adına IPSec encapsulation işlemini gerçekleştirir. Gateway cihazının arkasında bulunan cihazların(PC,phone) üzerinde herhangi bir yazılım bulunmasına gerek yoktur ve gateway tarafında gerçekleştirilen IPSec encapsulation işleminden haberi olmayacaktır.
XTM cihazları güvenli networklerinden gelen ve giden trafiği incelerler. Hangi trafiği şifreleyeceğini(encyrpt) bilir, kaynak ve hedef IP bilgilerine, VPN ayarlamalarına bakarak karşı networke trafiği yönlendirir.
IPSec standardı içerisinde birçok farklı protokol barındırır. BOVPN, içerisinde 30’dan fazla settings bulunmaktadır. Bir XTM cihazında yapılan konfigürasyonun aynısı, karşı taraf(peer device) üzerinde de aynı olmalıdır. Daha doğrusu phase1 & phase2 diğerleri aynı, IP bilgileri ise tam tersi olacak şekilde konfigüre edilmelidir.
Şimdi IPSec VPN içerisinde portları, protokollleri ve trafik çeşitlerini bir inceleyelim:
Ports,Protocols,and IPSec VPN Traffic Types
UDP port 500: Internet Security Association and Key Management Protocol(ISAKMP) and Internet Key Exchange(IKE)
Data VPN üzerinden gönderilmeden önce, iki cihaz birbirlerine bir dizi mesaj iletirler. Buna “negotiation” denir. Bu negotiation işlemi UDP port 500 üzerinden gerçekleşir. Eğer iki tarafta da bu UDP port 500 açık değilse, IPSec VPN çalışmayacaktır.
UDP port 4500: NAT Traversal(NAT-T)
NAT Traversal özelliği, IPSec özelliği olmayan NAT cihazlarından doğan sınırlandırmaları ortadan kaldırmak için kullanılır. Eğer XTM cihazınız, NAT yapan başka bir cihazın arkasındaysa bu sefer VPN negotiation trafiği ve bütün alt trafik UDP port 4500 üzerine kaydırılır. NAT-T, XTM üzerinden gelen IPSec encapsulated trafiğin NAT cihazı tarafından tekrar re-encapsulate edilmesi engeller.
IP Protocol 50 – Encapsulating Security Payload(ESP)
VPN negotiation başarı ile tamamlandığında, iki network arasında trafik güvenli bir şekilde ESP ile iletilir. ESP gelen trafiğin hem doğruluğunu(authenticated) sağlar hem de trafiği IP datagramları ve IP Protocol 50 içerisinde şifreler(encyrpted).
IP Protocol 51 – Authentication Header(AH)
İki cihaz arasındaki negotiation tamamlandıktan sonra, ESP’ye benzer şekilde trafiği encapsulate eder. AH, tarfiği şifrelemez sadece doğruluğunu yani sadece doğru kaynaktan gelip gelmediğini test eder. Encyrption işlemini yapmadığı için günümüzde pek kullanıldığı söylenemez.
IP Protocol 50 ve 51 birer port değildir, ESP ve AH port bağımlı değildir. ICMP(IP protocol 1),TCP(IP Protocol 6) veya UDP(IP Protocol 17) gibi port bağımsız protokollerdir.
VPN Negotitions Hakkında
İki IPSec gateway cihazı kendi aralarında VPN oluşturmak istedikleri zaman, encryption ve authentication hakkında bir dizi mesaj paylaşırlar ve birçok farklı parametreler üzerinde uzlaşırlar. İşte bu işlemin tümüne “VPN negotiations” denir.
VPN negotiations iki farklı faz içerisinde gerçekleşir: Phase1 & Phase2
Phase 1
Bu fazın asıl amacı Phase 2 negotiation’ın gerçekleşebileceği güvenli bir tünel oluşturmaktır. Phase 1 başarılı bir şekilde bittiği zaman, XTM cihazları hızlıca Phase 2 aşamasına geçerler. Eğer Phase 1 aşaması tamamlanmamışsa, Phase 2 başlamayacaktır.
Phase 2
Bu fazın amacı da, iki cihazın üzerinden hangi trafiğin geçeceği, authentication ve encyrption type’lar gibi bir dizi parametreler üzerinde bir uzlaşmaya varmaktır. Bu uzlaşmaya “Security Association” denir.
Terimler ve Açıklamalar
Bu kısımda da VPN konfigürasyonları içerisinde gördüğümüz terimleri kısaca açıklayacağım.
AES(Advanced Encryption Standart)
En güçlü şifreleme algoritmasıdır.128,192 ve 256 bit uzunluğunda anahtarlara sahip versiyonları mevcuttur.
3DES’den daha kullanılışlı ve güvenlidir.
AH(Authentication Header)
RFC 2402 içerisinde tanımlandığı üzere, AH IP Datagramlarının içerisine authentication bilgileri yerleştirir. AH encryption sağlamadığı için VPN içerisinde kullanımı tercih edilmez.
DES(Data Encryption Standart)
Hala kullanımda olan eski bir şifreleme algoritmasıdır.56 bit uzunluğunda bir encryption key kullanır.
3DES(Triple-DES veya Three-DES)
DES baz alınarak oluşturulmuş bir şifreleme algoritmasıdır. İlk önce DES algoritması data’yı encryption key ile şifreler ve daha sonra son hali bir kere daha DES ile fakat bu sefer farklı bir key ile şifrelenir. Son olarak da, datanın en son hali ilk key ile tekrar şifrelenir.
ESP(Encapsulating Security Payload)
RFC 2406 içerisinde tanımlandığı üzere, ESP datanın gizliliğini ve bütünlüğünü sağlar. Data paketinin payload’unu alır ve onu encyrpt edilmiş data ile değiştirir. Datanın bütünlüğünü ve doğru kaynaktan gelip gelmediğini test eder.
Hash(Data üzerinde uygulanan bir matematiksel dönüştürme işlemi)
Bu matematiksel işlem data’yı input olarak alır ve hash ya da hash value dediğimiz bir output üretir. Eğer data transferinden önce ve sonra alınan hash değerleri birbirleri ile eşleşiyorsa data bütünlüğü korunmuş demektir.
IPSec
Güvenli olmayan bir network’de(internet) iki cihaz arasındaki iletişimin güvenliğini sağlayan şifreleme servislerinin ve güvenlik protokollerinin toplamıdır.
Key Expiration
Phase 1 ve Phase 2 oturumları da kullanılan encyrption key’ler belirli periodlar ile değişir.
MD5(Message Dİgest)
MD5 bir hash algoritmasıdır. SHA-1 ise daha güçlü bir hash algoritmasıdır.
PFS(Perfect Forward Secrecy)
Anahtarlama işlemi sırasında kullanılan bir anahtarın diğer anahtar üretiminde kullanılmamasını sağlar. Böylece atak yapan biri tarafından key’lerden biri ele geçirilse bile diğer anahtar hakkında bir bilgi sahibi olamayacaktır.
VPN terimlerini ve ne anlama geldikleri öğrendirdiğimize göre şimdi basit bir Site-to-Site Konfigürasyonu yapalım:
Oluşturacağımız senaryoda iki loasyonun network ve dış ip bilgileri aşağıdaki gibi olsun:
Lokasyon A
Dış Ip: 213.75.198.88
Local Network: 192.168.1.0/24
Lokasyon B
Dış Ip:213.188.199.99
Local network: 192.168.2.0/24
İlk önce yapmamız gereken VNP Gateway’ini ayarlamak ve burada phase tanımlamalarını yapmak:
İlk önce Lokasyon A’da bulunan cihazın konfigürasyonu ile başlayalım:
Policy ManageràVPNàBranch Office GatewaysàAdd New Gateways
General Settings bölümünde Gateway için bir isim veriyorsunuz. Ben Lokasyon A dedim. İki farklı credential method bulunmakta.”IPSec Firebox Certificate” ve “Pre-Shared Key”.Bu makalede Pre-Shared Key methodunu kullanacağız. Bu metot da iki tarafa da aynı pre-shared key’i girmeniz gerekmektedir.
Daha sonra “Add” diyerek gateway tanımlamalarını yapıyoruz.
Local Gateway kısmına kendi dış ip’mizi Remote Gateway kısmında da IP address seçip karşı tarafın ip adresini giriyoruz. Daha Sonra Phase 1 ayarlamalarını yapıyoruz:
Burada dikkat edilmesi gereken nokta, eğer iki tarafta da Watchguard XTM cihazı bulunuyor ise “IKE Keep-alive” enable edilmelidir. Fakat eğer karşı taraf wathcguard değilde başka bir IPSec cihazı ise “Dead Peer Detection” enable edilmelidir. Aynı anda ikisini de enable etmeyiniz. Bizim senaryomuzda iki lokasyonda da Watchguard XTM cihazı bulunduğu için “IKE Keep-alive” özelliğini aktif ettik.
Burada Phase 1 parametrelerini belirliyoruz. Daha öncede belirttiğimiz gibi cihazda dabu değerler eşleşmeli. Phase 1 kısmında birden fazla transform grubu girilebilir. Ve XTM bunlardan hangisi karşı taraf ile eşleşiyorsa onu kullanır.
Şimdi Phase 2 ayarları ve tunnel settings ayarlamalrını yapacağız:
Policy ManageràVPNàBranch Office TunnelsàAdd
Bu kısımda “Gateway“ olarak biraz önce oluşturduğumuz Lokasyon A’yı seçiyoruz. Ve “Tunnel Name” alanına bir isim veriyoruz. Tunnel A diyebilir basit bir şekilde. Daha sonra “Add” diyerek tunnel bilgilerini giriyoruz. ”Local” kısmına kendi networkumuzu, ”Remote” da karşı tarafın network bilgilerini giriyoruz.
Daha sonra Phase 2 ayarlamalarını yapıyoruz. Gene önemli bir nokta, burada girilen değerlerin hepsi karşı taraf ile aynı olmak zorunda. Dikkat çekmek istediğim bir husus: Bazı IPSec cihazlarda aktarılan trafik değeri üzerinde “ Force Key Expiration” özelliği bulunmamakta. Bu nedenle eğer karşı taraftaki cihazda(Watchguard olmayan senaryodan bahsediyorum) bu özellik yok ise, watchguard phase 2 ayarlarında da disable edilmelidir.
Ve böylece Lokasyon A tarafındaki Watchguard üzerinde gerekli işlemler yapılmıştır.
Bu konfigürasyonu yaptıktan sonra “BOVPN-Allow.out” ve “BOVPN-Allow.in” adında iki tane kural firewall kurallarının içerisine otomatik olarak eklenecektir.
Bu kurallar sizin VPN trafiğinize izin veren kuraldır.
Şimdi aynı Lokasyon B ‘de bulunan cihazda da aynı işlemleri yapmalıyız. Tek farklı olması gereken Gateway IP ve Tunnel subnetleri.
Şimdi diğer cihazın konfigürasyonu nasıl olmalı bakalım:
Burada da Loca gateway kısmında Lokasyon B’nin dış ip’si, Remote Gateway kısmında da lokasyon A’nın dış ip bilgileri olmak zorunda.Phase1 ve Pre-Shared key değerleri aynı olmalıdır.
BOVPN Tunnel değerleri ise aşağıdaki gibi olmalıdır.
Gene burada da, Local kısmına Lokasyon B’nin network bilgileri, Remote kısmına da Lokasyon A’nın network bilgileri girilmelidir. Phase 2 değerleri aynı olmalıdır.
Artık iki lokasyon arasında Site-to-Site VPN kurulmuş oldu.
Şirketlerin ihtiyacına ve taleplerine göre sayısız VPN knofigurasyonu ve topology’si yapılabilir. Örneğin VPN gateway’leri arasında failover istenebilir, http trafiğinin ayrı bir BOVPN üzerinden VoIP trafiğinin ayrı bir BOVPN üzerinde gitmesi gibi…Tabi hepsini bu makalede göstermenin imkânı yok fakat genelde müşterilerden gelen istek tek merkezden internet çıkışın sağlanması yönünde.
Şimdi yukarıdaki senaryoyu tekrar ele alalım ve lokasyon B’nin Lokasyon A üzerinden internete çıkmasını sağlayalım:
Bu durumda tek değiştirilmesi gereken kısım BOVPN Policy Tunnels kısmındaki girilen değerlerdir.
Lokasyon A tarafında olması gereken konfigürasyon aşağıdaki gibidir:
Lokasyon B’de bulunan wathguard üzerinde de aşağıdaki tunnel konfigürasyon’u olmalıdır:
Bu senaryoda Lokasyon A ve Lokasyon B arasında BOVPN oluşturulmuş ve Lokasyon B’nin tüm internet trafiği aradaki tünelden geçip Lokasyon A de bulunan Watchguard üzerinden geçmektedir.