Fileserver für die Domain aufsetzen: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(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…“)
 
(Container fs.test2.local erstellen)
Zeile 1: Zeile 1:
== Container fs.test2.local erstellen ==
+
== Container fs.test2.local einrichten ==
 
=== Externe Links ===
 
=== Externe Links ===
  
 
[https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member Setting_up_Samba_as_a_Domain_Member]
 
[https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member Setting_up_Samba_as_a_Domain_Member]
 
=== Container fs.test2.local erzeugen ===
 
lxc-create -t debian -n fs.test2.local -- -r stretch
 
  
 
=== Zeitzone festlegen ===
 
=== Zeitzone festlegen ===
  
  dpkg-reconfigure tzdata
+
  # dpkg-reconfigure tzdata
  
 
=== Software installieren ===
 
=== Software installieren ===
  
  apt install vim acl less samba inetutils-ping winbind libnss-winbind
+
  # apt install vim acl less samba inetutils-ping winbind libnss-winbind
  
  
Zeile 19: Zeile 16:
  
 
* Alle Prozesse, die mit dem folgenden Befehl gefunden werden können, müssen beendet werden.
 
* Alle Prozesse, die mit dem folgenden Befehl gefunden werden können, müssen beendet werden.
  ps ax | egrep "samba|smbd|nmbd|winbindd"
+
  # ps ax | egrep "samba|smbd|nmbd|winbindd"
  
 
* Der Befehlt stoppt die Prozesse.
 
* Der Befehlt stoppt die Prozesse.
  systemctl stop samba smbd nmbd winbind
+
  # systemctl stop samba smbd nmbd winbind
  
 
Samba-Configfile löschen für einen sauberen Start.
 
Samba-Configfile löschen für einen sauberen Start.
  rm /etc/samba/smb.conf  
+
  # rm /etc/samba/smb.conf  
  
 
Sämtliche Datenbanken, die auf .tdb und .ldb enden, löschen.<br>
 
Sämtliche Datenbanken, die auf .tdb und .ldb enden, löschen.<br>
 
Mit dem folgenden Befehl lassen sich die Orte finden, an denen sie liegen.
 
Mit dem folgenden Befehl lassen sich die Orte finden, an denen sie liegen.
  smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
+
  # smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
 
   LOCKDIR: /var/run/samba
 
   LOCKDIR: /var/run/samba
 
   STATEDIR: /var/lib/samba
 
   STATEDIR: /var/lib/samba
Zeile 38: Zeile 35:
 
* Der folgende Befehl löscht die Datenbanken auf einen Schlag.
 
* 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
+
  # 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 ===
 
=== Beitritt der Maschine in die Domain vorbereiten ===
Zeile 44: Zeile 41:
 
* Die Namensauflösung muss funktionieren.
 
* Die Namensauflösung muss funktionieren.
 
* Ausführen im Container "samba4"
 
* 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 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
+
  # 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.
 
* Damit das Programm "net" arbeiten kann, muss es den Namen des Host auflösen können.
Zeile 57: Zeile 54:
 
* 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.
 
* 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
+
  # vim /etc/hosts
  
 
  127.0.0.1 localhost
 
  127.0.0.1 localhost
Zeile 65: Zeile 62:
 
* 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:
 
* 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
+
  # vim /etc/krb5.conf
  
 
  [libdefaults]
 
  [libdefaults]
Zeile 138: Zeile 135:
  
 
=== winbind ===
 
=== winbind ===
  systemctl restart winbind
+
  # systemctl restart winbind
 
=== Shares ===
 
=== Shares ===
 
* Shares können auch per Samba-Registry eingerichtet werden. Die Performance ist besser.
 
* Shares können auch per Samba-Registry eingerichtet werden. Die Performance ist besser.

Version vom 29. Juli 2018, 20:00 Uhr

Container fs.test2.local einrichten

Externe Links

Setting_up_Samba_as_a_Domain_Member

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