Fileserver für die Domain aufsetzen

Aus Vosp.info
Version vom 29. Juli 2018, 16:19 Uhr von HK (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Container fs.test2.local erstellen == === Externe Links === [https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member Setting_up_Samba_as_a_Dom…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Container fs.test2.local erstellen

Externe Links

Setting_up_Samba_as_a_Domain_Member

Container fs.test2.local erzeugen

lxc-create -t debian -n fs.test2.local -- -r stretch

Zeitzone festlegen

dpkg-reconfigure tzdata

Software installieren

apt install vim acl less samba inetutils-ping winbind libnss-winbind


Vorbereitung der Installation

  • Alle Prozesse, die mit dem folgenden Befehl gefunden werden können, müssen beendet werden.
ps ax | egrep "samba|smbd|nmbd|winbindd"
  • Der Befehlt stoppt die Prozesse.
systemctl stop samba smbd nmbd winbind

Samba-Configfile löschen für einen sauberen Start.

rm /etc/samba/smb.conf 

Sämtliche Datenbanken, die auf .tdb und .ldb enden, löschen.
Mit dem folgenden Befehl lassen sich die Orte finden, an denen sie liegen.

smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
  LOCKDIR: /var/run/samba
  STATEDIR: /var/lib/samba
  CACHEDIR: /var/cache/samba
  PRIVATE_DIR: /var/lib/samba/private
  • In Debian Stretch liegen sie an den oben gezeigten Orten.
  • Der folgende Befehl löscht die Datenbanken auf einen Schlag.
rm /var/run/samba/*.tdb /var/run/samba/*.ldb /var/lib/samba/*.tdb /var/lib/samba/*.ldb /var/cache/samba/*.tdb /var/cache/samba/*.ldb /var/lib/samba/private/*.tdb /var/lib/samba/private/*.ldb

Beitritt der Maschine in die Domain vorbereiten

DNS konfigurieren

  • Die Namensauflösung muss funktionieren.
  • Ausführen im Container "samba4"
samba-tool dns add localhost test2.local fs.test2.local A 10.8.190.4 -U administrator --password=XXXXXX
samba-tool dns add localhost 190.8.10.in-addr.arpa 4 PTR fs.test2.local -U administrator --password=XXXXXXX
  • Damit das Programm "net" arbeiten kann, muss es den Namen des Host auflösen können.
  • Mit dem folgenden Befehl kann das geprüft werden.
# getent hosts fs
  • Das gewünschte Ergebniss sollte so aussehen.
10.8.190.4     fs.test2.local	fs
  • Die Datei "/etc/hosts" sollte bis auf die Werte aussehen wie folgt. Der DNS-Server löst den Namen auch auf. So geht es schneller.
vim /etc/hosts
127.0.0.1	localhost
10.8.190.4     fs.test2.local	fs

Kerberos konfigurieren

  • Samba unterstützt Heimdal und MIT Kerberos back ends. Um Kerberos auf dem zukünftigen Domainmitglied einzurichten, trage die folgenden Werte in /etc/krb5.conf ein:
vim /etc/krb5.conf
[libdefaults]
	default_realm = TEST2.LOCAL
	dns_lookup_realm = false
	dns_lookup_kdc = true

Samba konfigurieren

]

  • Als Backend wurde "rid" gewählt.
  • Wichtiger Vorteil:
    • Alle Domain User user accounts und groups sind automatisch auf allen Domain Mitgliedern vorhanden.
  • Nachteil/Bitte beachten:
    • Alle Domain Mitglieder müssen die selbe Config nutzen, um den oben genannten Vorteil zu haben.
# vim /etc/samba/smb.conf
[global]
       security = ADS
       workgroup = TEST2
       realm = TEST2.LOCAL

       log file = /var/log/samba/%m.log
       log level = 1

       # Default ID mapping configuration for local BUILTIN accounts
       # and groups on a domain member. The default (*) domain:
       # - must not overlap with any domain ID mapping configuration!
       # - must use a read-write-enabled back end, such as tdb.
       # - Adding just this is not enough
       # - You must set a DOMAIN backend configuration, see below
       idmap config * : backend = tdb
       idmap config * : range = 3000-7999

# Backend: rid
       # Template settings for login shell and home directory
       winbind nss info = template
       template shell = /bin/bash
       template homedir = /home/%U

       # idmap config for the TEST2 domain
       idmap config TEST2 : backend = rid
       idmap config TEST2 : range = 10000-999999

NSS konfigurieren

  • Damit sich Domainuser am System anmelden und/oder deren ID auch auf das Linux-System gemappt werden.
# vim /etc/nsswitch.conf
  • Die folgenden Zeilen in der Datei müssen dafür bearbeitet werden.
passwd:         files winbind
group:          files winbind


smbd und nmbd starten

# systemctl start smbd nmbd

Der Domäne beitreten

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- TEST2
Joined 'TEST2' to dns domain 'test2.local'
DNS Update for fs.test2.local failed: ERROR_DNS_UPDATE_FAILED
DNS update failed: NT_STATUS_UNSUCCESSFUL
  • Der Fehler resultiert daraus, das der DNS-Eintrag schon vorhanden ist und kann ignoriert werden.

winbind

systemctl restart winbind

Shares

  • Shares können auch per Samba-Registry eingerichtet werden. Die Performance ist besser.
  • Shares in der /etc/samba/smb.conf zu definieren führt zu einer besseren Lesbarkeit.

Ein "browseable = no" kann einen kleinen Schutz gegen Vandalismus bieten. Das ist allerdings "security by obscurity".

Roaming Profile

# mkdir -p /local/samba/profiles/
# vim /etc/samba/smb.conf
[Profiles]
       path = /local/samba/profiles/
       read only = no

Fehler Roaming Profile

  • Es traten Fehler mit der Profilsyncronisierung auf.
  • Neue Dateien wurde nicht mehr im Profil abgespeichert
# journalctl -xn 100|grep -i oplock
  • Oplock break failed for file schueler.V2/ntuser.ini
  • Workaround
# vim /etc/samba/smb.conf
veto oplock files = /NTUSER.DAT/

Folder Redirects

# mkdir -p /local/samba/
# vim /etc/samba/smb.conf
[Redirects]
       path = /local/samba/redirects/
       read only = no

Container opsi-1.test2.local erstellen

Container opsi-1.test2.local erzeugen

lxc-create --name opsi-1.test2.local -t debian