İki Samba Domain Arasında Trust İlişkisi Kurma
Tags: linux, domain, trust, samba
Published: 2021-10-13 13:22:11

Merhabalar ben Turan, bu yazımda iki farklı domain arasında nasıl trust ilişkisi kurulacağını göstereceğim. Hadi başlayalım :)

## Trust Nedir?
Bir domain'e trust oluşturularak, domainler arası kullanıcılara, gruplara ve kaynaklara erişim sağlanabilir. Yani A domaininden B domainine trust oluşturulursa A domaini üzerindeki admin, B domaini kullanıcıları ve gruplarına erişebilir ve A domaini içerisindeki kaynakları kullanmaları için gerekli yetkileri bu kullanıcı ve gruplara sağlayabilir.

## Ön Gereklilikler
Her iki samba DC'nin de zaman ayarı doğru olmalıdır.
Zaman servislerinin doğru konfigure edilmesi ve çalışır durumda olduğundan emin olunmalıdır.

## DNS Konfigurasyonu
İlk olarak iki farklı domain'imiz olan turan.lab ile narut.lab domainlerinin ilk domain controller (DC)'ları üzerinde DNS ayarı yapılmalıdır ki birbirlerini görebilsinler. Bunun için ` /etc/samba/smb.conf ` dosyası düzenlenmelidir.
```
nano /etc/samba/smb.conf
```
Bu dosya içerisinde [global] başlığı altında **dns forwarder** kısmına diğer DC'nin IP adresi yazılır:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kkhsrvm9ohqtr5r3o9t8.png)

Daha sonra dosya kaydedilip çıkılır ve "samba4" servisi yeniden başlatılır.
```
systemctl restart samba4.service
```

Bu işlemlerin aynısı diğer domainin DC'si üzerinde de gerçekleştirilir:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s9h5110pvfmx6z7v52l0.png)
```
systemctl restart samba4.service
```

Eğer iki taraf birbirlerine ping atabiliyorsa, SRV record'a sahipseler ve kerberos ticket alabiliyorlarsa, DNS ayarı olmuş demektir.

### Ping Atabilme
```
ping narut.lab (TURAN.LAB DC üzerinde çalıştırılır.)
ping turan.lab (NARUT.LAB DC üzerinde çalıştırılır.)
```
### SRV Record Kontrolü
```
host -t srv _kerberos._tcp.narut.lab (TURAN.LAB üzerinde çalıştırılır.)
host -t srv _kerberos._tcp.turan.lab (NARUT.LAB üzerinde çalıştırılır.)
```
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ivh59c1s58hjt2hoowlm.png)
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jcfyl8mrfldhg3htdqu4.png)
 
### Kerberos Ticket Alınması ve Listelenmesi
```
kinit administrator@NARUT.LAB
klist

kinit administrator@TURAN.LAB
klist
```
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3f7zva5ti13dfwqs7qi.png)
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ing7bar3r9pdbwbyd7gx.png)

<br>

### ONE-WAY Trust Oluşturma
One-way trust ilişkisi oluşturulurken "--direction=" parametresi için iki farklı seçenek bulunmaktadır. Bunlar **outgoing** ve **incoming** şeklinde isimlendirilmektedir. Eğer bir A domaininden B domainine tek yönlü bir trust oluşturulursa, bu trust A tarafından outgoing olarak nitelendirilirken B tarafından incoming olarak nitelendirilir. 

Aşağıdaki komut ile diğer domain'e tek yönlü trust oluşturulabilir: (USER yerine yetkili domain kullanıcısı yazılmalıdır.)
```
samba-tool domain trust create toour --type=forest --direction=outgoing --create-location=both -U USER@TOOUR.LAB
```
Yukarıdaki komut çalıştırıldığında **Success** sonucu görüntülenir. Gerekli Trust'ın oluşturulduğunu Trust Listing ile görebiliriz. Aşağıdaki komut ile trust'lar listelenir:
```
samba-tool domain trust list 
```
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pkucnvbasib5slhwr6q6.png)
 

<br>

### TWO-WAY Trust Oluşturma
Çift yönlü trust oluşturulurken "--direction=" parametresine **both** anahtar kelimesi girilir. Aşağıdaki komut ile çift yönlü trust oluşturulabilir: (USER yerine yetkili domain kullanıcısı yazılmalıdır.)
```
samba-tool domain trust create narut --type=forest --direction=both --create-location=both -U USER@NARUT.LAB
```
Yukarıdaki komut çalıştırıldığında **Success** sonucu görüntülenir. Gerekli Trust'ın oluşturulduğunu Trust Listing ile görebiliriz. Aşağıdaki komut ile trust'lar listelenir:
```
samba-tool domain trust list 
```
Eğer bu komut çıktısı olarak ikinci domain listeleniyorsa, trust başarılı bir şekilde kurulmuş demektir.
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tkgtc4jm87ib7otrg4qk.png)


**Not:** Eğer bir domainden diğer domaine trust oluşturulursa (two-way), diğer domain üzerinde trust oluşturma komutunun tekrar çalıştırılmasına ihtiyaç yoktur. Eğer komut yine de çalıştırılırsa aşağıdaki hata ile karşılaşılır:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5anotliislslptxl5atf.png)