Kurumsal kablosuzda 802.1X
- Paylaşılan parolanın yetmediği yerde 802.1X'in üç rolünü, EAP yöntemlerini ve her bağlantıyı bir kullanıcıya bağlayan RADIUS kaydını çözersin.
- 802.1X her kullanıcıyı ayrı doğrular ve merkezi bir sunucudan yetki alır.
- Bağlantı akışını, hesap tutmayı ve RADIUS taşımasının güvenliğini göreceksin.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Ev ağında herkes aynı parolayı yazar ve aynı anahtarı paylaşır. Küçük bir ağda bu sorun çıkarmaz. Yüzlerce çalışanı olan bir kurumda ise ciddi bir açığa döner.
Parolayı bilen herkes bağlanır ve kim olduğu anlaşılmaz. Bir çalışan ayrılınca parolayı değiştirmek gerekir, çünkü tek anahtar herkese aittir. Değiştirmezsen eski çalışan yine bağlanabilir.
Altay Kargo büyüyüp iki yüz çalışana ulaşınca ağ ekibi bu sorunla yüzleşir ve paylaşılan paroladan vazgeçer. Yerine 802.1X adlı port tabanlı erişim denetimini kurarlar. Bu derste 802.1X'in üç rolünü, EAP yöntemlerini ve her bağlantının nasıl tek bir kullanıcıya bağlandığını çözeceksin.
Üç rol ve EAP çerçevesi
802.1X üç rol tanımlar. Birincisi istemcidir (supplicant); bağlanmak isteyen cihazın üstünde çalışan yazılımdır. İkincisi erişim noktasıdır (authenticator); isteği taşır ve karar verilene kadar portu kapalı tutar. Üçüncüsü karar veren kimlik doğrulama sunucusudur; bu görevi genelde bir RADIUS sunucusu üstlenir.
Önemli nokta şudur: erişim noktası kararı kendisi vermez. Bir kapı görevlisi gibi davranır, isteği sunucuya iletir ve sunucunun kararını uygular. Bu ayrım sayesinde binlerce erişim noktası tek bir merkezden yönetilir.
Doğrulama trafiği EAP çerçevesinde taşınır. EAP (Extensible Authentication Protocol, RFC 3748) tek bir yöntem değil, bir çerçevedir. İçine farklı doğrulama yöntemleri takılır ve her yöntem kimliği başka bir kanıtla sınar. RADIUS'un kendisi ise RFC 2865'te tanımlanır ve erişim noktası ile sunucu arasındaki dili belirler.
İstemci ile sunucu EAP konuşur, erişim noktası bu EAP mesajlarını RADIUS paketlerine sarıp taşır. Böylece yöntem değişse bile taşıma düzeni aynı kalır.
Etkinlik 1 / 6
Her rolü 802.1X akışındaki karşılığıyla eşle.
Bağlantı akışı
Bağlantı her zaman aynı sırayla ilerler. İstemci erişim noktasına bağlanmak ister, ama port kapalıdır; yalnız EAP trafiğine izin verilir. Erişim noktası isteği RADIUS sunucusuna iletir. Sunucu, seçilen EAP yöntemine göre kimliği doğrular ve gerekirse birkaç tur mesaj alışverişi yapar.
Doğrulama olumluysa sunucu erişim noktasına bir izin mesajı yollar. Port tam o anda açılır ve istemci normal trafiğe geçer. Doğrulama olumsuzsa port kapalı kalır ve istemci yalnız reddi görür. Bu akışta adım atlanmaz; port en son, sunucudan izin gelince açılır.
Portun iki durumu vardır. Doğrulama bitene kadar port yetkisiz durumdadır ve yalnız EAP trafiğini geçirir; başka hiçbir paket iç ağa ulaşamaz. Sunucudan izin gelince port yetkili duruma geçer ve normal trafiğe açılır.
Kullanıcı ağdan ayrılınca ya da bağlantı düşünce port yeniden kapanır. Bu durum geçişleri, erişimin kapıda değil merkezde kararlaştığını somutlaştırır. Yanlış yapılandırılmış bir anahtar, doğrulama olumsuz olsa bile portu açık bırakabilir; bu yüzden port durumunu da izlemek gerekir.
Akışta iki ayrı dil konuşulur. İstemci ile erişim noktası arasında EAPOL, yani EAP'ın yerel ağ taşıması çalışır. Erişim noktası ile RADIUS sunucusu arasında ise RADIUS paketleri gider.
Erişim noktası bir çevirmen gibidir: EAPOL çerçevesini açar, içindeki EAP mesajını alır ve bir RADIUS paketine koyar. Bu yüzden bir sorunu ayıklarken hangi bacakta tıkandığına bakarsın; istemci tarafı mı, yoksa sunucu tarafı mı sessiz kaldı. İki bacağı ayrı ayrı izlemek, hatayı yarı yarıya daraltır.
$ eapol_test -c istemci.conf -a 192.0.2.10 -p 1812 -s ortaksir ... RADIUS message: code=11 (Access-Challenge) identifier=1 length=64 RADIUS message: code=2 (Access-Accept) identifier=2 length=176 MPPE keys OK: 1 mismatch: 0 SUCCESS
eapol_test, laboratuvarda bir 802.1X yapılandırmasını denemenin en pratik yoludur. -c ile istemci yapılandırmasını, -a ile sunucu adresini, -p ile portu (RADIUS için 1812), -s ile ortak sırrı verirsin. Araç bir erişim noktası gibi davranıp RADIUS sunucusuna istek yollar.
Çıktıdaki RADIUS kodları akışı özetler: code=11 Access-Challenge sunucunun ek bilgi istediğini, code=2 Access-Accept doğrulamanın geçtiğini, code=3 Access-Reject ise reddedildiğini söyler. En altta SUCCESS ya da FAILURE yazar. Bu çıktıyla, canlı bir cihaz bağlamadan önce sertifika ve parola ayarlarını doğrularsın.
Etkinlik 2 / 6
802.1X bağlantı akışını sırasına koy.
Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.
- 1Port açılır, istemci normal trafiğe geçer
- 2Sunucu erişim noktasına izin mesajı gönderir
- 3RADIUS sunucusu seçilen yöntemle kimliği doğrular
- 4İstemci erişim noktasına bağlanmak ister, port kapalıdır
- 5Erişim noktası EAP trafiğini RADIUS sunucusuna iletir
EAP yöntemleri ve sunucu sertifikası
EAP çerçevesine takılan yöntemler kanıtı farklı yerden alır. EAP-TLS (RFC 5216; TLS 1.3 için RFC 9190) hem istemciye hem sunucuya sertifika kurar. İstemci parola göndermez, çünkü kanıt sertifikanın kendisidir. Çalınan bir parola bu yöntemde işe yaramaz, ama her cihaza sertifika dağıtmak yönetim yükü getirir.
PEAP ve EAP-TTLS ise sertifikayı yalnız sunucu tarafında ister. İçeride kurulan şifreli tünelden istemci kullanıcı adı ve parola gönderir. Kurulumu hafiftir, ama parola yine çalınabilir bir sırdır. Seçim, cihaz yönetimi kapasitesiyle parola riski arasındaki dengeyi belirler.
İki tünelli yöntem birbirine benzer ama ayrıntıda ayrışır. PEAP en sık PEAP-MSCHAPv2 biçiminde kurulur; tünelin içinde kullanıcı adı ve parola MSCHAPv2 el sıkışmasıyla taşınır. EAP-TTLS daha esnektir ve tünelin içinde PAP gibi eski parola yöntemlerini de taşıyabilir. İkisi de dış tüneli yalnız sunucu sertifikasıyla kurar.
EAP-TLS'in bu yöntemlerden farkı, kullanıcı tarafında da sertifika istemesidir. Sertifika dağıtımını yönetebilen bir kurum için en güçlü seçenek budur.
Tünelli yöntemlerde asıl tehdit sahte bir RADIUS sunucusudur. İstemci sunucunun sertifikasını ve adını denetlemezse, sahte erişim noktasının arkasındaki sunucuyla tüneli kurar ve parola alışverişini ona yapar. PEAP-MSCHAPv2'de bu alışveriş çevrimdışı kırılabilecek bir iz bırakır. Microsoft 2012'de yayımladığı güvenlik danışma notunda MSCHAPv2'nin bilinen kriptografik zayıflıklarını kabul etti ve onu PEAP tüneli içinde kullanmayı önerdi.
Tüneli sahte sunucu kurduğunda bu koruma ortadan kalkar. Bu yüzden PEAP ya da TTLS kuran bir kurum, istemcilerde güvenilen sertifika otoritesini ve sunucu adını sabitler. EAP-TLS'te risk küçülür, çünkü iki taraf birbirini sertifikayla sınar. Doğrulamayı kapatmak, yöntem ne olursa olsun en sık yapılan ve en pahalı hatadır.
Etkinlik 3 / 6
Doğru mu, yanlış mı?
EAP-TLS kullanan bir istemci kullanıcı adı ve parola göndermek zorundadır.
Etkinlik 4 / 6
PEAP ya da EAP-TTLS kuran bir kurumda, sahte erişim noktasının kullanıcı parolasını çalmasını engelleyen en kritik istemci ayarı hangisidir?
Hesap tutma, iptal ve RADIUS güvenliği
802.1X'in gerçek kazancı hesap verebilirliktir. RADIUS sunucusu yalnız evet ya da hayır demez; her bağlantıyı kullanıcı kimliğiyle kaydeder. Bu kayda hesap tutma (accounting) denir ve RFC 2866'da tanımlanır.
User-Name kullanıcıyı, Calling-Station-Id istemcinin MAC adresini taşır. Called-Station-Id ise erişim noktasının MAC adresini ve SSID'yi birlikte yazar. Acct-Status-Type oturumun başladığını (Start) ya da bittiğini (Stop) söyler, Acct-Session-Time süreyi verir. Paylaşılan parolada bu iz hiç oluşmaz, çünkü herkes aynı kimlikle görünür.
User-Name = "ayse.k" Calling-Station-Id = "02-00-00-11-22-33" Called-Station-Id = "AA-11-22-33-44-55:AltayDepo" NAS-IP-Address = 192.0.2.5 Acct-Status-Type = Start Acct-Session-Time = 0
Bu kayıt bir olay incelemesini saatlerden dakikalara indirir. Şüpheli bir bağlantı gördüğünde RADIUS kayıtlarından kullanıcı adını, cihaz MAC adresini ve saati okur, olayı doğrudan bir kişiye bağlarsın. Hangi erişim noktasından bağlandığı da Called-Station-Id alanında durur, bu yüzden kişinin binanın hangi bölümünde olduğunu bile daraltabilirsin. Bu kayıtların bir SIEM'e akması önemlidir; yalnız RADIUS sunucusunda kalırsa, sunucu ele geçtiğinde iz de kaybolur.
Bu düzen yönetimi de kolaylaştırır. Bir çalışan ayrıldığında RADIUS sunucusundan tek hesabı kapatırsın; ortak parolayı değiştirip herkesi yeniden bağlatman gerekmez. RADIUS ayrıca her kullanıcıyı doğru ağ bölümüne de yerleştirebilir.
Dinamik VLAN atamasında (RFC 3580) sunucu, izin mesajına Tunnel-Type=VLAN, Tunnel-Medium-Type=802 ve Tunnel-Private-Group-ID=20 gibi alanlar ekler; erişim noktası kullanıcıyı o VLAN'a koyar. Aynı mantık kablolu ağda da işler; duvardaki ethernet prizine takılan cihaz da 802.1X ile doğrulanabilir, buna ağ erişim denetimi (NAC) denir. 802.1X çalıştıramayan bir yazıcı için MAC tabanlı yedek (MAB) devreye girer, ama MAC taklit edilebildiği için zayıf kalır.
Kablolu ve kablosuz tarafı aynı RADIUS sunucusundan yönetmek, kuralı tek yerde tutar ve denetimi kolaylaştırır. Böylece bir kullanıcının hem masa başındaki hem kablosuz erişimi aynı kimlikle izlenir.
Etkinlik 5 / 6
Bir şirket ayrılan çalışanın kablosuz erişimini anında kesmek istiyor, diğer çalışanları etkilememesi gerekiyor. Hangi kurulum bunu sağlar?
Derinleş:RADIUS taşımasını korumak: RadSec ve Blast-RADIUS
RADIUS'un kendi taşıması da korunmalıdır. RADIUS/UDP'de sunucu yanıtları, ortak sır ve MD5 ile hesaplanan bir doğrulayıcıyla korunur. 2024'te duyurulan Blast-RADIUS (CVE-2024-3596), bu yapıyı bir MD5 çakışma saldırısıyla aştı.
Erişim noktası ile sunucu arasına girebilen bir saldırgan, sunucunun gönderdiği bir Access-Reject'i geçerli bir Access-Accept'e çevirebiliyordu. Saldırgan bu yolla parolayı ya da ortak sırrı öğrenmez. Saldırı araya girme (man-in-the-middle) konumu ister ve EAP dışı yöntemleri hedefler.
Yalnız EAP doğrulayan sunucularda pratik görünmez. Aynı sunucu MAB ya da ağ cihazı yönetici girişi gibi EAP dışı istekleri de işliyorsa risk sürer. Kısa vadeli savunma, her istek ve yanıtta Message-Authenticator alanını zorunlu kılmaktır; araştırmacıların bildiği bütün RADIUS uygulamaları bu yamayı dağıttı. Uzun vadeli çözüm, RADIUS'u TLS tünelinde taşıyan RadSec'tir.
Aynı mantık geçici erişimlerde de işler. Bir konferans salonunda konuşmacılara yalnız o gün geçerli, izlenebilir bir erişim vermek istediğinde RADIUS üzerinden süreli hesap açarsın. Hesabın bitiş saatini baştan tanımlarsan, gün sonunda erişim kendiliğinden kapanır ve kimse elle iptal etmeyi unutmaz.
FreeRADIUS'ta bunun için hesaba Expiration özniteliği yazılır. Access-Accept içindeki Session-Timeout ise tek bir oturumun en uzun süresini saniye cinsinden sınırlar. Her konuşmacı ayrı hesapla bağlandığı için kimin ne zaman bağlandığı da kayda geçer.
Etkinlik 6 / 6
Konferans salonunda konuşmacılara yalnız o gün geçerli, izlenebilir bir kablosuz erişim vereceksin. Kurulumu kısaca yaz.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.