Cisco ISE – WLC Active Directory Entegrasyonu ve Central Web Authentication
ISE- Active Directory, ISE-Cisco WLC entegrasyonu ve yayınlayacağınız SSID ile active directory kullanıcılarını Central Web Authentication (CWA) üzerinden kablosuz ağınıza bağlanabilmesi için gerekli ayarları yapılandıracağız.
Yazımıza geçmeden önce ezber mantığını kırmak adına ISE ve WLC den kısaca bahsedelim.
Identity Services Engine (ISE) , cisco tarafından networkünüzü (kablolu-kablosuz) uçtan uca güvenlik altında tutabilmenizi sağlayan merkezi bir policy management yazılımıdır. Şirketinizde kullandığınız, IP phone, IP camera, smartphone, tablet v.b cihazlar networkünüze bağlanmak istediğinde bu cihazlar için oluşturduğunuz profillerin access control kurallarına tabi tutulur ve sizin istediğiniz özellikleri karşılamıyorsa (OS check, A.v Check, Username pass v.s ) ya cihazı networke dahil etmez ya da belirlediğiniz bir guest vlan’a otomatik olarak düşmesini sağlar. Kısaca ISE size networkünüzde sizden habersiz kuş uçmasına izin vermeyen 802.1x çözümü diyebiliriz.
WLC, Cisco firmasının accesspoint’leri yönettiği ve monitör ettiği wireless controller mimarisidir.
ihtiyacımız olacak bileşenleri belirtelim.
· Active Directory(Wireless kullanıcı auth. için)
· Cisco ISE
Şirketinizde kullandığınız ISE yapısı distributed bir mimari ise ISE admin node’a bağlanıp
Administraor -> Identity Managment –> External Identity Sources alanına gelelim.
Identity alanına değinmemizde fayda var,
Identities, ISE’ın local user database’inde kullanıcı tanımlandığı alan.
External Identity, ISE’ın entegre çalışabileceği LDAP, Radius, Active Directory mimarilerinin tanımladığı alan.
Identity Source Sequences, ISE’ı farklı user db’ler ile entegre ettiğinizde (A.D, LDAP, RSA, Radius Token Server ) bunları tek kuralda kullanmak isteyebilirsiniz. Bu alanda tek bir grup oluşturup ilgili kurala atadığınızda, kullanıcı hangi mimariyi kullanıyorsa bu grubun içindeyse authentication işlemi gerçekleşecektir.
Bu kısa bilgilendirmeden sonra external Identity alanına gelip active directory sekmesine gelip yeni bir Scope ekleyelim. Ben scope adı olarak “Aydin” diye açıyorum.
Not: Bu işlemlere geçmeden önce lütfen ISE makinanızın DNS üzerinde HOST A kayıtı olduğundan emin olun
Açtığınız scope altına gelerek “Add” dediğinizde karşınıza “ Join Point Name” ve “Active Directory Domain “ alanları gelecek,
“Join Point Name” alanına description giriyoruz
“Active Directory” alanına Domain adımızı giriyoruz (gokhanyuceler.local gibi)
Submit ettiğiniz zaman karşınıza ISE sunuculularınızın ismi gelecel ve yanlarında “Not Joined” ifadesi yer alacak
Kurumunuz bizimki gibi 40 bin kişiye hizmet veriyorsa ISE mimariniz ister istemez distributed mimaride oluyor bu yüzden bu alanda iki veya daha çok ISE makinanızı görebilirsiniz.
“Not Joined” demesi bizi şuan ilgilendirmiyor çünkü tabiri caizse ISE makinalarımızı daha domain’e almadık.
Şimdi ilgili ISE node’u seçip join tabı aktif olacak ve karşımıza çıkan pencere AD üzerinde yetkili kullanıcı adı ve şifresini tanımlayacağız.
Kullanıcı adı – şifre girdikten sonra karşımıza, biraz önce “not joined” yazan alanın yerine, yeşil check box ile “Domain Controller” alanında DC Server’ın adı görülecek ve başarılı bir entegrasyon gerçekleştiğini anlayacağız.
Diyelim ki bir hata aldınız, bu entegrasyon hangi aşamada hata verdi diye düşünmeyin onun yerine, aynı alanda hata veren node’u seçin ve “ Diagnostic Tool ” alanına geldiğinizde karşınıza, entegrasyonun tamamlanabilmesi için gerekli olan bütün ayarları kontrol edebileceğiniz pencere gelecek ve burada node’u seçip “ Run All Tests “ dediğinizde bütün kontrolleri yapıp size nerede hata olabileceğini bildirecek.
Şimdi entegrasyonu yaptık yapmasına fakat ISE’ın DC üzerinde sorgu çekerken hangi Organization Unit üzerinde kontrolleri yapmasını gerektiğini belirtmedik. Bu alanı tanımlamazsak, siz ne kadar entegre ederseniz edin çalışmayacaktır.
“Groups” sekmesine gelip, “Domain Users” grubunu eklemeniz yeterli olacaktır. (Bütün kullanıcılar için geçerli olmasını istiyorsanız)
Evet arkadaşlar, ISE ile Active Directory yapımızın entegrasyonunu sağladık ve şimdi de ISE-WLC entegrasyonuna geçebiliriz.
Burada yapacağımız ilk işlem WLC ye bağlanıp RADIUS sunucu ayarlarında AAA (Authentication, Authorization, Accounting ) tanımlarını gerçekleştireceğiz. Bu sayede, yayınlayacağımız SSID’ye bağlanan kullanıcıları ISE servera yönlendirip kullanıcı adı-şifre işlemlerini buraya sormasını sağlayacğız.
Security -> AAA -> RADIUS -> Authentication –New
Server IP address alanında unutulmaması gereken, standalone bir yapıda tüm servisler tek server üzerinde olduğu için admin node ve policy node aynı makinada kurulu olacak ve bunun IP adresini yazmanız gerekecek.
Bu aşamadan sonra bir alt sekmesinde yer alan “ Accounting ” alanına gelelim ve “New” diyerek yeni bir
Accounting tanımı oluşturuyoruz.
Not: Server Status kısmının enable olmasına dikkat edelim.
Burada önemli bir bilgi aktarmakta fayda var. Bazı WLC image’larına bug olduğu aşikar ve bu alanda status disable konuma gelebiliyor (Restart edildiğinde v.s). Bunun için ciddi araştırmalardan sonra nedenini çözsemde, geçici bir çözüm olarak CLI üzerinden bağlanıp aşağıdaki komutlar ile tekrar ilgili ayarları ekleyerek aktif hale getirebilirsiniz.
“ radius auth add 2 Server_IP 1812 ascii Password ”
“ radius acct add 2 Server_IP 1813 ascii Password ”
Buradaki işlemleri bitirdikten sonra ISE tarafına geçip WLC yi ekleyelim.
“ Administration -> Network Resources -> Network Devices -> Add “
Baktığımız zaman ISE tarafına WLC yi eklemek çok zor bir işlem değil. Network device alanında ISE tarafına switch tanımlamak ile WLC yi tanımlamak aynı işlem.
Debug işlemi için WLC üzerinde CLI ya bağlanıp,
“Debug aaa all enable “
Komutunu çalıştırırsanız debug için size yardımcı olacaktır.
ISE tarafında da debug için birçok yöntem söz konusu bunlardan birtanesi de
Operations -> Troubleshooting -> EndPoint Debug
WLC ip adresini yazdıktan sonra debug işlemina başlayalım ve çıkan log dosyasını analiz ederek nerede hata ile karşılaştığımızı tespit edebiliriz.
Buraya kadar yaptığımız işlemleri özetleyecek olursak,
· ISE ile active Directory entegrasyonunu yaptık
· ISE, AD üzerinden sorgu çekerken hangi OU altına bakacağını belirttik.
· WLC – ISE entegrasyonunu tanımladık,
Şimdi WLC üzerinde bir SSID tanımlayıp ISE ile ilgili ayarları yapılandırma işlemine geçmeden önce, arka planda neler gerçekleştiğine adım adım bakalım.
Tabloda özet olarak,
· Kullanıcı ilgili SSID’ye bağlanıyor,
· WLC, kullanıcıyı URL redirect ile (80 veya 443) guest portal’a yönlendiriyor
· Kullanıcı, username-password girdikten sonra ISE bunu üzerinde tanımlı ACL’ler ile karşılaştırıyor
· ISE tarafında ilgili result ve policy’leri karşılıyorsa, WLC ye access accept gidiyor ve kullanıcı auth oluyor
· Bu aşamaları karşılamıyorsa re-aut gidiyor ve bağlantı sağlanamıyor.
SSID oluşturma işlemine başlayabiliriz,
Wlan -> Create New profil adımızı yazıyoruz ve “ WLAN ID “ belirtiyoruz. Wlan ID bizim için önemli olacak çünkü ISE tarafında bir kural yazarken WLAN ID’yi seçerek tanımlayacağız.
Burada dikkat edilmesi gereken en önemli nokta, “ Override Interface ACL” burası için tanımlayacağınız ACL ile kullanıcının ISE ile auth işlemi başlayıp bitene kadar nerelere erişebilmesi gerektiğini tanımlıyorsunuz
Not: Temel olarak DHCP, DNS ve ISE server ve ilgili porta vermeniz yeterli.
Evet WLC tarafında yapmanız gereken işlemler bu kadar şimdi de ISE tarafında işlemleri yapalım.
ISE tarafında kural yazarken firewall mantığı geçerlidir ve yukarıdan aşağı doğru bir sorgulama mantığı vardır. WLC, kullanıcıyı ISE tarafında yönlendirdiği zaman ISE’ın URL redirect işlemini yapabilmesi için öncelik ile bir WEB_Redirection result yazmalıyız. Result, Authorization policy ve condition diye farklı kavramlardan bahsedeceğiz. Bu tanımlardan bahsederken kafanız karışmaması adına bunları biraz olsun açıklamaya ve ISE tarafında bir kuralın nasıl okunması gerektiğine değinelim.
ISE’a bir kullanıcı geldiği zaman en üstteki kuraldan başlayarak kontrol ediyor. İlk kuralımızda
“Wireless_Ogrenci_WebAuth” için, eğer WLAN ID _14 ve External_Groups olarak belirttiğim domainde ise Permission olarak Wireless_Ogrenci izinlerini uygula.
Conditions; Kuralın kimleri kapsayacağını belirttiğiniz alan
Result : Condition’ların örtüşmesi halinde uygulanacak kuralların oluşturulduğu alan
Authorization : Policy’lerin oluşturulduğu yer.
İlk olarak wireless’a bağlanacak kullanıcıları redirect etmek için Result yazalım.
Policy -> Result -> Authorization -> Authorization Profiles -> Add
Bu işlemi yaptıktan sonra ,
Condition tanımlayacağız ve Wireless’dan gelen kullanıcıları redirect et diyeceğiz.
Redirect kurallarını en alta tanımlamanız gerekiyor. Eğer bu kuralı ortalarda kullanırsanız bütün (Kablosuz) kullanıcılar buraya uğrar ve bir alt kurala geçmeden web_redirect sayfası karşısına gelir.
Wireless MAB ve WLAN ID 14 den gelenleri biraz önce tanımladığımız redirect sayfasına yönlendirdik.
WLAN ID kısmı, bizim WLC üzerinde SSID oluştururken kullandığımız ID olacak. Bu aşamadan sonra belirttiğimiz SSID’ye bağlanan kişi karşısına aşağıdaki gibi bir sayfa ile karşılaşacak.
Şimdi kullanıcıyı redirect ettik ve sıra geldi, kullanıcı redirect sayfasına username_pass girdiğinde bunu kontrol edecek ve ilgili result’u uygulayacak policyi yazmaya.
Bunu yazmak için mutlaka biraz önce dediğim gibi redirect kuralının üzerine tanımlamamız gerekiyor.
Burada da şunu dedik, kullanıcı “Wireless_MAB” üzerinden geliyorsa “WLAN ID 14” ise ve Belirttiğim domainde ise” “Wireless_Ogrenci” result uygula.
Authenticate olmuş kullanıcıya uygulanacak ACL’i tanımlamak için WLC üzerinde ACL alanında Kısıtlı_ACL diye bir tanımlama yaptım ve bu kullanıcılar sadece ACL içinde belirttiğim yerlere erişim gerçekleştirebiliyorlar.