linuxmuster / linuxmuster-base7

Mangement scripts for linuxmuster.net V7
GNU General Public License v3.0
13 stars 8 forks source link

linuxmuster setup prevents NT5DS from working #110

Closed MachtDochNix closed 4 years ago

MachtDochNix commented 4 years ago

For detailed description and solution of the problem see:

https://ask.linuxmuster.net/t/probleme-ueber-probleme/5885/27

@HappyBasher: Ich hoffe ich habe es richtig zugeordnet.

HappyBasher commented 4 years ago

@MachtDochNix Bitte nicht so faul sein und im Issue eine genaue Problem- und ggf. Lösungsbeschreibung abgeben. Hier nur einen Thread zu verlinken ist Mist, weil

  1. Threads sind u.U. viel Lesestoff bis die Lösung erscheint.
  2. Threads sind oft nicht eindeutig und müssen interpretiert werden.
  3. Threads weichen nach einigen Posts vom eigentlichen Thema ab.
  4. Link zum Thread ist u.U. irgendwann nicht mehr gültig.

Ich werde keine Issues mehr bearbeiten, die nur einen Link zu einem Forumsthread enthalten. Ergänzend kann der Issue natürlich einen Link enthalten.

VG, Thomas

aloisr commented 4 years ago

Ich zitiere aus dem Thread

"ich habe die Ursache im linuxmuster Setup gefunden, welche verhindert, daß NT5DS nicht funktioniert.

Wie Du schon geschrieben hattest, die ntp.conf. Hier meine Variante mit Anpassungen und der OPNsense als bevorzugte Zeitquelle:

root@server:~# cat /etc/ntp.conf | grep "^[^#]" driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 10.0.0.254 iburst prefer restrict -4 default kod notrap nomodify nopeer noquery limited mssntp restrict -6 default kod notrap nomodify nopeer noquery limited mssntp restrict 127.0.0.1 restrict ::1 restrict source notrap nomodify noquery ntpsigndsocket /var/lib/samba/ntp_signd/

Rechte am ntp_signd Socket:

chgrp ntp /var/lib/samba/ntp_signd/

Entscheidend ist aber, daß in der linuxmuster Standardinstallation apparmor aktiv ist und die dortige Einstellung für ntp nicht stimmt und somit der ntp nicht auf den Samba Socket zugreifen kann, auch wenn die Rechte am Verzeichnis stimmen:

/etc/apparmor.d/usr.sbin.ntpd

...

samba4 ntp signing socket

falsch:

/{,var/}run/samba/ntp_signd/socket rw,

richtig:

/{,var/}lib/samba/ntp_signd/socket rw, ...

Alternativ ist natürlich möglich ntp signd socket directory der smb.conf zu ändern, so daß man die apparmor Konfiguration nicht anpassen muß. Das müssen die Entwicker entscheiden, was einfacher/sauberer ist.

Am Client muß jetzt nichts mehr geändert werden."

Gruß

Alois

@Thomas,

Kritik bringt man m.E. besser persönlich an statt öffentlich.

HappyBasher commented 4 years ago

Danke für den Hinweis! Also gehe ich mal davon aus, dass dieser smb.conf Eintrag ausreicht: ntp signd socket directory = /var/lib/ntp/ntp.drift

garblixa commented 4 years ago

Hallo Thomas,

da hast Du was durcheinander gebracht. Nach dem Update steht in meiner /etc/samba/smb.conf:

ntp signd socket directory = /var/lib/ntp/ntp.drift

Das ist nicht richtig.

Bitte nochmal die Beschreibung durchlesen.

Das ganze macht auch nur Sinn, wenn die ntp.conf im linuxmuster-setup entsprechend angepasst wird und die Rechte am Socket angepasst werden.

Viele Grüße Klaus

HappyBasher commented 4 years ago

Das meinte ich. Die Anleitung ist für mich unklar. Was genau ist in ntp.conf und smb.conf zu ändern, wenn ich nicht an apparmor rumfummeln will? In smb.conf muss natürlich ein Verzeichnis angegeben werden und kein Socket, klaro.

HappyBasher commented 4 years ago

BTW, die Berechtigungen auf /var/lib/ntp/ntp.drift sind per default auf ntp:ntp gesetzt.

garblixa commented 4 years ago

Hallo Thomas,

wenn Du die apparmor Konfiguration nicht ändern möchtest, dann muß die smb.conf dahingehend geädert werden, daß diese auf den Socket in welcher in der Apparmor Konfiguration steht, angepasst wird.

In meiner Apparmor Konfiguration steht hier: /etc/apparmor.d/usr.sbin.ntpd:

...
# samba4 ntp signing socket
/{,var/}run/samba/ntp_signd/socket rw,
...

Also die smb.conf anpassen: /etc/samba/smb.conf:

...
ntp signd socket directory = /var/run/samba/ntp_signd
...

Wenn das Verzeichnis nicht existiert hat und Samba es beim Starten anlegt, dann hat es die falschen Rechte (root:root). Der ntp Daemon muss den Socket aber lesen können, deshalb die Gruppenberechtigungen ändern:

root@server:~#  chgrp ntp /var/run/samba/ntp_signd/
root@server:~# ls -ld /var/run/samba/ntp_signd
drwxr-x--- 2 root ntp 60 Aug 17 07:09 /var/run/samba/ntp_signd

Meine ntp.conf, welche die OPNsense als als bevorzugten Zeitserver nimmt(so ist die Zeit am Server viel schneller synchronisiert). Wichtig sind aber nur die Ergänzungen mssntp und ntpsigndsocket.

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 10.0.0.254 iburst prefer
restrict -4 default kod notrap nomodify nopeer noquery limited mssntp
restrict -6 default kod notrap nomodify nopeer noquery limited mssntp
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery
ntpsigndsocket /var/run/samba/ntp_signd/

So kann auch ein Windows 10 Client die Zeit mit dem Server synchronisieren, ohne daß am Client etwas geändert werden muß.

Danke und viele Grüße Klaus

HappyBasher commented 4 years ago

Danke für den Hinweis @garblixa! ntpsigndsocket in ntp.conf jetzt auf /var/lib/samba/ntp_signd gesetzt (samba default). Berechtigungen entsprechend.

garblixa commented 4 years ago

Hallo Thomas,

so funktioniert das nicht. Wenn Du /var/lib/samba/ntp_signd nimmst statt /var/run/samba/ntp_signd dann musst Du die apparmor Konfiguration anpassen.

Viele Grüße Klaus

Edit: mssntp in ntp.conf nicht vergessen, sonst funktioniert das auch nicht...

garblixa commented 4 years ago

Hallo Thomas,

danke für die Anpassungen! Aber irgendwie scheint es mit ausgerechnet diesem Patch schwierig zu sein :-)

Jetzt steht in der ntp.conf: ntpsigndsocket /run/samba/ntp_signd/

Das sollte doch heißen heißen: ntpsigndsocket /var/run/samba/ntp_signd/

Ebenso in smb.conf falsch: ntp signd socket directory = /run/samba/ntp_signd

Das sollte doch heißen heißen: ntp signd socket directory = /var/run/samba/ntp_signd

Viele Grüße Klaus

garblixa commented 4 years ago

Noch eine Anmerkung zum ntp.conf Includefile. Was soll damit erreicht werden? So wie ich die Manpage verstehe ist diese Option dazu da, eine sehr rudimentäre ntp.conf zu haben und dann für verschiedene Standorte angepasste Includefiles. Was ich damit sagen möchte, ich kann in einem Includefile keine z.B. pool oder server Option überschreiben, sondern diese wird dem Includefile hinzugefügt. Das ist hier anders als mit einem smb.conf Include, wo man Optionen überschreiben kann. Das könnte für die Anwender/Admins verwirrend sein.

Grundsätzlich würde ich befürworten, wenn Systemdateien, welche aus anderen Paketen kommen (ntp.conf, smb.conf etc.) nicht durch ein anderes Paket ohne Rückfrage überschrieben werden würden. Unattended Upgrades muß man dann ausschalten, weil man sonst keine Kontrolle mehr über die Konfigurationsdateien hat. Bei einer smb.conf und der komplexen AD Konfiguration kann ich das noch verstehen. Aber bitte mit Nachfrage ob überschrieben werden soll.

Danke für Deine Bemühungen!

Viele Grüße Klaus

HappyBasher commented 4 years ago

@garblixa Passt schon. /var/run ist nur ein Symlink auf /run. Deshalb sieht apparmor auch beide Varianten vor. VG, Thomas

HappyBasher commented 4 years ago

Das könnte für die Anwender/Admins verwirrend sein.

Ich werde den Kommentar im Includefile nach dem Urlaub entsprechend anpassen.

VG Thomas

garblixa commented 4 years ago

@garblixa Passt schon. /var/run ist nur ein Symlink auf /run. Deshalb sieht apparmor auch beide Varianten vor.

Ja, richtig! Punkt für Dich :-)

garblixa commented 4 years ago

Hallo Thomas,

Ich werde den Kommentar im Includefile nach dem Urlaub entsprechend anpassen.

Ich glaube nicht daß das zielführend ist. Eine ntp.admin.conf bringt nichts. wenn ich z.B. "pool" oder "server" nicht überschreiben kann. Vielleicht hast Du nach dem Urlaub ja mehr Muße über die Verwendung von dpkg-maintscript-helper nachzudenken um einen mehr anwenderfreundlichen Umgang mit Konfigurationsdateien beim Paket Upgrade zu ermöglichen und unattended-upgrades nicht obsolet zu machen.

Danke und viele Grüße Klaus