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

Aus Vosp.freesn.de
Zur Navigation springen Zur Suche springen
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…“
 
HK (Diskussion | Beiträge)
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

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