Kimlik Doğrulama Sunucusu FreeRadius ve Kurulumu
Blog’umda çoğunlukla OpenSource uygulamalara yer veriyorum. Bunun başlıca nedenlerinden bazıları
- En önemli nedeni pekala ücretsiz olması
- Açık kaynak kodlu olmasından dolayı içeriğinin bilinmesi ve güvenlik kaygılarının nispeten daha az olması.
- Internet ortamında bir çok doküman bulunması ve destek toplulukların bulunması.
İşte bu yüzdendir sıradaki yazım FreeRadius nedir? Neden kullanılır? Kurulum ve yapılandırma hakkında bazı bilgiler veriyor olacağım.
FreeRadius’u anlatmadan önce RADIUS kelimesinin tam karşılığını yazacak olursak, Remote Authentication Dial In User Service (Uzaktan Kimlik Doğrulama Arama Hizmeti) dir. Uzaktan başka ağlara erişim sağlamak isteyen kullanıcıların AAA (Authentication, Authorization, Accounting ) ile kimlik denetimi, yetkilendirme ve hesapların yönetimlerini sağlamak için oluşturulmuş olan bir protokoldür. Uygulama katmanında çalışır iletişim için UDP (User Diagram Protocol) kullanır. Genelde VPN (Virtual Private Network) gibi yerlerde yoğunlukla kullanılır. Hotspot mimarisinde external kullanıcılarının
- Erişim sağlamadan önce kimlik doğrulaması
- Doğrulama sonrası kullanıcıya verilecek yetkilendirmelerin yapılması
- Kullanım verilerinin tutulması
işlemlerini de yapmamıza olanak sağlar.
FreeRadius ise GNU Genel Kamu Lisansı, sürüm 2 altında geliştirilmiş ve dağıtılmış modüler, yüksek performanslı ücretsiz bir RADIUS paketidir ve indirme ve kullanım için ücretsizdir. FreeRADIUS, en popüler açık kaynaklı ve dünyada en yaygın kullanılan RADIUS sunucusudur. Tüm yaygın kimlik doğrulama protokollerini destekler ve sunucu, dialupadmin adlı PHP tabanlı bir web kullanıcısı yönetim aracı ile birlikte gelir. Gömülü sistemler, Ağ Erişim Kontrolü’nü destekleyen RADIUS cihazları ve WiMAX gibi birçok ticari RADIUS ürün ve hizmetinin temelini oluşturur.
Sunucu çekirdeğine dahil olan modüller LDAP, MySQL, PostgreSQL, Oracle ve diğer birçok veritabanını destekler. PEAP ve EAP-TTLS dahil olmak üzere tüm popüler EAP kimlik doğrulama türlerini destekler. Çok çeşitli NAS cihazlarıyla uyumluluk sağlayan 100’den fazla tedarikçi sözlüğü bulunmaktadır.
Kurulum:
Özellikle yeni başlayanlar için tavsiyem şu olacaktır. İşletim sisteminizin paketletme sisteminin kullanılmasında fayda var. Belki en son güncel sürümü kurmamış olacağız fakat en azından 1-2 komut ile çalışır kararlı bir sürüm ile karşılacağız. En azından freeradius’un nasıl çalıştığını öğrendikten sonra en son kararlı ve güncel sürümü freeradius.org üzerinden indirebiliriz. Bu kurulumda repo’da yayınlanan freeradius paketlerinin kurulumu ve yapılandırmasını yapıyor olacağız. Kurulum esnasında Ubuntu 18.04 LTS ile kullanıyor olacağım.
Terminal üzerinden devam ediyoruz.
Öncelikle güncel paketleri taramak için aşağıdaki komutu kullanıyoruz:
sudo apt-get update
Daha sonra freeradius ve freeradius’un çalışması için gerekli olan bağımlılık paketlerini kurmak için aşağıdaki komutu çalıştırıyorum.
sudo apt-get install freeradius
Not: CentOS vb dağıtımlar için freeradius yükleme komutu:
yum install freeradius
Yüklemenin sorunsuz olup olmadığını ve freeradius’un versiyonunu öğrenmek için
freeradius -v
Komutunu çalıştırdıktan sonra karşıma şuna benzer versiyon bilgisi çıkması lazım:
serdarkurt@ubuntu:~$ freeradius -v radiusd: FreeRADIUS Version 3.0.16, for host x86_64-pc-linux-gnu, built on Apr 17 2019 at 12:59:55 FreeRADIUS Version 3.0.16 Copyright (C) 1999-2017 The FreeRADIUS server project and contributors There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License For more information about these matters, see the file named COPYRIGHT
Debian tabanlı sistemlerde, sunucu arka plan programının radiusd yerine freeradius olarak adlandırıldığını unutmayın. Yapılandırma dosyaları / etc / raddb / yerine / etc / freeradius / içinde de bulunur.
Sunucu kurulduktan sonra, yapılacak ilk şey mümkün olduğunca az değişiklik yapmaktır. Varsayılan yapılandırma, her yerde çalışmak ve neredeyse her kimlik doğrulama yöntemini gerçekleştirmek için tasarlanmıştır.
Kurulumdan sonra ilk adım freeradius’u debug mod’da başlatmak olacaktır. Bu sayede servis açılma esnasında herhangi bir hata varsa bunu görebiliriz.
freeradius -X
İlk Testler:
Kullanıcılar dosyasını düzenleyin (v3’te bu /etc/freeradius/3.0/mods-config/files/authorize klasörüne taşındı) ve her şeyden önce dosyanın üstüne aşağıdaki metin satırını eklemeniz gerekecektir.
testing Cleartext-Password := "password"
Sunucuyu hata ayıklama modunda (freeradius-X) başlatın ve başka bir terminal penceresinden radtest çalıştırın:
radtest testing password 127.0.0.1 0 testing123
Sunucunun bir Access-Accept ile yanıt verdiğini görmelisiniz, radtest çalıştırdığınız pencerede şöyle bir çıktı ile karşılaşmanız gerekmektedir.
serdarkurt@ubuntu:~$ radtest testing password 127.0.0.1 0 testing123 Sent Access-Request Id 94 from 0.0.0.0:42199 to 127.0.0.1:1812 length 77 User-Name = "testing" User-Password = "password" NAS-IP-Address = 127.0.1.1 NAS-Port = 0 Message-Authenticator = 0x00 Cleartext-Password = "password" Received Access-Accept Id 94 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
Eğer bu çıktıyı görüyorsanız tebrikler artık bu test kullanıcısı için aşağıdaki kimlik doğrulama metotları çalışır.
PAP, CHAP, MS-CHAPv1, MS-CHAPv2, PEAP, EAP-TTLS, EAP-GTC, EAP-MD5.
Bir sonraki adım daha fazla kullanıcı eklemek ve veritabanları yapılandırmaktır. Bu adımlar yazının kapsamı dışındadır, ancak genel kullanım yöntemi önemlidir ve bir sonraki bölümde açıklanmaktadır.
Client ekleme:
Burada RADIUS sunucusunun client’larını kastediyoruz, Örnek olarak kablosuz erişim noktası, ağ anahtarı veya başka bir NAS cihazı vb…Dizüstü bilgisayarlar, tabletler, akıllı telefonlar vb. gibi ağ client’ları doğrudan RADIUS sunucusuyla konuşmazlar.
client eklemek için clients.conf dosyasını düzenleyerek bir client tanımlayabiliriz.
/etc/freeradius/3.0/clients.conf
client new { ipaddr = ClientIP secret = testing123 }
Tabi tek başına bu yapılandırma yeterli değildir. Aynı şekilde Client’ın Freeradius ile konuşabilmesi için Client üzerinden freeradius server IP ve secret key’inin tanımlanması gerekmektedir.
Sonra sunucuyu hata ayıklama modunda yeniden başlatın ve test kullanıcısını kullanarak basit bir test çalıştırın. Sunucu output’unda bir Access-Accept görmelisiniz
Debug mod dışında freeradius servisini başlatmak için freeradius komutunu kullanmanız yeterlidir. Servis çalıştığında konsol üzerinden herhangi bir çıktı almayacaksınız.
Freeradius nedir, kurulum ve ilk yapılandırma ile alakalı yazı burada sona eriyor, ileri seviye yapılandırma ve diğer örnekler için başka bir yazı ile görüşmek üzere…