Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
June 19, 2022 06:15 pm GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To