Çarşamba, Nisan 01, 2009

freeradius + ldap authentication

Freeradius'a ldap hesabıyla bağlanmak için yaptığım yapılandırmayı buraya yazayım ki unutmayayım, hem başkaları da faydalansın. Atım da şurda otlaya dursun :) (bkz. kendi kendine konuşmak).

Aslında ayar dosyalarında kapalı olan birkaç satırı açarak kolayca yapılabiliyor. Önemli olan hangilerinin açılacağını ve Ldap tarafındaki yapıyı bilmek. Problem olduğu zaman freeradiusun da kullanıcıyı doğrularken yaptığına benzer bir ldapsearch komutu ile test etmek, ldap'ın loglarına düşen kayıtları ve freeradius'un hata mesajlarını okumak faydalı oluyor.

Öncelikle freeradiusla gelen şemayı ldap'a ekliyoruz ki böylece freeradius'un baktığı radiusObjectProfile sınıfına sahip kayıtlar oluşturabilelim. Sonra aşağıdaki satıları conf dosyalarında açıyoruz. Hepsi bu.



freeradius 2 serisi için:

radiusd.conf dosyasında:
auto_header = yes
ldap {

server = "192.168.1.2"
identity = "cn=admin,dc=domain"
password = parola
basedn = "dc=domain"
base_filter = "(objectclass=radiusObjectProfile)"
access_attr = "cn"
dictionary_mapping = ${raddbdir}/ldap.attrmap
authtype = ldap
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
dictionary_mapping = ${confdir}/ldap.attrmap
password_attribute = userPassword
set_auth_type = no
}
default dosyasında:
authorize {
ldap
eap {
ok = return
}
}
authenticate {
ldap
Auth-Type LDAP {
ldap
}
}

innertunnel dosyasında:
authorize {
ldap
}
authenticate {
Auth-Type LDAP {
ldap
}
eap
}

ldap.attrmap dosyasında:

replyItem Tunnel-Type radiusTunnelType
replyItem Tunnel-Medium-Type radiusTunnelMediumType
replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId
checkItem User-Password userPassword