Windows İşletim Sisteminde Ipsec Uygulaması

Eyl 06, 2013
Ipsec (Ip Security-İnternet Protokol Güvenliği), IETF (Engineering Task Force-İnternet Mühendisliği Görev Gücü) tarafından geliştirilmiş, şifreleme ve güvenlik hizmetlerini kullanarak İnternet Protokollerinin güvenliğini sağlayan bir güvenlik protokolüdür. Ipv4 (İnternet Protokolü Sürüm 4) geliştirilirken güvenlik göz ardı edildiğinden alınan paketler içerisindeki veriler ip paketlerinin dinlenmesi halinde okunabilmektedir ve bu durum veri trafiğinin güvensizliğinin bir kanıtıdır.  Ipv6 (İnternet Protokolü Sürüm 6) ‘da standart güvenlik protokolü olarak kullanılan Ipsec, Ipv4 ağlarına da uyarlanabilecek şekilde geliştirilmiştir. Ipsec mimarisi, end to end (uçtan uca) bir güvenlik modelidir. Yani sadece iletişimde bulunan iki uç noktanın Ipsec kullanması yeterlidir. Veri iletimi sırasında kullanılan ağ cihazlarının, router (yönlendirici), switch (anahtar), bridge (köprü), Ipsec kullanacak şekilde yapılandırılmasına gerek yoktur. Bu da, mevcut ağ altyapısında herhangi bir değişiklik yapılmadan Ipsec kullanılmasına imkan sağlar.

Ipsec 'in güvenlik mimarisini oluşturan 3 bileşeni bulunmaktadır;
  • Confidentially (Veri Gizliliği): Ağ üzerinde taşınan verilerin şifrelenerek,  ele geçirilmesi halinde okunmamasının sağlanmasıdır. Ipsec bu işlemi gerçekleştirmek için DES (Data Encryption Standard-Veri Şifreleme Standardı), 3DES (Triple DES-Üçlü DES), AES (Advanced Encryption Standard-Gelişmiş Şifreleme Standardı) şifreleme anahtarlarını kullanır.

  • Integrity (Veri Bütünlüğü): Gönderilen paketin içeriğinin alıcıya ulaşana kadar değiştirilip değiştirilmediğinin ya da açılıp açılmadığının algılanmasını sağlar. Ipsec veri bütünlüğünü korumak için temelde MD5 (Message Digest 5-Mesaj Özümleme 5) ve SHA–1 (Secure Hash Algorithm- Güvenli "Hash" Algoritması)  "hash" fonksiyonlarını kullanır.

  • Authentication (Kimlik doğrulama): Ipsec iletişim içerisindeki  makinelerin kimliklerinin doğrulanmasını sağlayarak güvenliği arttırmaktadır. Ipsec kullanan iki makinenin Ipsec trafiğini başlatabilmesi için aynı kimlik doğrulama metotlarını kullanması gerekmektedir. Ipsec’ nin desteklediği temelde 3 farklı kimlik doğrulama yöntemi bulunmaktadır;

    • Kerberos: Active Directory Domain (Aktif Dizin Etki Alanı) yapısında kullanılan temel kimlik doğrulama yöntemidir. Bu metodda bir Kerberos sunucu etki alanında bulunan tüm bilgisayarlar ve kullanıcılar için gizli anahtarları yönetir. Bir bilgisayar diğer bir bilgisayarın kimliğini doğrulamak istediğinde Kerberos sunucuya başvurur. Bu yöntem aynı etki alanında olan istemciler için yüksek güvenlik sağlamaktadır.
    • Certificate Authority (Sertifika Yetkilisi): Bu kimlik doğrulama metodunda bilgisayarlar birbirlerinin kimliklerini doğrulamak için sayısal sertifikaları kullanırlar. Her iki bilgisayarın da güvendiği CA(Certificate Authority- Sertifika Yetki Belgesi) tarafından imzalanan sertifikalar aracılığıyla kimlik doğrulama işlemi gerçekleşir.
    • Preshared Key (Önpaylaşımlı Anahtar): Ipsec ile görüşecek olan makinelerin kendi aralarında görüşmek için belirledikleri ortak bir anahtar kullanımı esasına dayanır. Tarafların belirlediği bir anahtar ve bu ortak anahtarın tutulması sayesinde kimlik doğrulama gerçekleşmiş olur.

Security Negotiation (Güvenlik Görüşmeleri)

Ipsec kullanarak iletişim kuracak bilgisayarların iletişim sırasında kullanılacak metodların hangileri olacağını belirleme işlemine SA (Security Associations-Güvenlik İlişkileri) denir. Her bir SA’ da aşağıdaki parametreler belirlenir;

  • Şifreleme Algoritması (DES, 3DES, AES)
  • Oturum Anahtarı: IKE (Internet Key Exchange- İnternet Anahtar Değişimi) aracılığıyla belirlenir.
  • Kimlik Doğrulama Algoritması (SHA 1, MD5)

Ipsec’ nin 2 temel uygulama şekli bulunmaktadır;

  • Transport Mode (Aktarma Modu):  Transport Mode (Aktarma Modu)’ nda  güvenlik  aynı yerel ağ içerisinde bulunan cihazların kullanabildiği, OSI (Open Systems Interconnection- Açık Sistem Arabağlantısı) katmanlarından Transport (Aktarım) Katmanı ve üzerindeki katmanlarda sağlanan bir özelliktir.

  • Tunnel Mode (Tünel Modu): Tünel modu farklı ağlar arası iletişim, verilerin farklı ağlardan geçişi sırasında kullanılır. Şifreleme işlemi veriler ağdan çıkış yaparken Gateway(Ağ Geçidi) üzerinden yapılır. Ipsec tünel modda kullanıldığında iç ağlarda Ipsec kullanmaya gerek yoktur çünkü IP paketleri kendi ağ geçitlerinde şifrelenir ve hedef sisteme teslim edilmek üzere karşı ağ geçidine gönderilir. Bu modda ağ geçidi olarak bir tünel sunucusu, yönlendirici, firewall (güvenlik duvarı) veya VPN (Virtual Private Network- Sanal Özel Ağ) cihazı kullanılabilir.
     

Ipsec Protokolleri

Ipsec IP trafiğini korumak için 2 protokol kullanır.

  • AH (Authentication Header – Kimlik Denetimi Başlığı): Temel olarak kimlik doğrulama ve veri bütünlüğü sağlar, ancak veri şifreleme desteği yoktur bu yüzden tek başına kullanılması durumunda güvenlik açığı oluşturabilir.İletim esnasında olası değişiklerin önüne geçmek  ve IP Paketinin bütünlüğünü korumak için çeşitli algoritmalar kullanarak IP Paketine sıra numarası verir, IP Paketi hedefine ulaştığında aynı algoritma kullanılarak sıra numarası tespit edilir. Eğer alıcı tarafına paketler sıra numarasına uymayacak şekilde ulaşırsa paketler kabul edilmez.  AH, HMAC(Hash-based Message Authentication Code-Hash Bazlı Mesaj Kimlik Denetimi Kodu) algoritmalarını kullanarak tüm paketi imzalar ve paket içerisinde kaynak-hedef adresler ile birlikte taşınana verinin iletim sırasında değiştirilmemesini sağlar.



  • ESP (Encapsulating Security Payload – Kapsüllenen Güvenlik Yükü): Temel olarak kimlik doğrulama, veri bütünlüğü ve veri şifrelemeyi sağlar. AH tarafından sıralanmış IP paketlerini algoritmalardan faydalanarak şifreler ve hedefe ulaştığında da bu şifreleri çözümler. Böylece AH tarafından oluşabilecek güvenlik açığının önüne geçilmiş olur.
     

Uygulama

Bu uygulamada ipsec yapılandırması ve bu yapılandırmanın bilgisayarlara dağıtılması işlemi için Active Directory (Aktif Dizin) ve Group policy (Grup İlkesi) kullanılarak windows 2008 r2 server üzerinde Gptest.com domaini idari-> users(kullanıcılar) altındaki kullanıcıların bilgisayarlarında http ve https olmak üzere internete bağlanmalarını engelleyecek bir GPO (Group Policy Object-Grup İlke Nesnesi) oluşturulacaktır.

  1. Start (Başlat)--> Administrative Tools (Yönetici Araçları)--> Group Policy Management (Grup İlke Yöneticisi) açılır. Daha önceden hazırlanmış olan GPtest.com etki alanındaki users (kullanıcılar)' a sağ tıklanıp Create a GPO in this domain, and Link it here (Bu etki alanında bir GPO yarat ve buraya bağla) seçilir.



  2. Açılan pencerede  GPO (Group Policy Object-Grup İlke Nesnesi) için isim istenmektedir. Name (isim) kısmına "ipblock on http-https (http ve https üzerinde ip engeli)" yazılarak OK tıklanır.



  3. Yaratılan  GPO (Group Policy Object-Grup İlke Nesnesi)'  nun üzerine sağ tıklanıp Edit (düzenle) seçilir.



  4. Computer Configuration (Bilgisayar Yapılandırması)--> Policies (İlkeler)--> Windows Settings (Windows Ayarları)--> IP Security Policies on Active Domain (aktif etki alanı üzerindeki ip güvenlik ilkeleri)' ne sağ tıklanarak Create IP Securtiy Policy (Ip güvenlik ilkesi yarat) seçilir ve bir sonraki pencerede Next (İleri) tıklanır.



  5. Açılan pencerede oluşturulacak ilke için IP Security Policy Name (ip güvenlik ilkesi ismi) istenmektedir. Name (isim) kısmına bu uygulama için ipblock on http-https girilir ve Next (ileri) tıklanır. Bir sonraki yapılandırma ekranında “Activate the default response rule (earlier versions of Windows only)(Sadece windows'un önceki sürümleri için varsayılan yanıt kuralını etkinleştir)" seçilerek Next (ileri) tıklanır.



  6. Bu uygulama aynı etki alanındaki kullanıcılarda uygulanacağından Authentication Rule (Kimlik Doğrulama Kuralı) olarak Kerberos seçilir. Ancak yetkili bir sertifika bulunuyorsa ya da şifre girilmek isteniyorsa diğer metodlar da kullanılabilir. Active Directory default (Kerberos V5 Protocol) (Varsayılan aktif dizin Kerberos Sürüm 5 Protokolü) seçilir ve Next (ileri) tıklanır.



  7. Edit properties (Özellikleri düzenle) aktif hale getirilip Finish (Bitir) tıklanır.



  8. Add (Ekle) ve Ok (Tamam) tıklanır. Açılan pencerede Next (İleri) tıklanır.



  9. Tunnel Endpoint (Tünel bitiş noktası) için bir ip belirtilebilir veya bu uygulamada olduğu gibi tünel belirtilmeyebilir. ”This rule does not specify a tunnel (Bu kural bir tünel belirtmemektedir)” seçilir ve Next (İleri) tıklanır.



  10. Açılan pencerede bu kuralın uygulanacağı ağ tipi için All Network Connections( Tüm Ağ Bağlantıları), LAN(Yerel Ağ) veya Remote Access (Uzaktan Erişim) seçilebilir. Bu uygulamada “All Network Connections” seçilir ve Next (İleri) tıklanır. 



  11. Yeni bir IP Filte List (ip filtre listesi) oluşturulacağından Add (Ekle) tıklanır.



  12. Name (İsim) kısmına ip filtresi için isim yazılır ve Add (Ekle) tıklanır.



  13. Source address (Kaynak Adres) “My IP address (Benim ip adresim)”, destination address (Hedef Adres) “Any IP Address (Her ip adresi)” seçilir. Mirrored (Ayna) özelliği ihtiyaca bağlı olarak seçilir. Eğer Mirrored işaretli olursa aynı kuralın tam tersi de yazılmış olur. Protocol (Protokol) sekmesine geçilir.



  14. Protocol type (Protokol Tipi) TCP, From any port (Her bağlantı noktası) ve To this port (Bu bağlantı noktasına) 80 seçilerek OK (Tamam) tıklanır, http için gereken ayarlama yapılmış olur. Https için de aynı işlem To this port 443 olacak şekilde ayarlanarak tekrarlanır. Ipblock on http-https adında bir ip filtre listesi oluşturulmuş oldu. Ok (Tamam) ve Next (İleri) tıklanır.



  15. Bu adımda oluşturulan bu ip filter list (ip filtre listesi) için bir kural belirlenecektir. Add (Ekle) tıklanır.



  16. Security Methods (Güvenlik Metodları) Permit (izin), Block (engel) ve Negotiate Security (güvenli görüşme) seçeneklerinden bu uygulamanın amacına uygun olarak block (engelle) seçilir ve General (Genel) kısmına da bu filter action (filtre davranışı) için kolaylık olması açısından isim olarak ipblock on http-https girilir.



  17. Oluşturulan filter action ipblock on http-https seçilerek Next (İleri) tıklanır.



  18. Uygulanan özellikleri son kez kontrol etmek için Edit Properties (özellikleri düzenle) işaretlenebilir. Finish (Bitir) tıklanır.