FREE RADIUS VE LDAP ILE 802.1x
AG KIMLIK DENETIMI
Ulak-CSIRT Kimlik Denetimi Çalisma Grubu
Hüseyin YÜCE, Gökhan AKIN, Hüsnü DEMIR
Ba
Ba
s
s
l
l
i
i
klar
klar
}
Tanimlar
}
IEEE 802.1x
}
Authentication, Authorization ve Accounting (AAA)
}
Extensible Authentication Protocol (EAP)
}
EAP Çesitleri
}
Sifreleme Teknikleri
}
Simetrik Sifreleme
}
Asimetrik Sifreleme
}
Sertifika
}
Hash
}
Imzalama
}
LDAP
}
RADIUS
Ba
Ba
s
s
l
l
i
i
klar
klar
}
FreeRADIUS
}
PEAP – TTLS Kimlik Denetimi
}
Kurulum
}
OpenLDAP
}
Kurulum
}
OpenLDAP ? FreeRADIUS Entegrasyonu
}
AG CIHAZI TANIMLARI
Tanimlar
}
IEEE 802.1x
IEEE 802.1x port tabanli ag erisim kontrol
standardidir. Kullanici bilgileri (kullanici adi-parola)
yardimi ile aga baglanilmasina izin verilmesini saglar
(Bazi özel durumlarda MAC adreside
kullanilmaktadir.). Kullanici dogrulama sirasinda
EAP (Extensible Authentication Protocol) yöntemi
kullanilir. Bu sekilde ag erisimi isteyen cihazdan
dogrulama yapan mekanizmaya kadar kullanici
bilgilerin sürekli sifreli gitmesini saglanir.
Tanimlar
}
EAP
}
Genisletilebilir Kimlik Kanitlama Protokolü (EAP -
Extensible Authentication Protocol) [RFC 3748]
kimlik kanitlama için bir iletim protokolüdür, bir kimlik
kanitlama yöntemi degildir.
}
EAP kimlik kanitlama sürecinde, kimlik kanitlama
sunucusu ile istemci arasinda geçen ve taraflarin
hangi kimlik kanitlama yöntemini kullanacaklarini
belirler. EAP kimlik kanitlama yöntemi olarak MD5,
TLS, TTLS, PEAP, LEAP kullanir.
Tanimlar
}
EAP Çesitleri
Evet
Evet
Evet
Hayir
Hayir
G
ü
venilirlik
Evet
Evet
Evet
Evet
Hayir
WPA Anahtar
Degisimi
Hayir
Hayir
Evet
Hayir
Hayir
Istemci Sertifikasi
Evet
Evet
Evet
Hayir
Hayir
Sunucu Sertifikasi
PEAP
EAP-TTLS
EAP-TLS
LEAP
EAP-MD5
Tanimlar
}
Hash
}
Hash belirli bir matematik fonksyonu ile verinin tek
yönlü (yani veri geri elde edilemiyecek sekilde) bir
kontrol numarasi elde etme teknigidir. Hash
kaynaginin dogrulanmasi ve veri bütünlügünü test
etmek için kullanilir.
}
MD5 ve SHA1 günümüzde kullanilan popüler bir
hash algoritmalaridir. Kimlik dogrulama için EAP
tüneli yöntemlerinde ve sertifika imzala amaci ile
Kullanilmaktadirlar.
Tanimlar
}
Simetrik Sifreleme:
Ayni anahtar kelime ile verinin hem sifrelenmesi
hemde geri çözülmesi seklinde çalisan tekniktir.
Veri + Anahtar = Sifreli Veri
Sifreli Veri + Anahtar = Veri
Az sistem kaynagi tüketen bir sifreleme sistemidir
ancak anahtarin karsilikli haberlesirken taraflara
güvenli ulastirilmasi zordur.
Tanimlar
}
Asimetrik Sifreleme:
Iki anahtardan olusan bu sistemde anahtar1'in
sifreledigini anahtar2, anahtar2'nin sifreledigi ise
anahtar1 açabilir.
Veri + Anahtar1 = Sifreli Veri
(Public)
Sifreli Veri + Anahtar2 = Veri
(Private)
Not:Çift yönlü güvenli haberlesme için 2 çift anahtar
gerekir.
Not2: Asimetrik sifreleme çok sistem kaynagi
tükettiginden daha çok simetrik anahtarin tasinmasi
için kullanlilir.
Tanimlar
}
Sertifika
}
Sertifika Public anahtari ve bunun yani sira hizmet
alinacak kurumun Adi, web adresi, mail adresi ...vs
bilgileri barindiran bir dökümana verilen addir.
Tanimlar
}
Imza - 1
Private
A
Public
A
Bay A
Güvenilen
kisi
Private
G
Hash
Sifreli
Public
A
+
+
Bay A’nin
Bilgileri
=
Bay B
Public
G
Güvenilen(Kök)
Public
G
Güvenilen(Kök)
Bay G’nin
Bilgileri
Tanimlar
}
Imza - 2
Bay B
Hash
Sifreli
+
Public
G
+
=
=
?
Public
G
Güvenilen(Kök)
Bay A’nin
Tanimlar
}
Imza - 3
Bay G
Bay A
Tanimlar
}
EAP Çesitleri
Evet
Evet
Evet
Hayir
Hayir
G
ü
venilirlik
Evet
Evet
Evet
Evet
Hayir
WPA Anahtar
Degisimi
Hayir
Hayir
Evet
Hayir
Hayir
Istemci Sertifikasi
Evet
Evet
Evet
Hayir
Hayir
Sunucu Sertifikasi
PEAP
EAP-TTLS
EAP-TLS
LEAP
EAP-MD5
Tanimlar
}
EAP-TLS
}
TLS (Iletim Katmani Güvenligi), Secure Sockets Layer (SSL) in atasi
olan bir kriptografi protokolüdür.
}
Protokol iki katmandan olusur.
}
TLS kayit protokolü : TLS kayit protokolü ile veriler simetrik sifreleme
anahtarlari ile sifrelenir.
}
TLS el sikisma (handshake) protokolü : Bu anahtar TLS el sikisma
protokolü kullanilarak alici ve verici tarafindan paylasilir. TLS el
sikisma protokolü ile haberlesecek taraflarin birbirlerini
yetkilendirmeleri, sifreleme algoritmasi ve anahtarlarin karsilikli
degisimi saglanir.
}
}
Bu çift yönlü dogrulama özelligi ile EAP-TLS en güvenilir EAP
yöntemlerinden biri olarak bilinir. Ancak her istemciye özgün sertifika
üretilerek, güvenli bir sekilde dagitilmasini gerektiren bu yöntemin
uygunalmasi zordur.
Tanimlar
}
AAA
}
Authentication (Yetkilendirme) : Kullanici ya da
kullanicilara sisteme, programa veya aga erisim
hakkinin verilmesidir.
}
Authorization (Kimlik Dogrulama) : Sunucu,
anahtar veya yönlendirici kullanimlarinda cihaz ya da
kullanicinin kimliginin onaylanmasidir.
}
Accounting (Hesap Yönetimi) : Herhangi bir
kullanicinin ne yaptigi, kullanici hareketleri kullanici
veri baglantilari ve kullanici sistem kayitlarinin
izlenebilmesi amaciyla yapilan islemdir.
RADIUS Uygulamalari
}
FreeRADIUS
}
Windows IAS
}
Cisco ACS
}
Juniper SBR
FreeRADIUS
}
Çalisma Grubu Kapsaminda GPL lisansina sahip
FreeRADIUS ile çalisilistir.
}
FreeRADIUS : PAP,CHAP,MS-CHAP,EAP-MD5,
EAP-TLS, PEAP, EAP-TTLS ...VS ile kimlik
denetimi yapabilmektedir.
}
Ayrica kendi bünyesinde Kullanici veritabani
olusturulabildigi gibi harici bir kaynaktanda
kullanici denetimi yapabilmektedir.
}
Kurulum ile ilgili detaylari FreeRADIUS kurulum
sunumunda bulabilirsiniz.
LDAP Nedir
}
LDAP (Lightweight Directory Access Protocol : Hafif
Dizin Erisim Protokolü)
}
Dizin ifadesi LDAP'in yapisi ve içerdigi bilgi itibari ile
"veritabani" olarak adlandirilmaktadir.
}
LDAP da ki ana amaç aranan verinin mümkün olan
en kisa sürede bulunmasidir.
}
LDAP’da veriler hiyerarsik nesneler seklindedir.
}
Nesneler giris (entry) olarak adlandirilir.
LDAP Nedir
}
"objectclass" bir entry içinde bulunabilecek attribute
'lari tanimlar.
}
Objectclass'larin tanimlari schema dosyalarinda
tanimlanir.
}
Agaç yapisi seklinde olan bu yapiya Data
Information Tree (DIT) denir.
}
Veri bilgi agacinin tepesinde ise kök (root) vardir.
}
LDAP dizinine entry'ler LDIF (LDAP Data
Interchange Format) girdi dosyasi ile eklenir
LDAP Nedir
}
Sart olmamakla birlikte genellikle agaç yapisinin
tepe noktasi yani kök 'o' (organization)'dur.
}
Daha altinda genellikle 'ou' (organizational unit)'ler
bulunur.
}
Her organization'un altinda çesitli 'cn' (common
name)'ler bulunur. Bir ou'nun altina baska bir ou
konabilir.
LDAP Yapisi
LDAP Uygulamalari
}
Ücretsiz LDAP Uygulamalari
}
OpenLDAP,
}
Fedora Directory Server,
}
OpenDS,
}
ApacheDS
}
Ücretli LDAP Uygulamalari
}
MS Active Directory
}
Novel e-Directory
OpenLDAP
}
OpenLDAP uygulamasi öntanimli olarak
kuruldugunda yapilandirma dosyalari Linux
sistemlerde “/etc/openldap”, BSD sistemlerde
“/usr/local/etc/openldap” klasöründe bulunur.
}
Düzenlenecek olan ilk yapilandirma dosyasi
“slapd.conf” dir.
OpenLDAP (slapd.conf)
}
}
include
include
/
/
usr
usr
/
/
local
local
/
/
etc
etc
/
/
openldap
openldap
/
/
schema
schema
/
/
core
core
.
.
schema
schema
}
}
I
I
nclude
nclude
/
/
usr
usr
/
/
local
local
/
/
etc
etc
/
/
openldap
openldap
/
/
schema
schema
/
/
cosine
cosine
.
.
schema
schema
Bu iki girdi gerekli olan LDAPv3 sistemini ve X.500 tanimlar
}
}
pidfile
pidfile
/var/
/var/
run
run
/
/
openldap
openldap
/
/
slapd
slapd
.
.
pid
pid
}
}
argsfile
argsfile
/var/
/var/
run
run
/
/
openldap
openldap
/
/
slapd
slapd
.
.
args
args
}
“pidfile” direktifi OpenLDAP (slapd)’in PID’i nereye yazacagini
tanimlar.
}
”argsfile” direktifi, OpenLDAP’in komut satirinda hangi parametre ile
çalisacagini belirler.
}
}
/
/
usr
usr
/
/
local
local
/
/
libexec
libexec
/
/
slapd
slapd
-
-
h
h
ldapi
ldapi
://%2fvar%2frun%2fopenldap%2fldapi/
://%2fvar%2frun%2fopenldap%2fldapi/
ldap
ldap
://0.0.0.0/
://0.0.0.0/
-
-
u
u
ldap
ldap
-
-
g
g
ldap
ldap
OpenLDAP (slapd.conf)
}
}
modulepath
modulepath
/
/
usr
usr
/
/
local
local
/
/
libexec
libexec
/
/
openldap
openldap
}
}
moduleload
moduleload
back
back
_
_
bdb
bdb
}
“modulepath” direktifi, OpenLDAP tarfindan
yüklenebilir modüllerin (overlays) yerini
}
gösterir.
}
“moduleload” direktifi ile verilen tanim bu dizinde
olmalidir. Burada “back_bdb” kullanilmistir.
}
Bu sekilde “Berkeley Database” kullanilabilecektir
.
.
OpenLDAP (slapd.conf)
}
}
database
database
bdb
bdb
}
}
suffix
suffix
"
"
dc
dc
=
=
marmara
marmara
,
,
dc
dc
=edu,
=edu,
dc
dc
=tr"
=tr"
}
}
rootdn
rootdn
"
"
cn
cn
=
=
root
root
,
,
dc
dc
=
=
marmara
marmara
,
,
dc
dc
=edu,
=edu,
dc
dc
=tr"
=tr"
}
}
rootpw
rootpw
{SSHA}K73K9RFa7ti+
{SSHA}K73K9RFa7ti+
Dz
Dz
+RpCyG9L6M0YXyb5SE
+RpCyG9L6M0YXyb5SE
}
“database” direktifi Data Information Tree (DIT)’nin veritabani
çesidini belirler
}
“suffix” direktifi veritabaninda tutulacak Data Information Tree
(DIT)’nin hiyerarsisini yada Distinguished Name’in en üst
dügüm noktasini belirler.
}
“rootdn” en üst dügüm noktasini “rootpw” direktifinde verilen
sifre ile erisebilecek süper kullanici tanimini belirler.
}
rootpw” direktifi süper kullanicinin veritabanina erisimi için
kullanilir.
}
komut satirinda “slappasswd -h {SSHA} -s konya” kullanilarak
hash li bir sifre olusturulabilir.
OpenLDAP (slapd.conf)
}
}
directory
directory
/var/
/var/
db
db
/
/
openldap
openldap
-
-
data
data
}
}
index
index
objectClass
objectClass
eq
eq
}
}
index
index
uid
uid
eq
eq
}
“directory” direktifi veritabaninin hangi dizinde
tutulacagini belirler
}
“index” direktifi ile hangi alanlarin indekslemesi
yapilacagi belirlenir. Bu sekilde daha hizli sorgulama
yapilabilir.
LDAP Data Interchange Files (LDIF)
}
base.ldif
}
}
dn
dn
:
:
dc
dc
=
=
marmara
marmara
,
,
dc
dc
=edu,
=edu,
dc
dc
=tr
=tr
}
}
objectclass
objectclass
:
:
dcObject
dcObject
}
}
objectclass
objectclass
:
:
organization
organization
}
}
o: Marmara
o: Marmara
Universitesi
Universitesi
LDAP Sunucusu
LDAP Sunucusu
}
}
dc
dc
:
:
marmara
marmara
}
}
#
#
ldapadd
ldapadd
-
-
H
H
ldap
ldap
://127.0.0.1
://127.0.0.1
-
-
x
x
-
-
D
D
"
"
cn
cn
=
=
root
root
,
,
dc
dc
=
=
marmara
marmara
,
,
dc
dc
=edu,
=edu,
dc
dc
=tr"
=tr"
-
-
f
f
base
base
.
Dostları ilə paylaş: |