An Interest In:
Web News this Week
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
- March 14, 2024
Freeradius zerinde PEAP ve LDAP ayarlar
Freeradius zerinde PEAP kullanarak LDAP zerindeki kullanclarla giri yaplabilmesine ynelik dzenli bir ieriin olmadn fark ettim. Aslnda gemi zamanl Ubuntu zerinde eitli yazlar olmasna ramen zellikle CentOS ve RPM tabanl sistemlerde hi bulamadm sylemek isterim. Bu belge boyunca iin CentOS 7 ve benzerleri zerinde rnekler yapacam belirtmek isterim.
Belge sresince yapacaklarmz anlatrsam, ncelikle LDAP kaynana (rnein Aktif Dizin) kendimizi dahil ediyoruz. Sonrasnda baka bir yazda bahsettiim sertifikalar hazrlyoruz. Sonrasnda freeradius zerinde ayarlar tamamlyoruz.
Sunucumuzu domaine ekleyelim
Bu adm iin nelikle freeradius paketinin yklenmesi ile balayabiliriz.
yum install freeradius freeradius-ldap
Daha sonrasnda domaine eklenme konusunda domainin adresini /etc/resolv.conf dosyas ierisinde "nameserver IPADRES" olarak ekledikten sonra gerekli paketleri kurabiliriz.
yum install samba winbind krb5-workstation samba-winbind-clients
Paketler yklendikten sonra samba ayarlarn yapmak gerekmektedir. /etc/samba/smb.conf dosyas ieriini aadaki gibi yapmanz gerekmektedir.
Bu dosya iinde sadece ACIKLAB yazan yerleri domain workgrup ad, ACIKLAB.LAB yazan yerleri de kendi domaininize gre dzenlemeniz gerekiyor. 4 yerde domain, 1 yerde workgrup bulunduunu belirtmek isterim.
[global] workgroup = ACIKLAB security = ads realm = ACIKLAB.LAB domain master=no local master=no preferred master=no load printers=no printing=bsd printcap name=/dev/null disable spoolss=yes idmap config * : backend = tdb idmap config * : range = 300000-301000 idmap config ACIKLAB.LAB:backend = ad idmap config ACIKLAB.LAB:schema_mode = rfc2307 idmap config ACIKLAB.LAB:range = 500-200000 winbind enum users=yes winbind enum groups=yes winbind use default domain=yes winbind nested groups=yes winbind refresh tickets=yes winbind offline logon=yes template shell=/bin/false client use spnego=yes client ntlmv2 auth=yes encrypt passwords=yes restrict anonymous=2 log file=/var/log/samba/samba.log log level=2 dcerpc endpoint servers=remote ntlm auth = mschapv2-and-ntlmv2-only
Bu ayar yaptktan sonra aadaki komut ile servisleri yeniden balatp domainde bildiiniz bir kullancnn ekilip ekilemediini kontrol etmeniz gerekmektedir.
systemctl restart smb winbindkinit [email protected] net ads join -kwbinfo -i ali
Eer bir sorun yoksa ilk ve en nemli aamay getiimizi syleyebilirim. AYrca kerberos ile ilgili dosya hakknda bilginiz varsa o ksm kendinize gre doldurmanz da nermekteyim ama ok detaya girmemek iin bu bala girmiyorum.
Ksaca bir test yaplmas istenirse aadaki komut ile operation completed successfully mesajn almak da arada gzel olabilir:
ntlm_auth --request-nt-key --domain=ACIKLAB.LAB --username=ali --password=Passw0rd
Unutulmamas gereken ve CentOS iin ok kaynak bulamadm en nemli adm da aadaki komutlarn da uygulanmas. Ubuntu'da farkl isimlerde oluturulduu iin dokmanlarda bu ksm karmaktadr.
usermod -a -G wbpriv radiusdchown root:wbpriv /var/lib/samba/winbindd_privileged/
Sertifikalarn hazrlanmas
Bu ksm da olduka nemli bir ksm olup ayr bir dosyada bahsettim. Fakat bu ksmda var olan bir sertifika otoritesini kullanmaya ynelik baka bir yaz da hazrlayacam.
https://dev.to/aciklab/freeradius-uzerinde-sertifika-olusturulmasi-nm
PEAP iin modlarn ayarlanmas
PEAP iin en nemli kullanacamz 3 mod bulunmakta. ldap, mschap ve eap modlar.
LDAP modu
LDAP modu "/etc/raddb/mods-enabled/ldap" adresinde olup eer oluturulmamsa siz oluturabilirsiniz. erii aadaki gibi olmaldr.
ldap { server = 'ldaps://192.168.1.180' identity = "cn=administrator,cn=Users,dc=aciklab,dc=lab" password = "Passw0rd" basedn = "cn=Users,dc=aciklab,dc=lab" base_filter = "(objectclass=user)"# filter = "(&(sAMAccountName=%{Stripped-User-Name:-%{User-Name}})(memberOf:1.2.840.113556.1.4.1941:=CN=wireless_corp,OU=Networks,DC=aciklab,DC=lab))" ldap_connections_number = 5 timeout = 4 timelimit = 3 net_timeout = 1 dictionary_mapping = ${confdir}/ldap.attrmap keepalive { idle = 60 probes = 3 interval = 3 }}
Bu dosyada en nemli ksm server adresini dzgnce yazmak, identity ve parolasn doru ekilde yazmaktr. Ve tabi ki basedn ve base_filter da temel kullanm olarak dzenlenmelidir. Bu konular bilmiyorsanz LDAP ile ilgili eitli yazlarmz inceleyebilirsiniz.
MSCHAP modu
MSCHAP modu "/etc/raddb/mods-enabled/mschap" adresinde olup eer oluturulmamsa siz oluturabilirsiniz. erii aadaki gibi olmaldr.
mschap { use_mppe = yes require_encryption = yes require_strong = yes with_ntdomain_hack = yes ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --domain=ACIKLAB.LAB --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"}
Bu ksmdaki en nemli nokta da samba-winbind-clients paketi ile birlikte gelen ntlm_auth'in domain parametresindeki ACIKLAB.LAB' kendi domaininizle deitirmenizdir.
EAP modu
EAP modu "/etc/raddb/mods-enabled/eap" adresinde olup eer oluturulmamsa siz oluturabilirsiniz. erii aadaki gibi olmaldr.
EAP'n PEAP algoritmasn kullanacamz iin sre aadaki gibi olmaldr. "private_key_password" ksm sertifikalarnz olutururken girdiiniz parola olmas gerekmektedir. Dier ksmlar iin sertifika adreslerinde bir oynama yapmadysanz ayn kalmasnda bir bahsur bulunmamaktadr.
eap { default_eap_type = peap timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 4096 tls { certdir = ${confdir}/certs cadir = ${confdir}/certs private_key_password = birbir private_key_file = ${certdir}/server.pem certificate_file = ${certdir}/server.pem ca_file = ${cadir}/ca.pem dh_file = ${certdir}/dh random_file = /dev/urandom ca_path = ${cadir} cipher_list = "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:ECDH+AES128:!aNULL:!MD5" #make_cert_command = "${certdir}/bootstrap" ecdh_curve = "prime256v1" } peap { default_eap_type = mschapv2 copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" } mschapv2 { }}
Baz durumlar iin gvenlik nedeniyle aadaki satrlarn da eklenmesi nerilmektedir:
tls_min_version = "1.0" tls_max_version = "1.2"
Servis ayarlarnn tamamlanmas
Bu adm iin "/etc/raddb/sites-enabled/" klasr ierisinde bir dosyada, rnein default isimli bir dosyada aadaki gibi bir ierik tanmlanmas gerekmektedir. Bu ksmda daha detayl eyler yaplabilir ama imdilik detaya girmiyorum. Onun iin "/etc/raddb/sites-enabled/default" dosyas ierii iin aadaki gibi dzenleme yaplmas gerekiyor:
listen { type = auth ipaddr = * port = 1812 }authorize { preprocess auth_log suffix eap { ok = return } expiration logintime}authenticate { Auth-Type MS-CHAP { mschap } eap}session { radutmp}post-auth { Post-Auth-Type REJECT { attr_filter.access_reject }}
Ayrca ayn yerde "/etc/raddb/sites-enabled/inner-tunnel" isimli dosyann ierii de aadaki gibi yaplmas gerekmektedir:
server inner-tunnel { authorize { mschap suffix update control { Proxy-To-Realm := LOCAL } eap { ok = return } ldap expiration logintime } authenticate { Auth-Type MS-CHAP { mschap } eap } session { radutmp } post-auth { Post-Auth-Type REJECT { attr_filter.access_reject } }}
Bu iki dosyann dzenlenmesi sonrasnda artk temel olarak servisimizin ayarlar tamamlanmtr.
Radius servisini kimler kullanacak?
Radius servisini kimlerin kullanacan belirlemek iin /etc/raddb/clients.conf dosyas ierisinde muhtemelen en son satrlar aadaki gibi subnet aral ve secret anahtar girilebilir. Bu anahtar normal koullarda router zerine girilecektir.
client 192.168.1.0/24 { secret = bir shortname = istemci1}
Radius servisinin altrlmas
Radius servisini debug yapmak iin ayakst ilem(process) olarak altrmak iin aadaki komutu kullanabilirsiniz. Denemeniz bittiinde kapatabilirsiniz ama kapattnzda servisin almayacan unutmayn:
radiusd -XXX
Bu ekilde balattnzda "Info: Ready to process requests" isimli bir logu grmezseniz yukarda bir yerlerde hata logunu aratmanz gerekir. Bu mesaj gryorsanz yaplandrmada bir hata bulunmamaktadr.
Ayrca her eyden eminseniz artk servis olarak da balatabilirsiniz. stteki ilem ayakta ise sizi servis olarak balatmayaca iin ncelikle ilemi durdurmanz gerekir. Sonrasnda aadaki komut ile servisi balatabilirsiniz ve kontrol edebilirsiniz:
systemctl restart radiusdsystemctl status radiusd
EAP ayarlarnn test edilmesi
EAP ayarlarnn test edilmesi iin ise aadaki dokman inceleyebilirsiniz:
https://dev.to/aciklab/eap-ayarlarinin-kontrol-edilmesi-41lp
Original Link: https://dev.to/aciklab/freeradius-uzerinde-peap-ve-ldap-ayarlari-3f60
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To