BT Sistem Yönetimi

FreeRADIUS Kurulumu: Ubuntu'da Adım Adım

Ubuntu üzerinde FreeRADIUS ile adım adım kurulum: paket kurulumu, istemci ve kullanıcı tanımı, radtest ile doğrulama ve paket düzeyinde yakalama.

İlker Pehlivan

FreeRADIUS, Linux üzerinde çalışan açık kaynaklı bir RADIUS sunucusudur ve kurumsal ağa giriş kararını tek bir merkeze taşır. Bu rehberde Ubuntu üzerine sıfırdan bir FreeRADIUS sunucusu kurar, bir test kullanıcısı tanımlar, ilk kimlik doğrulamayı radtest ile doğrular ve arka planda ne konuşulduğunu paket düzeyinde izleriz. Sonunda çalışan, sınanmış bir RADIUS sunucunuz olur.

RADIUS’un ne olduğunu, dört mesajlık akışını ve 802.1X ile ilişkisini ayrı bir yazıda ele aldık: burada kavramı tekrar etmeyip doğrudan kuruluma giriyoruz. Protokolün kendisini merak ediyorsanız önce RADIUS sunucusu nedir rehberimize göz atın. Bu makale kurumsal network kurulumu hizmetimizin ağa giriş katmanının pratik, elimizi kirlettiğimiz tarafıdır.

Aşağıdaki adımların tamamını gerçek bir Ubuntu 24.04 sunucusunda çalıştırdım; gördüğünüz komut çıktıları o kurulumdan birebir alındı. Sizde de aynı sürümlerle çalışırsanız neredeyse aynı çıktıyı görmeniz gerekir.

Linux temeli üzerine kurulan merkezi bir RADIUS kimlik doğrulama sunucusu ve ona bağlanan istemci hattı
RADIUS sunucusu Linux temeli üzerine katman katman kurulur: önce kurulum, sonra yapılandırma, sonra test.

FreeRADIUS Kurulumu: Paketler ve İlk Servis

Bu rehber, üzerine FreeRADIUS kuracağınız Ubuntu Server’ı zaten ayağa kaldırdığınızı varsayar. İşletim sistemi kurulumu, disk düzeni ve ilk ağ yapılandırması ayrı bir konudur ve Ubuntu Server kurulum rehberimizde ele alınmaktadır.

FreeRADIUS Ubuntu deposunda hazır paket olarak gelir, derlemeye gerek yoktur. İki paket kuruyoruz: sunucunun kendisi ve test araçları.

Bash
sudo apt-get update
sudo apt-get install -y freeradius freeradius-utils

freeradius sunucu servisini, freeradius-utils ise radtest ve radclient gibi kimlik doğrulamayı elle sınayacağınız araçları getirir. Kurulum bittiğinde servis kendiliğinden başlar. Sürümü ve servis durumunu doğrulayalım:

Bash
freeradius -v
systemctl is-active freeradius
Çıktı
radiusd: FreeRADIUS Version 3.2.5, for host x86_64-pc-linux-gnu
active

Bu noktada elinizde ayakta duran bir RADIUS sunucusu var, ama henüz hiçbir kullanıcı tanımlı değil ve yalnızca localhost üzerinden konuşabiliyor. Sıradaki iki adım tam olarak bu ikisini çözer.

İstemci ve Kullanıcı: clients.conf ve users

RADIUS’ta iki farklı “kimlik” tanımlanır ve bunlar sürekli karıştırılır: istemci ağdaki cihazdır (switch, erişim noktası), kullanıcı ise ağa girmek isteyen kişidir. İkisi ayrı dosyalarda durur.

İstemci (NAS) tanımı clients.conf dosyasındadır. Varsayılan kurulum, test için localhost’u zaten tanımlı getirir ve ortak parolası (shared secret) testing123’tür:

Yapılandırma
client localhost {
    ipaddr = 127.0.0.1
    secret = testing123
}

Gerçek bir switch eklerken bu bloğun bir benzerini switch’in IP’si ve kendine özel, uzun bir parolayla oluşturursunuz. Şimdilik localhost ilk testimiz için yeterli.

Kullanıcı tanımı ise users dosyasındadır. Dosya tabanlı bu yöntem, mekaniği görmek için en berrak olanıdır. Bir test kullanıcısı ekleyelim:

Yapılandırma
testuser Cleartext-Password := "TestParola123"

Bu satırı /etc/freeradius/3.0/mods-config/files/authorize dosyasının başına ekleyip servisi yeniden başlatıyoruz:

Bash
sudo systemctl restart freeradius

Cleartext-Password ifadesi kafa karıştırabilir: parolanın ağda açık dolaşacağı anlamına gelmez, yalnızca sunucunun parolayı karşılaştırmak üzere düz metin olarak sakladığını söyler. Parolanın ağ üzerindeki hali her zaman shared secret ile korunur, birazdan paket düzeyinde göreceğiz.

İlk Test: radtest ile Access-Accept

Kurulumun çalıştığını radtest ile, hiçbir switch’e ihtiyaç duymadan sınayabiliriz. radtest bir istemciyi taklit eder: verdiğiniz kullanıcı adı ve parolayı bir Access-Request paketine koyup sunucuya gönderir, dönen cevabı gösterir.

Bash
radtest testuser TestParola123 127.0.0.1 0 testing123

Buradaki alanlar sırasıyla: kullanıcı adı, parola, sunucu adresi, NAS port numarası ve shared secret. Doğru parolayla sonuç şudur:

Çıktı
Sent Access-Request Id 156 from 0.0.0.0:42648 to 127.0.0.1:1812 length 78
	User-Name = "testuser"
	User-Password = "TestParola123"
	NAS-IP-Address = 127.0.1.1
	NAS-Port = 0
Received Access-Accept Id 156 from 127.0.0.1:1812 to 127.0.0.1:42648 length 38

Received Access-Accept: sunucu kimliği kabul etti. Şimdi bilerek yanlış bir parola verip reddedilmeyi görelim, çünkü bir sistemin doğru çalıştığından emin olmak, yanlışı da doğru reddettiğini görmekten geçer:

Bash
radtest testuser YanlisParola999 127.0.0.1 0 testing123
Çıktı
Received Access-Reject Id 65 from 127.0.0.1:1812 to 127.0.0.1:37349 length 38

Kabul için Access-Accept, ret için Access-Reject. Sunucu artık kimlik doğruluyor. Ama ağ üzerinde tam olarak ne gidip geldiğini henüz görmedik, ve RADIUS’un en çok yanlış bilinen tarafı da orada.

Ne Konuşuluyor? Paketi Yakalayıp Açmak

RADIUS’un güvenlik davranışını anlamanın en iyi yolu, bir kimlik doğrulama turunu yakalayıp içine bakmaktır. tcpdump ile 1812 portunu dinlerken bir radtest daha çalıştıralım:

Bash
sudo tcpdump -i lo -n "udp port 1812" -w radtest.pcap

Yakaladığımız turda iki paket görünür: giden Access-Request ve dönen Access-Accept.

Çıktı
IP 127.0.0.1.42648 > 127.0.0.1.1812: RADIUS, Access-Request (1), length: 78
IP 127.0.0.1.1812 > 127.0.0.1.42648: RADIUS, Access-Accept (2), length: 38

Asıl mesele paketin içindedir. Aynı yakalamayı tshark ile açıp Access-Request’in alanlarına bakalım:

Bash
sudo tshark -r radtest.pcap -O radius
Çıktı
RADIUS Protocol
    Code: Access-Request (1)
    Attribute Value Pairs
        AVP: t=User-Name(1) val=testuser
        AVP: t=User-Password(2) val=Encrypted
            User-Password (encrypted): 504f2ecbe9e3fe3a777f370faf6aa128
        AVP: t=NAS-IP-Address(4) val=127.0.1.1
        AVP: t=NAS-Port(5) val=0

Burada RADIUS’un en kritik güvenlik gerçeği görünür hale gelir: yalnızca User-Password alanı şifrelidir, o da 16 baytlık okunamaz bir bloktur. Geri kalan her şey açık gider. User-Name alanında kullanıcı adı düz metin olarak (testuser), NAS’ın adresi ve bağlanılan port okunabilir haldedir. Ağı dinleyen biri kimin, nereden bağlandığını görür; yalnızca parolayı göremez.

Bunun iki pratik sonucu var. Birincisi, RADIUS trafiği kullanıcı trafiğiyle aynı yerde dolaşmamalı, yönetim ağında kalmalıdır. İkincisi, kablosuz ve 802.1X senaryolarında parolayı koruyan asıl katman RADIUS’un kendi şifrelemesi değil, üzerine kurulan EAP tünelidir. O katmanı ve gerçek 802.1X kurulumunu bir sonraki bölümde ele alacağız.

802.1X ve EAP: Sertifika, Tünel ve Access-Challenge

Buraya kadar PAP ile çalıştık; parolayı shared secret koruyordu. Kurumsal kablosuz ve kablolu ağlarda ise 802.1X ve EAP devreye girer, parola artık shared secret’a değil bir TLS tüneline emanet edilir. Bu tünel için sunucunun bir sertifikası olmak zorundadır, ilk kuracağımız şey odur.

Sunucu Sertifikasını Üretmek

FreeRADIUS’un EAP modülü varsayılan kurulumda etkin gelir; test için tek eksik sertifikadır. FreeRADIUS bunu üretecek betiği hazır getirir, certs dizininde çalıştırıyoruz:

Bash
sudo bash -c "cd /etc/freeradius/3.0/certs && make"

Bu komut self-signed bir sertifika otoritesi (CA) ve ona bağlı bir sunucu sertifikası (server.pem) üretir; PEAP’in TLS tünelini bu sertifika kurar. Lab için bu yeterlidir, ama gerçek bir filoda self-signed sertifikanın nerede yetip nerede yetmediği ayrı bir karardır: sertifika otoritesi rehberimize bakın. Diffie-Hellman parametreleri yüzünden üretim birkaç dakika sürebilir. Bittiğinde yapılandırmayı doğrulayıp servisi yeniden başlatıyoruz:

Bash
sudo freeradius -XC
sudo systemctl restart freeradius

Configuration appears to be OK çıktısını görmelisiniz.

Access-Challenge: Tek Turda Bitmeyen Konuşma

EAP ile kimlik doğrulama, PAP’ın aksine tek istek-cevap turunda bitmez. Bunu radeapclient ile bir EAP-MD5 turu çalıştırıp görebiliriz:

Bash
printf "User-Name=testuser,Cleartext-Password=TestParola123,EAP-Code=Response,EAP-Type-Identity=testuser\n" | sudo radeapclient -x 127.0.0.1:1812 auth testing123
Çıktı
Sent Access-Request     Id 35  EAP-Message = 0x02e1000d017465737475736572
Received Access-Challenge Id 35  EAP-Message = 0x01e200160410...
Sent Access-Request     Id 111 EAP-Message = 0x02e200160410...
Received Access-Accept   Id 111 EAP-Message = 0x03e20004

Burada yeni bir mesaj tipi çıkar: Access-Challenge. Sunucu “gönderdiğin yeterli değil, şu meydan okumaya cevap ver” der ve konuşma bir tur daha sürer. Paket düzeyinde akış dört adımdır:

Çıktı
Access-Request (1)    → istemci: kimliğim testuser
Access-Challenge (11) → sunucu: şu MD5 meydan okumasına cevap ver
Access-Request (1)    → istemci: işte cevabım
Access-Accept (2)     → sunucu: kabul

Gerçek PEAP-MSCHAPv2’de bu tur sayısı çok daha fazladır, çünkü araya bir de TLS tüneli kurulur; ama mantık aynıdır. Bu ayrım teşhiste işe yarar: tek Access-Request’in hemen ardından gelen bir Access-Reject konuşmanın hiç başlamadığını, onlarca Challenge’dan sonra gelen bir Reject ise sertifika ya da politika tarafını işaret eder.

Gerçek 802.1X: Korumanın Nerede Olduğu

Sunucu tarafı artık PEAP’e hazır: sertifika üretildi, EAP modülü çalışıyor. Gerçek bir 802.1X kurulumunda sıradaki adım, switch ya da erişim noktasını bu RADIUS sunucusuna yönlendirmek (NAS olarak clients.conf’a eklemek) ve istemcilerde PEAP profilini tanımlamaktır.

Burada PEAP’in en çok atlanan güvenlik noktası devreye girer: koruma sunucuda değil, istemcinin sunucu sertifikasını doğrulamasındadır. Self-signed bir sertifika kullandığımız için istemciler bu sertifikayı tanımaz ve bağlanırken uyarı verir; üretimde bu yüzden sertifika ya bir kurumsal CA’dan alınır ya da self-signed CA istemcilere güvenilir olarak dağıtılır. İstemcide “sertifikayı doğrulama”yı kapatmak uyarıyı susturur ama korumayı da kaldırır: aynı ağ adını yayınlayan sahte bir erişim noktasına da aynı güvenle bağlanılır. EAP yöntemleri arasındaki farkı ve bu güvenlik ayrımını RADIUS sunucusu nedir rehberimizde ele aldık.

İleri Adımlar: Web Yönetimi ve Active Directory

Buraya kadar dosya tabanlı, komut satırından yönetilen çalışan bir FreeRADIUS sunucusu kurduk. Üretim yolunda iki yönde derinleşir.

Web Yönetimi: daloRADIUS

Komut satırı ve users dosyası küçük ortamlar ile öğrenmek için berraktır, ama kullanıcı sayısı arttıkça bir web arayüzü günlük yönetimi kolaylaştırır. daloRADIUS, FreeRADIUS’a bir yönetim paneli ekler; tek şartı, kullanıcıların dosya yerine bir SQL veritabanında tutulmasıdır, çünkü web arayüzü ile sunucu aynı veritabanını paylaşır. Bir dürüst uyarı: daloRADIUS bir web sunucusu ve PHP demektir, yani ek bir saldırı yüzeyi. Beş kullanıcılık bir ortamda users dosyası zaten yeterlidir; GUI, gerçekten kalabalık bir kullanıcı tabanını yönettiğinizde kazandırır. Bu kurulumu ayrı bir rehberde ele alıyoruz.

Active Directory Entegrasyonu

FreeRADIUS kendi kullanıcı listesini tutmak zorunda değildir; kurumsal ortamda kimliği doğrudan Active Directory’de doğrular, tıpkı Windows tarafındaki NPS gibi. Burada kritik bir incelik var: PEAP-MSCHAPv2 kullanıyorsanız FreeRADIUS’u Samba/winbind ile domain’e katmanız gerekir, LDAP tek başına yetmez. Çünkü MSCHAPv2’nin parolayı taşıma biçimi düz bir LDAP bağlantısıyla doğrulanamaz. Bu entegrasyonu da ayrı bir rehberde adım adım göstereceğiz.

Sonuç

Elinizde artık kurulmuş, sınanmış ve ne konuştuğu paket düzeyinde görülmüş bir RADIUS sunucusu var. Ağ erişim kararını tek merkeze taşımak, paylaşılan parolaları ortadan kaldırmak ve her girişi isimli bir hesaba bağlamak: hepsi bu tek sunucunun sağladığı şeydir. Buradan sonrası ölçeklendirmedir. Gerçek switch’leri NAS olarak eklemek, kullanıcıları Active Directory’ye ya da SQL’e taşımak ve 802.1X’i sahada devreye almak, hep bu çalışan temelin üzerine kurulur. Temeli sağlam attıysanız gerisi eklemedir.

FreeRADIUS Kurulumu Hakkında Sık Sorulan Sorular

FreeRADIUS açık kaynaktır ve ücretsizdir; sunucu sayısı, kullanıcı sayısı ya da kimlik doğrulama miktarı için lisans ödemezsiniz. Maliyet donanımda değil, kurulum ve bakım emeğindedir. Windows tarafındaki NPS de ayrı bir ürün değil Windows Server'ın bir rolüdür, ama orada Windows Server lisansı ve istemci erişim lisansları (CAL) devreye girer. İki tarafın gerçek maliyet farkı lisansta değil, ekibinizin hangi platformu işletebildiğinde ortaya çıkar.
Tipik bir kurumda çok az. Kimlik doğrulama yükü kullanıcı sayısıyla değil, saniyedeki doğrulama sayısıyla ölçülür ve bu sayı çoğu ortamda düşüktür. İki çekirdekli, 2 GB belleğe sahip küçük bir sanal sunucu rahatlıkla yeter. Darboğaz genellikle CPU ya da bellek değil, arka uçtaki kimlik kaynağının (yerel dosya, SQL, Active Directory) yanıt süresidir.
Varsayılan kurulumda kullanıcılar düz bir metin dosyasında (`users` dosyası) tutulur ve bu, öğrenmek ve küçük ortamlar için idealdir. Ölçek büyüdüğünde kullanıcılar bir SQL veritabanına ya da Active Directory / LDAP dizinine taşınır; FreeRADIUS bu kaynakların hepsini modül olarak destekler. Web tabanlı yönetim (daloRADIUS) istiyorsanız kullanıcıların SQL'de tutulması gerekir, çünkü web arayüzü ile sunucu aynı veritabanını paylaşır.
İlker Pehlivan

Yazan

İlker Pehlivan

BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi

İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştüren bir ağ ve sistem mühendisidir. Şirketlere özel teknoloji rehberleri burada.

Benzer Makaleler

Microsoft Entra ID Connect Kurulumu: AD'yi Buluta Bağlama

Microsoft Entra ID Connect kurulumu, UPN senkronizasyonu ve Seamless SSO yapılandırması. Active Directory kullanıcılarını Microsoft 365'e tek kimlikle bağlayan adım adım rehber.

3 dk okuma

Active Directory GPO Yönetimi: Group Policy Rehberi

Active Directory Group Policy (GPO) yönetimi: GPO nasıl oluşturulur, LSDOU uygulama sırası, sık kullanılan politikalar ve GPO sorun giderme adımları.

16 dk okuma

Active Directory DNS Yapılandırması: Forwarder ve Zone

Active Directory DNS forwarder, reverse lookup zone, conditional forwarder ve split-brain DNS yapılandırması. Windows Server'da kurulum ve sorun giderme için ekran görüntülü rehber.

18 dk okuma

Active Directory Kullanıcı, Grup ve OU Yönetimi (AGDLP)

Active Directory'de OU tasarımı, kullanıcı ve grup yönetimi: AGDLP modeli, PowerShell ile toplu kullanıcı oluşturma, yetki devri ve isimlendirme standartları.

16 dk okuma

Active Directory UPN Suffix Yapılandırması

Active Directory'de alternatif UPN suffix ekleme ve kullanıcı UPN'lerini güncelleme. Mail adresi ile Windows girişini tek kimlikte birleştiren adım adım rehber.

5 dk okuma

Active Directory Kurulum Rehberi: Windows Server 2025

Windows Server 2025 üzerinde Active Directory kurulumu: ön koşullar, DC promotion, DNS doğrulama, ikinci DC ekleme ve kurulum sonrası sağlık kontrolleri.

20 dk okuma

Active Directory Rehberi: Mimari, Kurulum ve Yönetim

Active Directory nedir, nasıl kurulur ve yönetilir? FSMO, GPO, replication, güvenlik, yedekleme ve hybrid identity dahil Windows Server'da uçtan uca AD rehberi.

25 dk okuma

Active Directory Certificate Services (AD CS) Kurulumu

Active Directory Certificate Services kurulumu adım adım: Enterprise Root CA yapılandırması, geri alınamayan kararlar, AIA/CDP ayarı ve kurulum doğrulaması.

25 dk okuma

Bilgisayarı ve Sunucuyu Domain'e Ekleme: Ön Koşul ve Hatalar

Windows bilgisayar ve sunucuyu domain'e ekleme: DNS, saat ve hostname ön koşulları, Add-Computer, OU yerleşimi, redircmp ve sık görülen katılım hataları.

25 dk okuma

Hypervisor Nedir? Sanallaştırma Katmanı Nasıl Çalışır

Hypervisor bir işletim sistemine sahte donanım sunar. Tip 1 ve Tip 2 farkı, vCPU ve RAM overcommit, snapshot ile yedek ayrımı ve doğru boyutlandırma.

16 dk okuma

IIS Nedir? Windows Server'da Kurulum, HTTPS ve Güvenlik

IIS nedir, Windows Server'da nasıl kurulur? Web sunucusu rolünü ekleyin, iç CA sertifikasıyla HTTPS bağlayın, SNI ve güvenliği yapılandırın.

22 dk okuma

Linux NTP Sunucusu Kurulumu: chrony ile İç Saat Kaynağı

Linux NTP sunucusu kurulumu: Ubuntu'da chrony yapılandırması, allow ile istemci ağı, doğrulama ve izleme. Platform kararı ve Stratum 1 için GPS/PPS.

23 dk okuma

RSAT Kurulumu: AD Yönetim Konsolları ve GPMC

RSAT kurulumu: Windows 10, 11 ve Windows Server'da uzaktan sunucu yönetim araçları, GPMC ve ADUC konsolları, nereden çalıştırılacağı ve neyi yönettiği.

19 dk okuma

Samba AD DC Kurulumu: Linux'ta Domain Controller

Samba AD DC kurulumu: Ubuntu 24.04'te samba-tool domain provision, iç DNS kararı, Kerberos doğrulaması ve kurulum öncesi/sonrası ölçülmüş port tablosu.

31 dk okuma

Ubuntu Server Nasıl Kurulur? 24.04 LTS Kurulum Rehberi

Ubuntu Server 24.04 LTS kurulumu adım adım: donanım gereksinimleri, statik IP ve LVM disk yapılandırması, OpenSSH kurulumu ve kurulum sonrası ilk kontroller.

14 dk okuma

Ubuntu Server: LTS, Sıkılaştırma ve Dağıtım Seçimi

Kurumsal Ubuntu Server rehberi: dağıtım karşılaştırması, LTS ve Ubuntu Pro destek takvimi, paket yönetimi, sıkılaştırma ve Active Directory entegrasyonu.

22 dk okuma

Veri Merkezi Migration: Taşıma Planı ve Kesinti Penceresi

Veri merkezi taşıma nasıl planlanır: envanter ve bağımlılık analizi, kesinti penceresi, her adım için geri dönüş planı ve taşıma gecesinde doğrulama sırası.

13 dk okuma

Kurumsal Veri Yedekleme ve Felaket Kurtarma Çözümleri

Kurumsal veri yedekleme ve felaket kurtarma: 3-2-1-1-0 kuralı, RTO/RPO hedefleri, değiştirilemez depolama ve düzenli geri yükleme testiyle yedekleme çözümleri.

15 dk okuma

Windows Server DHCP Kurulumu: Scope, Rezervasyon ve Failover

Windows Server DHCP kurulumu: scope ve exclusion yapılandırması, MAC adresiyle IP rezervasyonu, failover ve doğrulama. Ekran görüntülü adım adım rehber.

35 dk okuma

Windows Server 2025: Roller ve Lisanslama

Windows Server sürümleri, çekirdek bazlı lisanslama ve CAL modeli, sunucu rolleri ve destek yaşam döngüsü: hangisini ne zaman kuracağınızın kurumsal rehberi.

25 dk okuma

Windows Server 2025 Kurulum Rehberi: Adım Adım

Windows Server 2025 kurulumu: sürüm ve lisans seçimi, kurulum medyası hazırlama, adım adım kurulum, hostname, statik IP, NTP ve temel güvenlik sıkılaştırma.

21 dk okuma

Cacti Kurulumu: Ubuntu'da SNMP ile Ağ İzleme

Ubuntu 24.04'te Cacti kurulumu: apt paketinin web sihirbazını neden atladığı, SNMP ile switch izleme, trafik grafiği oluşturma ve Zabbix'ten farkı adım adım.

16 dk okuma

Syslog Sunucusu Kurulumu: Ubuntu'da Merkezi Log

Ubuntu 24.04'te rsyslog ile merkezi syslog sunucusu kurulumu: imudp, 514 portu, gönderen başına ayırma, switch bağlama ve disk planı. Lab ölçümüyle.

17 dk okuma

Active Directory Güvenlik Sıkılaştırması Rehberi

Active Directory'i saldırılara karşı sıkılaştırma: Tier modeli, LAPS, Fine-Grained Password Policy ve ayrıcalıklı hesap izleme ile pratik adımlar ve hatalar.

17 dk okuma

Ücretsiz Değerlendirme

Ağ erişimini paylaşılan paroladan kişisel hesaba taşımak istiyorsanız kurgusunu birlikte çıkaralım.