Cisco ISE – WLC, Active Directory Enteg. Ve Central Web Auth.

Merhaba arkadaşlar,

 

Bu yazımda,  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.

1_external identity

 

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)

2_Ad_add

 

Submit ettiğiniz zaman karşınıza ISE sunuculularınızın ismi gelecel ve yanlarında “Not Joined” ifadesi yer alacak

 

Not_join

 

 

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

 

4_join

 

 

 

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.

 

join_ok

 

 

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.

 

7

 

 

 

Ş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)

 

8

 

 

 

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

 

1_Auth

 

 

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.

 

2_Account

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 “

3_ISE

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

4_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.

5_Flow

 

 

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.

 

 

 

 

6_ssid

 

 

7_mac_filter

 

 

8_AAA

 

 

9_advanced

 

 

 

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.

10_ISE_Only

 

 

 

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.

 

11_ISE_Policy

 

 

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  

 

12_Result

 

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.

13

 

 

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.

 

15

 

 

Ş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.

 

14

 

Burada da şunu dedik, kullanıcı “Wireless_MAB” üzerinden geliyorsa “WLAN ID 14” ise ve Belirttiğim domainde ise”   “Wireless_Ogrenci” result uygula.

16

 

 

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.

 

Teşekkürler

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*