LDAP Proxy Sunucu Kurulumu
Tags: ldap, proxy, vekil, ad
Published: 2020-06-28 09:53:37

Çeşitli koşullarda LDAP Proxy ihtiyacı duyulabilir. Bu gibi durumlar için OpenLDAP'ı kullanabiliriz. Arkaplanda MS Aktif Dizin veya SAMBA DC olması herhangi bir fark oluşturmamakta. Tabi ki en önemli nokta adreslenecek niteliği belirlemek olacaktır.

Örneğimizde 389 portu üzerinden LDAP proxy yapmak olduğu için aşağıdaki paketleri kurmanız gerekmektedir. Bu çalışma için Pardus 19.x Sunucu sürümü kullanılmıştır.

```bash
apt install slapd ldap-utils -y
```

Paketleri kurduktan sonra adresinde aşağıdaki dosya içeriğine göre **/etc/ldap/slapd.conf** isminde bir dosya oluşturmanız gerekmektedir. Bu dosyada ADveyaSAMBAIP yerine LDAP kaynağınızın IP veya FQDN adresi, dc=acik,dc=lab yerine ise kendi Temel DN adresinizi yazmanız gerekmektedir.

```bash
### Schemas ###########################################################
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

## Modules ##############################################################
moduleload              back_ldap.la
moduleload              rwm

# Main settings ###############################################################
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args

### Database definition (Proxy to AD) #########################################
database                ldap
readonly                yes
protocol-version        3
rebind-as-user
uri                     "ldap://ADveyaSAMBAIP:389"
suffix                  "dc=acik,dc=lab"
overlay                 rwm
rwm-map                 attribute       uid     sAMAccountName
rwm-map                 attribute       mail    proxyAddresses

### Logging ###################################################################
loglevel                0
```

Bu işlemi yaptıktan sonra dosyada herhangi bir sorun olup olmadığına dair kontrol için aşağıdaki komutu çalıştırabilirsiniz. İlgili komutta çeşitli uyarılar (warnings) olabilir. Bunlar önemli değil ama "config file testing succeeded" mesajını gördüyseniz herhangi bir problem yok.

```bash
slaptest -f /etc/ldap/slapd.conf
```

Komut çıktısında " PROXIED attributeDescription "SAMACCOUNTNAME" inserted." ve " PROXIED attributeDescription "PROXYADDRESSES" inserted." gibi iki uyarı göreceksiniz. Normal şartlarda bu pek önemli olmasa da, çözüm için aşağıdaki şema tanımını OpenLDAP şemasına eklemeniz gerekmektedir.

```
attributetype ( 1.2.840.113556.1.4.221
       NAME 'sAMAccountName'
       SYNTAX '1.3.6.1.4.1.1466.115.121.1.15'
       SINGLE-VALUE )
 
 attributetype ( 1.2.840.113556.1.2.210
       NAME 'proxyAddresses'
       SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )
```

Bu adımda ***/etc/default/slapd*** dosyasının ilk satırlarında yer alan SLAPD_CONF satırını aşağıdaki içerik ile değiştirmeniz gerekmekte.

```
SLAPD_CONF=/etc/ldap/slapd.conf
```

İlgili ayarı yaptıktan sonra slapd servisini yeniden başlatmanız yeterlidir.

```bash
systemctl restart slapd
```

Artık Test için OpenLDAP sunucusunda localhost olarak veya uzak bir sunucuda OpenLDAP sunucusu adresini yazarak aşağıdaki komutun çıktı verdiğini görmeniz gerekmektedir. Tabi ki gerekli giriş bilgilerini ve Temel DN bilgilerini de yazmanız gerekmektedir:

```bash
ldapsearch -h localhost -x -LLL -D "cn=administrator,cn=users,dc=acik,dc=lab" -b "cn=users,dc=acik,dc=lab" -w "ParolaGir" "(cn=Administrator)" name
```

Eğer geri dönüş olarak hata vermek yerine dn ve name bilgileri geldi ise Vekil işlemi gerçekleşmiştir. Kendi testlerinizi de yapabilirsiniz.

Mandatum morte dissolvitur