{"id":675,"date":"2021-03-29T13:54:25","date_gmt":"2021-03-29T11:54:25","guid":{"rendered":"https:\/\/lukas.kurth.rocks\/blog\/?p=675"},"modified":"2021-04-13T14:51:06","modified_gmt":"2021-04-13T12:51:06","slug":"namenskonventionen","status":"publish","type":"post","link":"https:\/\/lukas.kurth.rocks\/blog\/2021\/03\/29\/namenskonventionen\/","title":{"rendered":"Namenskonventionen"},"content":{"rendered":"<p>Namenskonventionen sind schwer. Jedes Mal rate ich mir einen Ast, wie ich Dinge im Windows-Netzwerk am besten benennen soll. Vor allem wegen den Zeichen die einem vorgegeben werden. Im 21. Jahrhundert in einem Netzwerk auf 2016\/2019 Ebene sollte es da eigentlich keine gro\u00dfen Beschr\u00e4nkungen mehr geben. So kann ein gMSA nur 15 Zeichen (plus Dollar-Zeichen) haben. Das macht eine sinnvolle Trennung zwischen mehreren Standorten\/Sprachen und\/oder Servern ein wenig schwierig.<\/p>\n<p><!--more--><\/p>\n<h2><strong>gMSA<\/strong><\/h2>\n<p>Die <strong>Grouped Managed Service Accounts<\/strong> sind besonders f\u00fcr Dienste und Tasks\/Aufgaben geeignet und sollten auch verwendet werden. Ein gMSA hat nur speziellen Zugriff, den man eventuell auch daf\u00fcr konfigurieren muss. Ein Passwort wird nicht vergeben, dennoch wird eines zwischen dem Account und der Windows Dom\u00e4ne ausgetauscht und auch regelm\u00e4\u00dfig erneuert. Der User bekommt davon nichts mit. Genau deshalb SOLLTE ER VERWENDET WERDEN!<\/p>\n<p>Es gibt viele M\u00f6glichkeiten gMSA\u2019s zu verwenden, daher ist eine Namenskonvention aus 15 Zeichen auch etwas schwer. Standorte, Sprachen, Verwendungszweck etc. Es sollte ja trotzdem irgendwie erkennbar sein, wof\u00fcr der gMSA verwendet wird.<\/p>\n<p>Hier ein Beispiel vom <a href=\"https:\/\/www.gosecurity.ch\/services\/blog\/8997-gosecurity-blog-gmsa-die-loesung-fuer-das-service-account-dilemma\" target=\"_blank\" rel=\"noopener\">goSecurity Blog<\/a>:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Name (max. 15 Zeichen)<\/th>\n<th>Dienst oder Task<\/th>\n<th>Beschreibung<\/th>\n<\/tr>\n<tr>\n<td>SA_T_B_SRV-XY<\/td>\n<td>Scheduled Task<\/td>\n<td>Backup Skript auf dem Server SRV-XY<\/td>\n<\/tr>\n<tr>\n<td>SA_D_SQL_SRV_YX<\/td>\n<td>Dienst<\/td>\n<td>Dienst f\u00fcr SQL_Server auf SRV-YX<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Da wir leider auf mehreren Standorten \u00e4hnliche Servernamen verwenden, ist dies ein wenig schwierig, da ich entweder den gleichen gMSA verwenden m\u00fcsste oder den Standort irgendwie mit einflie\u00dfen lassen muss. Jetzt k\u00f6nnte ich gMSA\u2019s auch einfach durchnummerieren, dann m\u00fcsste ich aber behalten wof\u00fcr ein gMSA eingerichtet wurde.<\/p>\n<p>Erste Versuche liefen also hier hin:<\/p>\n<p>SA_T_PSR_FILE (Service Account, Task, PowerShell Report, FileServer)<br \/>\nSA_S_SQL_MAIN (Service Account, Service, SQL, Haupt-Instanz)<\/p>\n<p>Momentan versuche ich es daher aus genannten Gr\u00fcnden wie folgt; nicht perfekt, l\u00e4uft aber:<\/p>\n<p><span style=\"color: #0000ff;\"><strong>SASD_SQL01_MAIN (Service, Deutschland, SQLServer01, Default Instanz)<br \/>\nSASS_SQL01_MAIN (Service, Schweden, SQLServer01, Default Instanz)<br \/>\nSATD_PSR_FILE (Task, Deutschland, PowerShell Report, FileServer)<\/strong><\/span><\/p>\n<p>SA = Service Account. MAIN, weil DEFAULT\/STANDARD w\u00e4re zu lange.<\/p>\n<p>Zum Testen auf den Rechnern: Test-AdServiceAccount -Identity &#8222;SA-AccountName&#8220;. Damit k\u00f6nnte man die Server durchschleifen und testen, ob ein SA wieder verwendet wird\/wurde. Nat\u00fcrlich sollte ein nicht verwendeter gMSA sofort wieder gel\u00f6scht\/deinstalliert werden, damit solche \u201cLeichen\u201d gar nicht erst auftreten.<\/p>\n<h2><strong>SQL Instanzen, SQL Alias, DNS SQL Alias<\/strong><\/h2>\n<p>Instanzen kann man kaum eine Namenskonvention erzwingen, wenn man externe H\u00e4user\/Software mit im Boot hat. Namen von Instanzen sollten ein Schema haben, bisher habe ich daf\u00fcr keines. Dies im Nachhinein zu \u00c4ndern ziehe ich aber auch nicht in Betracht. Wenn jemand was sinnvolles in mehreren Sprachen hat, darf er sich gerne melden.<\/p>\n<p>Den SQL Alias richten wir ein, damit wir die Datenbank einfacher umziehen k\u00f6nnen. Wenn dann noch ein DNS Alias (CNAME) hinzukommt, kann man das ganze Konstrukt \u00fcber DNSAlias\\SQLAlias erreichen. Einzig f\u00fcr mich sichtbare Problem: Wenn der DNS wegf\u00e4llt, kann niemand den Server erreichen.<\/p>\n<p>DNS Alias Beispiele:<\/p>\n<p>SQL_SharepointFarmS01.PROD.SQL<br \/>\nSQL_SharepointFarmS01.ENTW.SQL<br \/>\nSQL_ExchangeFarm01.PROD.SQL<\/p>\n<p>SQL Alias Beispiele (cliconfg in x64 und x86):<\/p>\n<p>SQL_Default<br \/>\nSQL_Sharepoint<\/p>\n<p>Kombiniert:<\/p>\n<p><strong><span style=\"color: #0000ff;\">SQL_SharepointFarmS01.PROD.SQL\\SQL_Sharepoint<\/span><\/strong><\/p>\n<h2><strong>AD Gruppen, SQL Instanz Berechtigungen (64 Zeichen)<\/strong><\/h2>\n<p>Hier komme ich bei meiner letzten Konvention etwas an meine Grenzen, Gruppen sind n\u00e4mlich auf 64 Zeichen begrenzt.<\/p>\n<p>SG-SQL-DE-SQLSRV3-MSSQLSERVER-Database-SharePoint-Administrator (63 Zeichen)<\/p>\n<p>Erkl\u00e4rung:<\/p>\n<p>SG = Security Global<br \/>\nMSSQLSERVER = Instanz-Name, Haupt-Instanz<br \/>\nDatabase-SharePoint = Damit man sieht, dass es keine Berechtigung f\u00fcr die SharePoint Instanz ist<br \/>\nAdministrator = Obvious, aber es ist kein Service Account, nur ein Administrator<\/p>\n<p>Der SQL sa-Account sollte \u00fcbrigens nicht verwendet werden. Am besten wird die Instanz schon gar nicht mit einem solchen installiert. Dieser kann im Nachhinein aber auch deaktiviert werden.<\/p>\n<p>Wenn ich versuche das etwas k\u00fcrzer zu halten, s\u00e4he es in etwa so aus:<\/p>\n<p><strong><span style=\"color: #0000ff;\"><br \/>\nSG-SQL-DE-SQL1-MSSQLSERVER-Public<br \/>\nSG-SQL-DE-SQL3-MSSQLSERVER-Public<br \/>\nSG-SQLDB-DE-SharePoint-Reader<br \/>\nSG-SQLDB-DE-SharePoint-User<br \/>\nSG-SQLDB-DE-SharePoint-Administrator<\/span><\/strong><\/p>\n<p>So w\u00e4re es nicht ganz so lange und k\u00f6nnte leichter erweitert werden. SQLDB w\u00e4ren dann direkt die Datenbanken, ohne DB w\u00e4ren es die Instanzen.<\/p>\n<h2>SQL Cluster Benennung (erste ihrer Art bei uns)<\/h2>\n<p>Maschinen:<\/p>\n<p><del><strong><span style=\"color: #0000ff;\">DE-VS-SQL-PC01-01<\/span><\/strong><\/del><span style=\"color: #000000;\"> (17 Zeichen)<\/span><del><strong><span style=\"color: #0000ff;\"><br \/>\nDE-VS-SQL-PC01-02<\/span><\/strong><\/del><\/p>\n<p><strong><span style=\"color: #0000ff;\">DE-VS-SQLC01P01 (Virtuell, Server, SQL Cluster)<\/span><\/strong><br \/>\n<strong><span style=\"color: #0000ff;\">DE-VS-SQLC01P02<\/span><\/strong><br \/>\n<span style=\"color: #0000ff;\"><strong>DE-VS-SQLC01D01 (Development)<br \/>\n<\/strong><\/span><\/p>\n<p>Hier sieht man eine m\u00f6gliche Herangehensweise. Man k\u00f6nnte ein zweites Cluster zu Test-Zwecken aufbauen. Der Unterschied hier ist der Buchstabe D\/P. Dies steht f\u00fcr Development\/Produktiv. So k\u00f6nnte man das gleiche f\u00fcr die Anwendungsserver machen und entsprechend Anwendungen und Zugriffe besser\/schneller testen.<\/p>\n<p>Notiz: Mit den 17 Zeichen habe ich mich nat\u00fcrlich ein wenig verrannt. Wichtig ist dabei nat\u00fcrlich auch, dass jeder eigene Pr\u00e4ferenzen hat.<\/p>\n<p>Instanzen: Deutschland, Virtuell, Windows, SQL, Produktiv, Cluster 01, Maschine 1 oder 2<\/p>\n<p>Ist aber <strong><span style=\"color: #ff0000;\">noch nicht fertig<\/span><\/strong>, ich teste das demn\u00e4chst mit einem Kollegen.<\/p>\n<h2>Mailverteilergruppen<\/h2>\n<p>Damit man die Mailverteiler schneller finden kann, sollten diese auch eine Namenskonvention erf\u00fcllen. Da Verteilergruppen als Distribution Groups eingerichtet werden, bietet sich die Abk\u00fcrzung DG daf\u00fcr an.<\/p>\n<p><strong><span style=\"color: #0000ff;\">DG-MV-DE-ITOperations<br \/>\nDG-MV-DE-ITDevelopment<\/span><\/strong><\/p>\n<p>Relativ einfach hier die Vergabe nach: Gruppen-Typ \u2013 Mail-Verteiler \u2013 Deutschland \u2013 Name des Verteilers.<\/p>\n<p><strong><span style=\"color: #ff0000;\">(Hatte noch einen Gedanken. Ist verloren gegangen)\u2026<\/span><\/strong><\/p>\n<h2>Lokale Berechtigungsgruppen (Rechtevergabe, Rollen-Konzepte, File-Server)<\/h2>\n<p>Lokale Berechtigungsgruppen lassen sich durch <em>Security Local<\/em> (also SL) erkl\u00e4ren. Diese werden verwendet um in einer relativ flachen Ordner-Hierarchie Berechtigungen im Datei-System zu vergeben. Das sollte vor allem verwendet werden um Ordner-Leichen im System zu vermeiden.<\/p>\n<p><strong><span style=\"color: #0000ff;\">SL-DE-FILE-Daten-List<br \/>\nSL-DE-FILE-Daten-EDV-RW<br \/>\nSL-DE-FILE-Daten-EDV-List<\/span><\/strong><\/p>\n<p>Dazu sollte man dann auch SG-Gruppen anlegen, die man dann in die SL-Gruppen packt. Damit niemand direkten Zugriff auf etwas hat. Beispiele daf\u00fcr:<\/p>\n<p><strong><span style=\"color: #0000ff;\">SG-EDV-DE-All<br \/>\nSG-EDV-DE-Operating<br \/>\nSG-EDV-DE-Development<\/span><\/strong><\/p>\n<h2>Server und Rechner-Namen<\/h2>\n<p>Servernamen und Rechnernamen k\u00f6nnen eine \u00e4hnliche Namenskonvention haben. Ich habe mir dabei mal das folgende \u00fcberlegt, kommt aber immer auf die jeweilige Situation an:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Abk\u00fcrzung<\/th>\n<th>Bezeichnung<\/th>\n<\/tr>\n<tr>\n<td>C<\/td>\n<td>Client<\/td>\n<\/tr>\n<tr>\n<td>S<\/td>\n<td>Server<\/td>\n<\/tr>\n<tr>\n<td>L<\/td>\n<td>Linux oder Laptop<\/td>\n<\/tr>\n<tr>\n<td>LC<\/td>\n<td>Laptop: Client<\/td>\n<\/tr>\n<tr>\n<td>F<\/td>\n<td>Firewall<\/td>\n<\/tr>\n<tr>\n<td>P<\/td>\n<td>Printer\/Drucker<\/td>\n<\/tr>\n<tr>\n<td>M<\/td>\n<td>Mobile Ger\u00e4te<\/td>\n<\/tr>\n<tr>\n<td>V<\/td>\n<td>VM Ware VM<\/td>\n<\/tr>\n<tr>\n<td>VC<\/td>\n<td>Virtuell: Client<\/td>\n<\/tr>\n<tr>\n<td>VS<\/td>\n<td>Virtuell: Server<\/td>\n<\/tr>\n<tr>\n<td>W<\/td>\n<td>Workstation oder Windows<\/td>\n<\/tr>\n<tr>\n<td>WC<\/td>\n<td>Workstation: Client<\/td>\n<\/tr>\n<tr>\n<td>T<\/td>\n<td>VOIP Telefon<\/td>\n<\/tr>\n<tr>\n<td>P<\/td>\n<td>Physikalisch<\/td>\n<\/tr>\n<tr>\n<td>MX\/EXC<\/td>\n<td>Exchange<\/td>\n<\/tr>\n<tr>\n<td>H<\/td>\n<td>Hyper-V VM<\/td>\n<\/tr>\n<tr>\n<td>X<\/td>\n<td>Xen VM<\/td>\n<\/tr>\n<tr>\n<td>A<\/td>\n<td>Appliance<\/td>\n<\/tr>\n<tr>\n<td>C<\/td>\n<td>Cluster<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>DE-VL-&lt;NAME&gt;<br \/>\nDE-VC-&lt;NAME&gt;<br \/>\nDE-VS-&lt;NAME&gt;<br \/>\nDE-H-&lt;NAME&gt;<br \/>\nDE-PC-IT01\/H8V01<br \/>\nDE-VS-MX01<br \/>\nDE-CL-SQL01 (SQL Cluster)<br \/>\nSE-PS-FL01 (File-Server)<\/p>\n<p>Deutschland, Virtuell, Linux, Name.<\/p>\n<p>Aber: DNS = 63 Zeichen, NetBIOS = 15 Zeichen.<br \/>\nDas sollte man beachten, so wird in manchen Systemen der Name abgehackt. Das Gilt auch f\u00fcr die Cluster oben, die ich entsprechend ge\u00e4ndert habe.<\/p>\n<h2>Wichtig f\u00fcr alles!<\/h2>\n<ul>\n<li>Das Active Directory ist die globale Nutzerverwaltung des Unternehmens!!!<\/li>\n<li>KEINE UMLAUTE!<\/li>\n<li>KEINE USER DIREKT WO REINPACKEN!<\/li>\n<li>Versteckte Freigaben mit SL sind mit einem Dollar gekennzeichnet.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Namenskonventionen sind schwer. Jedes Mal rate ich mir einen Ast, wie ich Dinge im Windows-Netzwerk am besten benennen soll. Vor allem wegen den Zeichen die einem vorgegeben werden. Im 21. Jahrhundert in einem Netzwerk auf 2016\/2019 Ebene sollte es da eigentlich keine gro\u00dfen Beschr\u00e4nkungen mehr geben. So kann ein gMSA nur 15 Zeichen (plus Dollar-Zeichen) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5,13,386,378],"tags":[410,401,399,403,409,58,407,406,400,412,404,397,402,414,413,415,398,408,405,201,411,416],"class_list":["post-675","post","type-post","status-publish","format-standard","hentry","category-domain","category-it","category-tips","category-windows","category-work","tag-access","tag-account","tag-active","tag-alias","tag-berechtigung","tag-cluster","tag-database","tag-datenbank","tag-directory","tag-distribution-group","tag-dns","tag-gmsa","tag-instanz","tag-machinename","tag-name","tag-rechnername","tag-service","tag-sharepoint","tag-sql","tag-task","tag-verteilergruppe","tag-virtual"],"_links":{"self":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/comments?post=675"}],"version-history":[{"count":5,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/675\/revisions"}],"predecessor-version":[{"id":687,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/675\/revisions\/687"}],"wp:attachment":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/media?parent=675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/categories?post=675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/tags?post=675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}