Hi Dorian,
du kannst der Gruppe auch eine Gruppe hinzufügen…
samba-tool group addmembers „Allowed RODC Password Replication Group“ all-teachers,all-students
Viele Grüße
Thomas
Hi Dorian,
du kannst der Gruppe auch eine Gruppe hinzufügen…
samba-tool group addmembers „Allowed RODC Password Replication Group“ all-teachers,all-students
Viele Grüße
Thomas
Hi Thomas,
Ahaa, jetzt gehts
Ich kann zwar nicht mit global-admin binden, aber mit dem binduser und mit normalen Nutzern. Danke für deine Hilfe!
VG, Dorian
Hi Dorian,
die RODC ist mit der steinalten SAMBA Version 4.7.6, wie sie von Ubuntu 18.04 LTS verwendet wird, auch noch nicht so 100% ausgereift wie ich gelesen habe ([Samba] RODC and LDAP via Simple Authentication fails). In aktuelleren Releases soll das (wie vieles andere auch) besser funktionieren…
Aber immerhin…es klappt!
Viele Grüße
Thomas
Hallo zusammen,
mit RODC sollte wirklich vorsichtig umgegangen werden da der Support dafür in der eingesetzten Samba-Version nicht wirklich gegeben ist. Hier sollte man zumindest sehr genau wissen was man tut.
Ich würde ein RODC daher erst mit der Aktualisierung des Schulserver „empfehlen“.
LG; Maurice
Hi Maurice,
Danke für den Hinweis.
VG, Dorian
Hallo Maurice,
wie im anderen Thread erwähnt, dann aber wahrscheinlich erst mit 22.04 und noch nicht mit 7.1, wenn ich das richtig verstanden hab?
Ganz vorsichtig angefragt: gibt’s ne gaaanz grobe timeline?
Danke und viele Grüße,
Jochen
Nein, noch nicht. Jetzt kommt erstmal 7.1.
Aber das samba replikat sollte trotzdem funktionieren, nur vielleicht nicht als readonly.
VG, Dorian
Hi Jochen,
da das zugrundeliegende System noch garnicht da ist, kann ich da keine gute Angabe abgeben.
Da wir aber mit dem Linbo 4 (Thomas sei dank) nun auch auf modernerer Basis sind, sollten die Abhängigkeiten nahezu aufgelöst sein. Daher wird Releasewechsel einfacher.
Es werden aber sicher in den SoFe 22 Pilotschulen bereits auf 22.04 umgestellt werden.
LG, Maurice
Hi Maurice, hi Dorian,
danke Euch. Dann schiebe ich das Projekt Backup-AD noch etwas nach hinten.
Liebe Grüße,
Jochen
Hallihallohallöchen
gibt es eigentlich in dieser Sache neue Erkenntnisse?
LG Jesko
Ich meine, dass das frühestens mit 7.2 und nem neuen Ubuntu gehen wird!? Steht auch sehr hoch auf meiner Haben-will-Liste!
Viele Grüße,
Jochen
Der limitierende Faktor ist die SAMBA Version der Lösung. Erst wenn man von 4.7.6 auf höhere Releases geht. Ursprünglich geplant war der Wechsel für 7.2.
Ob jemand was in der Entwicklerversion bereits getestet hat?
Viele Grüße
Thomas
Ich habe es in einem Ubuntu 18.04 Docker zum Laufen bekommen. Das ist aber sehr gebastelt und nicht wirklich dokumentierbar.
Aber hier meine Konfiguration:
/opt/samba-dc/docker-compose.yml
services:
app:
dns: 10.0.0.1
image: instantlinux/samba-dc:latest
restart: always
hostname: server-extern.linuxmuster.lan
environment:
DOMAIN_ACTION: "join"
BIND_INTERFACES_ONLY: "no"
INTERFACES: "lo mlm 10.1.1.11"
REALM: "LINUXMUSTER.LAN"
TZ: "Europe/Berlin"
WORKGROUP: "LINUXMUSTER.LAN"
BIND_INTERFACES_ONLY: "yes"
volumes:
- ./config/etc:/etc/samba
- ./config/lib:/var/lib/samba
- ./entrypoint.sh:/usr/local/bin/entrypoint.sh
secrets:
- samba-admin-password
ports:
- 389:389
networks:
traefik:
ipv4_address: 172.25.0.101
secrets:
samba-admin-password:
file: ./samba-admin-password
networks:
traefik:
external: true
/opt/samba-dc/entrypoint.sh
#!/bin/sh -e
if [ -z "$NETBIOS_NAME" ]; then
NETBIOS_NAME=$(hostname -s | tr [a-z] [A-Z])
else
NETBIOS_NAME=$(echo $NETBIOS_NAME | tr [a-z] [A-Z])
fi
REALM=$(echo "$REALM" | tr [a-z] [A-Z])
if [ ! -f /etc/timezone ] && [ ! -z "$TZ" ]; then
echo 'Set timezone'
cp /usr/share/zoneinfo/$TZ /etc/localtime
echo $TZ >/etc/timezone
fi
if [ ! -f /var/lib/samba/registry.tdb ]; then
ADMIN_PASSWORD=$(cat /run/secrets/$ADMIN_PASSWORD_SECRET)
if [ "$BIND_INTERFACES_ONLY" == yes ]; then
INTERFACE_OPTS="--option=\"bind interfaces only=yes\" \
--option=\"interfaces=$INTERFACES\""
fi
if [ $DOMAIN_ACTION == join ]; then
PROVISION_OPTS="$REALM DC -UAdministrator --password='$ADMIN_PASSWORD'"
else
echo 'Only join actions are supported.'
exit 1
fi
rm -f /etc/samba/smb.conf /etc/krb5.conf
# This step is required for INTERFACE_OPTS to work as expected
echo "samba-tool domain $DOMAIN_ACTION $PROVISION_OPTS $INTERFACE_OPTS \
--dns-backend=SAMBA_INTERNAL" | sh
#mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
echo 'root = administrator' > /etc/samba/smbusers
fi
mkdir -p -m 700 /etc/samba/conf.d
#for file in /etc/samba/smb.conf /etc/samba/conf.d/netlogon.conf \
# /etc/samba/conf.d/sysvol.conf; do
# sed -e "s:{{ ALLOW_DNS_UPDATES }}:$ALLOW_DNS_UPDATES:" \
# -e "s:{{ BIND_INTERFACES_ONLY }}:$BIND_INTERFACES_ONLY:" \
# -e "s:{{ DOMAIN_LOGONS }}:$DOMAIN_LOGONS:" \
# -e "s:{{ DOMAIN_MASTER }}:$DOMAIN_MASTER:" \
# -e "s+{{ INTERFACES }}+$INTERFACES+" \
# -e "s:{{ LOG_LEVEL }}:$LOG_LEVEL:" \
# -e "s:{{ NETBIOS_NAME }}:$NETBIOS_NAME:" \
# -e "s:{{ REALM }}:$REALM:" \
# -e "s:{{ SERVER_STRING }}:$SERVER_STRING:" \
# -e "s:{{ WINBIND_USE_DEFAULT_DOMAIN }}:$WINBIND_USE_DEFAULT_DOMAIN:" \
# -e "s:{{ WORKGROUP }}:$WORKGROUP:" \
# /root/$(basename $file).j2 > $file
#done
#for file in $(ls -A /etc/samba/conf.d/*.conf); do
# echo "include = $file" >> /etc/samba/smb.conf
#done
#ln -fns /var/lib/samba/private/krb5.conf /etc/
cp /var/lib/samba/private/krb5.conf /etc/
exec samba --model=$MODEL -i </dev/null
Ob da noch was fehlt und wie man es initial einrichtet, weiß ich nich mehr. Ich hab im Moment auch keine Zeit, mich genauer damit zu beschäftigen, aber vielleicht hilft es ja als Ansatz.
Wir haben das so seit ein paar Monaten im Einsatz.
VG,
Dorian
Hallo zusammen
jetzt hab ich mal nach einem Ausfall den Mut gefasst, einfach auf 7.2 upzudaten und anschließend die Anregungen von @dorian verwendet, um einen externen dc zu erstellen.
Super! Klappt auf den ersten Blick…
ich kann den LDAP abfragen, in moodle und der nextcloud nutzen.
Problem:
der externe LDAP funktioniert nur, solange der interne erreichbar ist So hatte ich mir das aber nicht vorgestellt.
Sobald ich den Schulinternen DC runterfahre, kommt in den Logs des externen die Meldung, dass die Verbindung gekappt ist und dann antwortet er auch nicht mehr auf anfragen…
Mein Setting:
Exxterner Server mit Wireguard-Tunnel zur Schule.
Dorians Skripte oben mit einer Anpassung: Letsencrypt-Zertifikate mit reinkopiert…
Was beachte ich hier nicht? @tjordan hast du mir nen Tipp?
LG Jesko
Ich antworte mir selbst…
… meine Beobachtung war falsch. Der externe LDAP möchte sich beim Start synchronisieren. Wenn man in dieser Zeit die Verbindung kappt, DANN bleibt er stehen… Wenn das erledigt ist, kann jeder der Server ausfallen, ohne dass die Dienste das merken.
Ich hab jetzt bei moodle und nextcloud beide LDAPs eingetragen und es funktioniert wie gewünscht. SUPER!
Danke für den Input!
noch zu tun: die Zertifikate an die richtige Stelle kopieren, wenn sie sich ändern.
Leider gelingt es mir nicht, das Letsencrypt-Verzeichnis in den Container zu mounten.
Die Links werden dann nicht verfolgt, sondern sind nicht lesbar.
…
LG Jesko
Ich hab das jetzt mal (leider immer noch nicht perfekt) dokumentiert.
Im Prinzip ist es das von @dorian mit kleinen Änderungen an wichtigen Stellen (z.B. den User im Entrypoint-Skript.
Das funktioniert ganz gut, außer dass man im DNS nach dem Domain-Join nochmal die korrekte Adresse nachpflegen muss, weil sonst die Docker-interne sinnfreie Adresse drin steht…
… vielleicht host-netz verwenden statt bridge…
jedenfalls läuft das jetzt bei mir und wird alle 5 Minuten nach außen repliziert.
Rückwärts nicht. Ob das so gewollt ist (also ich will das so) oder ob das eigentlich in beide Richtungen synct und nur aus irgendeinem Grund noch fehlschlägt, weiß ich nicht.
Falls da jemand besser bescheid weiß… bitte melden
Und falls (was sehr wahrscheinlich ist) da Optimierungspotential ist,… bitte einfach issues öffnen oder pull requests… oder wie auch immer.
hier: Jesko Anschütz / linuxmuster-samba-replikation · GitLab
LG Jesko
Wenn ich das richtig sehe, machst du an der Stelle aber keinen ReadOnly DC sondern einen RW Dc. Der sollte tatsächlich in beide Richtungen syncen.
Hmm. Irgendwas stimmt da auch noch nicht.
Nach meinen Tests war der Sync zwar nur in eine Richtung, aber ich hab mittlerweile diverse Fehlermeldungen entdeckt! NT_irgendwas denied…
Was müsste ich denn Ändern, damit es OneWay ist?
Ok, das muss ich mir bei Gelegenheit nochmal anschauen. Weil eigentlich war das ja das, was ich wollte…
Ich möchte aber noch eine Warnung loslassen… ich hatte plötzlich scheinbar vollkommen random Probleme. Mal bei der Anmeldung, mal schon beim Hochfahren der Rechner.
Irgendwann kam mir der Verdacht, dass der neue Domaincontroller das Problem ist und tatsächlich ist er der Auslöser, wenn auch nicht das Problem:
Offensichtlich möchten manche Clients schon beim Booten eine Verbindung zu dem Backup-DC herstellen, was nicht klappt, wenn es vom Client zu diesem keine Route gibt.
In meinem Fall wussten die Clients nicht, wie sie durch das VPN rückwärts rauskommen können.
Mir ist auch nicht klar, warum das zu diesen Effekten führt, eigentlich würde ich annehmen, dass sie mit dem Haupt-DC zufrieden sind, wenn der online ist.
Wie dem auch sei. Ich hab jetzt eine Route eingerichtet, so dass alle Clients bei Bedarf den externen DC erreichen können und jetzt flutscht es. (Die Fehler oben kommen immer noch auf dem BackupDC aber sie scheinen bisher nur die Rück-Synchronisierung zu stören, die ich ja ohnehin nicht haben möchte.)
… LG Jesko