{"id":662,"date":"2022-10-21T17:36:09","date_gmt":"2022-10-21T17:36:09","guid":{"rendered":"https:\/\/www.cssec.de\/blog\/?p=662"},"modified":"2022-10-21T17:37:11","modified_gmt":"2022-10-21T17:37:11","slug":"linux-und-active-directory","status":"publish","type":"post","link":"https:\/\/www.cssec.de\/blog\/2022\/10\/21\/linux-und-active-directory\/","title":{"rendered":"Linux und Active Directory"},"content":{"rendered":"<p>Hallo Welt da drau\u00dfen,<\/p>\n<p>heute bin ich mal wieder fast verzweifelt. Ein bisschen habe ich mich an meine Zeiten als Angestellter mit dem Projekt der Helaba erinnert gef\u00fchlt. Da war die Woche \u00fcber alles ruhig, bis dann Freitag Mittag irgendein Bug gemeldet wird und einem das ganze Wochenende versaut wird, weil der nat\u00fcrlich als h\u00f6chste Prio eingestuft und m\u00f6glichst superschnell gefixt werden muss.<br \/>\nSo ist das halt&#8230;<\/p>\n<p>Worum geht&#8217;s eigentlich?<\/p>\n<p>Vor etlichen Jahren hatte ich meinem langj\u00e4hrigsten und besten Kunden (und Kumpel) eine Mini-Server-Architektur eingerichtet, mit denen er sein &#8222;Business&#8220; durchziehen kann. Im Endeffekt besteht das Teil eigentlich nur aus 2 Servern und ein paar zus\u00e4tzlichen Client-Rechnern. Einer der Server ist ein Windows Server 2012 R2 auf dem ein Active Directory l\u00e4uft, der andere ein Ubuntu-Server der als Email- und Fileserver dient. Soweit so chic. Warum auch immer habe ich damals das ganze als Dom\u00e4ne eingerichtet, obwohl im Endeffekt abzusehen war, dass das f\u00fcr die geringe Anzahl der Nutzer so ziemlich overkilled ist.<\/p>\n<p>Bis auf wenige Ausnahmen lief das immer ganz gut &#8211; naja, abgesehen vom Remote Desktop, der von Remote aus zugreifbar sein soll und daher eigentlich immer unter Dauerfeuer steht und beim dem (obwohl eigentlich niemand angemeldet ist), die Connections immer \u00fcberlaufen. Heute w\u00fcrde ich es anders (mit VPN) machen, aber damals wusste ich es nicht besser.<\/p>\n<p>Der Linux-Server ist mit dem Windows-Server per Dom\u00e4ne verbunden, soweit ist das eigentlich ziemlich cool, da der Kunde dann im Windows einfach Nutzer hinzuf\u00fcgen kann und diese dann automatisch im Linux-Server erscheinen. Probleme hat das bisher eigentlich noch nie so wirklich gemacht, au\u00dfer, die Serverzeit wich zu stark voneinander ab. I.d.R. sollte das nicht vorkommen, wenn sich beide mit einem ntp-Server verbinden, aber es gab auch mal Zeiten, wo das nicht funktioniert hat oder ein Nutzer einfach mal die Serverzeit ge\u00e4ndert hat.<br \/>\nDas f\u00fchrt dann dazu, dass sich der Linux-Rechner nicht mehr verbinden kann, die Nutzer damit nicht mehr im Linux-System verf\u00fcgbar sind und der Rechner quasi aus der Dom\u00e4ne fliegt.<\/p>\n<p>Leider kommt das so selten vor, dass ich das immer vergessen, was ich da machen muss.<\/p>\n<p>Heute war es dann mal wieder soweit, die Email ging nicht mehr &#8211; am Imap-Konto konnte man sich nicht mehr anmelden. Prinzipiell stimmten aber die Uhren beider Server \u00fcberein, aus irgendeinem (noch unerkl\u00e4rlichen Grund) wollten beide nicht mehr miteinander.<br \/>\nRichtig komisch war, dass die Nutzer, mit denen man sich sonst immer nicht anmelden konnte, trotzdem funktionierten, d.h. man konnte grunds\u00e4tzlich eine Shell starten, aber eben die Anmeldung beim IMap (Dovecot)-Server schlug fehl.<\/p>\n<p>Nach etlichem Fluchen und Suchen hier mal die Fehlerbehebung:<\/p>\n<p>Einloggen in den Rechner als Root oder als &#8222;lokaler&#8220; Nutzer (der nicht in der Domain registriert ist).<br \/>\nDann habe ich geschaut, ob die Dienste (dovecot, winbind) Probleme machen:<\/p>\n<pre>sudo systemctl status dovecot<\/pre>\n<pre>sudo systemctl status winbind<\/pre>\n<p>Bei winbind gab es dann folgendes Problem:<\/p>\n<pre>Kinit for ***** to access cifs\/**.***.local@*****.LOCAL failed: Cannot contact any KDC for requested realm<\/pre>\n<p>Dovecot brachte so etwas in der Art:<\/p>\n<pre>pam_krb5(dovecot:auth): (user xxxxx) credential verification failed: Cannot find key for host\/fileserver@*****.LOCAL kvno 444 in keytab<\/pre>\n<p>und<\/p>\n<pre>pam_winbind(dovecot:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_AUTH_ERR (7), NTSTATUS: NT_STATUS_LOGON_FAILURE<\/pre>\n<p>Wie schon geschrieben, habe ich das lange nicht mehr gemacht, also bin ich wieder auf die Suche nach der M\u00f6glichkeit gegangen, das ganze wieder zu verbinden.<br \/>\nLeider gab es da nicht mehr so viel, da noch ein Ubuntu 16.04 eingesetzt wird und die meisten Dinge dann f\u00fcr die neueren Versionen, bei denen das ganze etwas anders funktioniert, beschrieben ist.<\/p>\n<p>Am Ende wurde ich dann aber wieder f\u00fcndig.<\/p>\n<p>Als erstes habe ich mal gepr\u00fcft, ob ich mich \u00fcberhaupt mit meinem Windows-Nutzer irgendwie verbinden konnte:<\/p>\n<pre>ntlm_auth --username= --diagnostics<\/pre>\n<p>Hier kamen blo\u00df Fehler:<\/p>\n<pre>Wrong Password (0xc000006a)<\/pre>\n<p>und das etliche Male.<br \/>\nDann habe ich mal gepr\u00fcft, ob noch irgendetwas an Verbindung da ist:<\/p>\n<pre>sudo klist<\/pre>\n<p>Brachte dann ein paar Daten, speziell wie lange die Kerberos-Schl\u00fcssel funktionieren.<br \/>\nMit:<\/p>\n<pre>sudo kinit -V<\/pre>\n<p>konnte ich pr\u00fcfen, dass eine Verbindung grunds\u00e4tzlich m\u00f6glich ist. Trotzdem f\u00fchrte das nicht zum Ergebnis.<br \/>\nUnd dann gab es ja noch:<\/p>\n<pre>sudo net ads join -k<\/pre>\n<p>was so auch nicht funktionierte und mit :<\/p>\n<pre>ADS join did not work, falling back to RPC\r\ngss_init_sec_context failed with [ Miscellaneous failure (see text): unable to reach any KDC in realm *****.LOCAL]\r\nFailed to join domain: failed to lookup DC info for domain '*****' over rpc: An internal error occurred.\r\n<\/pre>\n<p>quittiert wurde<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&#8230; weil &#8230;.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>nat\u00fcrlich die Nutzerinformationen (der Admin-Nutzer fehlte), mit dem der Beitritt zur Dom\u00e4ne erlaubt ist.<br \/>\nMit:<\/p>\n<pre>sudo net ads join -k -U<\/pre>\n<p>und Eingabe des Passworts konnte ich den Server endlich wieder mit dem PDC verbinden und Email und alles andere lief wieder.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hallo Welt da drau\u00dfen, heute bin ich mal wieder fast verzweifelt. Ein bisschen habe ich mich an meine Zeiten als Angestellter mit dem Projekt der Helaba erinnert gef\u00fchlt. Da war die Woche \u00fcber alles ruhig, bis dann Freitag Mittag irgendein Bug gemeldet wird und einem das ganze Wochenende versaut wird, weil der nat\u00fcrlich als h\u00f6chste [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":663,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"_links":{"self":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/662"}],"collection":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/comments?post=662"}],"version-history":[{"count":1,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":664,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/662\/revisions\/664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media\/663"}],"wp:attachment":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media?parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/categories?post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/tags?post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}