13.07.2015 Views

FreeRADIUS - Ulak-CSIRT

FreeRADIUS - Ulak-CSIRT

FreeRADIUS - Ulak-CSIRT

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FREE RADIUS VE LDAP ILE 802.1xAG KIMLIK DENETIMI<strong>Ulak</strong>-<strong>CSIRT</strong> Kimlik Denetimi Çalisma GrubuHüseyin YÜCE, Gökhan AKIN, Hüsnü DEMIR


Basliklar} 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


Basliklar} <strong>FreeRADIUS</strong>} PEAP – TTLS Kimlik Denetimi} Kurulum} OpenLDAP} Kurulum} OpenLDAP ? <strong>FreeRADIUS</strong> Entegrasyonu} AG CIHAZI TANIMLARI


Tanimlar} IEEE 802.1xIEEE 802.1x port tabanli ag erisim kontrolstandardidir. Kullanici bilgileri (kullanici adi-parola)yardimi ile aga baglanilmasina izin verilmesini saglar(Bazi özel durumlarda MAC adresidekullanilmaktadir.). Kullanici dogrulama sirasindaEAP (Extensible Authentication Protocol) yöntemikullanilir. Bu sekilde ag erisimi isteyen cihazdandogrulama yapan mekanizmaya kadar kullanicibilgilerin 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 kimlikkanitlama yöntemi degildir.} EAP kimlik kanitlama sürecinde, kimlik kanitlamasunucusu ile istemci arasinda geçen ve taraflarinhangi kimlik kanitlama yöntemini kullanacaklarinibelirler. EAP kimlik kanitlama yöntemi olarak MD5,TLS, TTLS, PEAP, LEAP kullanir.


Tanimlar} EAP ÇesitleriEAP-MD5LEAPEAP-TLSEAP-TTLSPEAPSunucu SertifikasiHayirHayirEvetEvetEvetIstemci SertifikasiHayirHayirEvetHayirHayirWPA AnahtarDegisimiHayirEvetEvetEvetEvetGüvenilirlikHayirHayirEvetEvetEvet


Tanimlar} Hash} Hash belirli bir matematik fonksyonu ile verinin tekyönlü (yani veri geri elde edilemiyecek sekilde) birkontrol numarasi elde etme teknigidir. Hashkaynaginin dogrulanmasi ve veri bütünlügünü testetmek için kullanilir.} MD5 ve SHA1 günümüzde kullanilan popüler birhash algoritmalaridir. Kimlik dogrulama için EAPtüneli yöntemlerinde ve sertifika imzala amaci ileKullanilmaktadirlar.


Tanimlar} Simetrik Sifreleme:Ayni anahtar kelime ile verinin hem sifrelenmesihemde geri çözülmesi seklinde çalisan tekniktir.Veri + Anahtar = Sifreli VeriSifreli Veri + Anahtar = VeriAz sistem kaynagi tüketen bir sifreleme sistemidirancak anahtarin karsilikli haberlesirken taraflaragüvenli ulastirilmasi zordur.


Tanimlar} Asimetrik Sifreleme:Iki anahtardan olusan bu sistemde anahtar1'insifreledigini anahtar2, anahtar2'nin sifreledigi iseanahtar1 açabilir.Veri + Anahtar1 = Sifreli VeriSifreli Veri + Anahtar2 = Veri(Public)(Private)Not:Çift yönlü güvenli haberlesme için 2 çift anahtargerekir.Not2: Asimetrik sifreleme çok sistem kaynagitükettiginden daha çok simetrik anahtarin tasinmasiiçin kullanlilir.


Tanimlar} Sertifika} Sertifika Public anahtari ve bunun yani sira hizmetalinacak kurumun Adi, web adresi, mail adresi ...vsbilgileri barindiran bir dökümana verilen addir.


Tanimlar} Imza - 1Bay ABay BPrivateAPublicAPublicABay A’nin+Bilgileri= +SifreliGüvenilen(Kök)PublicGHashPrivateGGüvenilenkisiPublicGBay G’ninBilgileriGüvenilen(Kök)


Tanimlar} Imza - 2Bay BBay A’ninHashGüvenilen(Kök)PublicG+Sifreli+ =PublicG=?


Tanimlar} Imza - 3Bay GBay A


Tanimlar} EAP ÇesitleriEAP-MD5LEAPEAP-TLSEAP-TTLSPEAPSunucu SertifikasiHayirHayirEvetEvetEvetIstemci SertifikasiHayirHayirEvetHayirHayirWPA AnahtarDegisimiHayirEvetEvetEvetEvetGüvenilirlikHayirHayirEvetEvetEvet


Tanimlar} EAP-TLS} TLS (Iletim Katmani Güvenligi), Secure Sockets Layer (SSL) in atasiolan bir kriptografi protokolüdür.} Protokol iki katmandan olusur.} TLS kayit protokolü : TLS kayit protokolü ile veriler simetrik sifrelemeanahtarlari ile sifrelenir.} TLS el sikisma (handshake) protokolü : Bu anahtar TLS el sikismaprotokolü kullanilarak alici ve verici tarafindan paylasilir. TLS elsikisma protokolü ile haberlesecek taraflarin birbirleriniyetkilendirmeleri, sifreleme algoritmasi ve anahtarlarin karsiliklidegisimi saglanir.}} Bu çift yönlü dogrulama özelligi ile EAP-TLS en güvenilir EAPyöntemlerinden biri olarak bilinir. Ancak her istemciye özgün sertifikaüretilerek, güvenli bir sekilde dagitilmasini gerektiren bu yönteminuygunalmasi zordur.


Tanimlar} AAA} Authentication (Yetkilendirme) : Kullanici ya dakullanicilara sisteme, programa veya aga erisimhakkinin verilmesidir.} Authorization (Kimlik Dogrulama) : Sunucu,anahtar veya yönlendirici kullanimlarinda cihaz ya dakullanicinin kimliginin onaylanmasidir.} Accounting (Hesap Yönetimi) : Herhangi birkullanicinin ne yaptigi, kullanici hareketleri kullaniciveri baglantilari ve kullanici sistem kayitlarininizlenebilmesi amaciyla yapilan islemdir.


RADIUS Uygulamalari} <strong>FreeRADIUS</strong>} Windows IAS} Cisco ACS} Juniper SBR


<strong>FreeRADIUS</strong>} Çalisma Grubu Kapsaminda GPL lisansina sahip<strong>FreeRADIUS</strong> ile çalisilistir.} <strong>FreeRADIUS</strong> : PAP,CHAP,MS-CHAP,EAP-MD5,EAP-TLS, PEAP, EAP-TTLS ...VS ile kimlikdenetimi yapabilmektedir.} Ayrica kendi bünyesinde Kullanici veritabaniolusturulabildigi gibi harici bir kaynaktandakullanici denetimi yapabilmektedir.} Kurulum ile ilgili detaylari <strong>FreeRADIUS</strong> kurulumsunumunda bulabilirsiniz.


LDAP Nedir} LDAP (Lightweight Directory Access Protocol : HafifDizin 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 olanen 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 dosyalarindatanimlanir.} Agaç yapisi seklinde olan bu yapiya DataInformation Tree (DIT) denir.} Veri bilgi agacinin tepesinde ise kök (root) vardir.} LDAP dizinine entry'ler LDIF (LDAP DataInterchange Format) girdi dosyasi ile eklenir


LDAP Nedir} Sart olmamakla birlikte genellikle agaç yapisinintepe noktasi yani kök 'o' (organization)'dur.} Daha altinda genellikle 'ou' (organizational unit)'lerbulunur.} Her organization'un altinda çesitli 'cn' (commonname)'ler bulunur. Bir ou'nun altina baska bir oukonabilir.


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 olarakkuruldugunda yapilandirma dosyalari Linuxsistemlerde “/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/local/etc/openldap/schema/core.schema/usr/local/etc/openldap/schema/cosine.schemaschemaBu iki girdi gerekli olan LDAPv3 sistemini ve X.500 tanimlar} pidfile} argsfile/var/runrun/openldap/slapd.pidpid/var/runrun/openldap/slapd.argsargs} “pidfile” direktifi OpenLDAP (slapd)’in PID’i nereye yazacaginitanimlar.} ”argsfile” direktifi, OpenLDAP’in komut satirinda hangi parametre ileçalisacagini belirler.} /usr/local/libexec/slapd-hldapi://%2fvar%2frun%2fopenldap%2fldapi/ldap://0.0.0.0/-uldap -g ldap


OpenLDAP (slapd.conf)} modulepath} moduleload/usr/local/libexec/openldapback_bdbbdb} “modulepath” direktifi, OpenLDAP tarfindanyüklenebilir modüllerin (overlays) yerini} gösterir.} “moduleload” direktifi ile verilen tanim bu dizindeolmalidir. Burada “back_bdb” kullanilmistir.} Bu sekilde “Berkeley Database” kullanilabilecektir.


OpenLDAP (slapd.conf)} database bdb} suffix "dc=marmara,dc=edu,=edu,dc=tr"} rootdn "cn=root,dc=marmara,dc=edu,=edu,dc=tr"} rootpw {SSHA}K73K9RFa7ti+DzDz+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 üstdügüm noktasini belirler.} “rootdn” en üst dügüm noktasini “rootpw” direktifinde verilensifre ile erisebilecek süper kullanici tanimini belirler.} rootpw” direktifi süper kullanicinin veritabanina erisimi içinkullanilir.} komut satirinda “slappasswd -h {SSHA} -s konya” kullanilarakhash li bir sifre olusturulabilir.


OpenLDAP (slapd.conf)} directory} index} index/var/dbdb/openldap-datadataobjectClassuid} “directory” direktifi veritabaninin hangi dizindetutulacagini belirler} “index” direktifi ile hangi alanlarin indekslemesiyapilacagi belirlenir. Bu sekilde daha hizli sorgulamayapilabilir.eqeq


LDAP Data Interchange Files (LDIF)} base.ldif} dn: dc=marmaramarmara,dc=edu,=edu,dc=tr} objectclass: dcObject} objectclass: organization} o: Marmara Universitesi LDAP Sunucusu} dc: marmara} #ldapadd-H ldap://127.0.0.1-x -D"cn=root,dc=marmara,dc=edu,=edu,dc=tr"-f base.ldif–W


OpenLDAP ? <strong>FreeRADIUS</strong> Entegrasyonu


OpenLDAP ? <strong>FreeRADIUS</strong>} <strong>FreeRADIUS</strong> kimlik dogrulamasinda, kullanicikimlikleri bilgileri ve erisim tanimlari sunucu üzerindeyapilabilecegi gibi kullanim kolayligi saglayacakLDAP sunucusunda da yapilabilir.} LDAP sunucunda daha önceden tanimlanmiskullanici tanimlarini da kullanmak mümkündür.} Daha önce kurulan <strong>FreeRADIUS</strong>’la birlikte gelenRADIUS LDAP sema dosyasini“/usr/local/share/doc/freeradius/ldap_howto.txt”dosyasindan düzenleyerek RADIUS-LDAPv3.schema adinda OpenLDAP schemadizinine kopyalanmasi gerekir.


OpenLDAP ? <strong>FreeRADIUS</strong>} “slapd.conf” dosyasina asagidaki girdinin girilmesi gerekir.include /usr/local/etc/openldap/schema/RADIUS-LDAPv3.schemafreeradiusbase.ldifdn: ou=radiusradius,dc=marmara,dc=edu,=edu,dc=trobjectclass: organizationalunitou: radiusdn: ou=profilesprofiles,ou=radius,dc=marmara,dc=edu,=edu,dc=trobjectclass: organizationalunit#ldapadd ou: profiles-H ldap://127.0.0.1-x -D D "cn"cn=root,dc=marmara,dc=edu,=edu,dc=tr"-f dn: freeradiusbase.ldifou=usersusers,ouou=radius,dc=marmara,dc=edu,=edu,dc=trobjectclass: organizationalunitou: usersdn: ou=adminsadmins,ou=radius,dc=marmara,dc=edu,=edu,dc=trobjectclass: organizationalunitou: admins


freeradius.ldifdn: uid=vlan_02,ou=profiles,ou=radius,dc=marmara,dc=edu,dc=truid: vlan_02radiusTunnelMediumType: IEEE-802radiusTunnelType: VLANradiusTunnelPrivateGroupId: 2objectClass: radiusprofiledn: uid=hyuce,ou=users,ou=radius,dc=marmara,dc=edu,dc=trobjectclass: radiusprofileuid: hyuceuserPassword: hyuceradiusGroupName: vlan_02


freeradius.ldifdn:cncn=freeradius,ou=admins,ou=radius,dc=marmara,dcdc=edu, =edu,dc=trobjectclass: personsn: freeradiuscn: freeradiususerPassword: freeradiusdn:cncn=replica,ou=admins,ou=radius,dc=marmara,dc=edu,=edu,dc=trldapadd -H ldap://127.0.0.1-x -D D "cn"cn=root,dc=marmara,dc=edu,=edu,dc=tr"objectclass: personfreeradiusbase.ldifsn: replicacn: replicauserPassword: replica#ldapadd-f freeradiusbase


ldapsearch} #ldapsearch-x -b"ou=radius,dc=marmara,dc=edu,=edu,dc=tr""(uiduid=hyuce)"} # hyuce, users, radius, marmara.edu.tr} dn:uiduid=hyuce,ou=users,ou=radius,dc=marmara,dc=edu,=edu,dc=tr} objectClass: radiusprofile} uid: hyuce} radiusGroupName: vlan_02} userPassword:: aHl1Y2U=


<strong>FreeRADIUS</strong>} Radius sunucu için kullanacagimiz yapilandirmadosyalari “radiusd.conf” , “eap.conf”, “users” ,“clients.conf” ve raddb/certs dizindeki “ca.cnf” ,“client.cnf” , “server.cnf” dosyalaridir.} raddb/certs dinindeki sertifika bilgilerin istege göredüzenlenebilir. Bu yapilandirma dosyalarinda ki“input_password” ve “output_password” girdileridaha sonra kullanilacagindan degistirilmesi uygunolacaktir. Bu degisikliklerden sonra sertifikaolusturmak için “make” komutunu kullanaraksertifikalarin olusturulmasi saglanir.


adiusd.conf…. Kirpildimodules {$INCLUDE eap.conf# Lightweight Directory Access Protocol (LDAP)#authorize {eapldap {suffixserver = "127.0.0.1"ldap#identity="cn=freeradius,ou=admins,ou=radius,dc=marmara,dc=edu,=edu,dc=tr"}# password = freeradiusauthenticate {basedn = "ou"ou=radius,dc=marmara,dc=edu,=edu,dc=tr"eap}filter = "(uiduid=%{ =%{Stripped-User-Name:Name:-%{ %{User-Name}})"# base_filter= "(objectclassobjectclass=radiusprofile)"tls {start_tlstls = no}dictionary_mapping= ${confdirconfdir}/ }/ldap.attrmapattrmappassword_attributeattribute = userPassword}…. Kirpildi


usersDEFAULT Auth-Type:= LDAPFall-Through= 1


eap.confeap {}default_eapeap_type= ttlstimer_expireexpire = 60ignore_unknownunknown_eap_types= nocisco_accountingaccounting_username_bug= no## EAP-TLStls {certdir = ${confdirconfdir}/ }/certscadir = ${confdirconfdir}/ }/certsprivate_keykey_password= marmaraprivate_keykey_file = ${certdircertdir}/server. }/server.pemcertificate_file = ${certdircertdir}/server. }/server.pemCA_file = ${cadircadir}/ }/ca.pemdh_file = ${certdircertdir}/ }/dhrandom_file = ${certdircertdir}/ }/randommake_certcert_commandcommand = "${certdircertdir}/ }/bootstrap"}ttls {}default_eapeap_type= md5copy_requestrequest_to_tunneltunnel = nouse_tunneledtunneled_reply= yes


clients.confclient localhost {}ipaddr = 127.0.0.1secret = testing123shortname = localhostrequire_messagemessage_authenticatorauthenticator = nonastype= other


Test# radtest hyuce "hyuce" localhost 1 testing123Sending Access-Requestof id 241 to 127.0.0.1 port 1812User-Name = "hyuce"hyuce"User-Password= "hyuce"hyuce"NAS-IPIP-Address= 192.168.1.10NAS-Port = 1rad_recvrecv: : Access-AcceptAccept packet from host 127.0.0.1 port 1812,id=241, length=20#radtesthyuce "hyucex" localhost 1 testing123Sending Access-Requestof id 217 to 127.0.0.1 port 1812User-Name = "hyuce"hyuce"User-Password= "hyucex"hyucex"NAS-IPIP-Address= 192.168.1.10NAS-Port = 1rad_recvrecv: : Access-Rejectpacket from host 127.0.0.1 port 1812,id=217, length=20


Örnek Ag Cihazi Tanimlari} Cisco 2950 Ethernet Anahtari} aaa new-model} aaa authentication login default group line} aaa authentication dot1x default group radius} aaa accounting system default start-stop group radius} dot1x system-auth-control} radius-server host 192.168.1.103 auth-port 1812 acct-port1813 key 1234} interface FastEthernet0/1} switchport mode access} dot1x port-control auto


Örnek Ag Cihazi Tanimlari} Cisco Aironet Kablosuz Erisim Cihazi - 1


Örnek Ag Cihazi Tanimlari} Cisco Aironet Kablosuz Erisim Cihazi - 2


Örnek Ag Cihazi Tanimlari} Cisco Aironet Kablosuz Erisim Cihazi - 3


} TESEKKÜRLER

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!