[{"content":"Mit der Ankündigung von VMware das in Zukunft keine SD Karten mehr als Boot/OS Speichermedium erlaubt sind war zumindest in meiner Bubble ein erhebliches raunen zu hören. Zu allem übel kamen dann auch noch Probleme in ESXi7U2 die innerhalb kürzester Zeit USB Sticks oder SD Karten zerstörten. In meiner Laborumgebung sind mir einmal die SD Karten im IDSM Modul von Dell kaputt gegangen und bei einem kleinen Kunden der tatsächlich einen USB Stick eingesetzt hat als Bootmedium gingen sogar 2 USB Sticks kaputt. Mittlerweile hat VMware seine Aussage nochmal revidiert und mit einigen Patches die unterstützen von SD Karten bedingt erlaubt. Allerdings ist die Marschrichtung klar und die Verwendung von SD Karten wird nur noch geduldet. Optimal ist es also nicht und sollte alsbald abgelöst werden.\nFür die Dell Server ab der 14. Generation gibt es mit dem Dell BOSS-S1(Mittlerweile auch schon S2) Controller eine sehr schöne Alternative neben das hinzufügen von drehenden Platten. Allerdings funktioniert dieser Controller offiziell auch nur in der 14. Generation und höher. Viele Kunden die noch mit der 13. Generation von PowerEdge Server Unterwegs sind fragen sich nun wie es weiter geht. Sollte eine „sinnvolle Backplane“ vorhanden sein macht vielleicht das hinzufügen von Festplatten noch sinn aber wenn man auf ein Diskless System setzt und gar nur ein Sata Controller im Host verbaut hat kann man noch nicht einmal ein Raid realisieren.\nIch habe mich mit dem Dell BOSS-S1 Controller mal näher beschäftigt und mir die Frage gestellt warum denn dieser Controller nicht auch unter der 13. Generation vom PowerEdge laufen sollte. Ich bin in den Besitz eines „nackten“ Controllers ohne SSDs gekommen. Meine Informationen waren das die Karte NVMe SSDs aufnehmen würde was mir erklären würde warum er nicht in einem PowerEdge der 13. Generation funktioniert. NVMe von der Technologie her ist nichts anderes via PCIe. Wenn ich zwei PCIe Geräte über einen Adapter(BOSS Controller) an einem PCIe Anschluss betrieben möchte brauche ich eine System das PCIe Bifurcation unterstützt. Dies ist definitiv nicht gegeben. PCIe Bifurcation ermöglicht es mir einen PCIe x16 Anschluss in z.b. 4 x PCIe x4 Anschlüsse zu splitten und damit 4 Geräte an einem Anschluss zu betrieben. Allerdings ist der Dell BOSS-S1 Controller gar kein NVMe Controller sondern ein reiner SATA III RAID Controller mit M2 Anschluss. Dies war tatsächlich die erste spannende Erkenntnis. Schaut man nun im Online Manual der Karte nach findet man auch nur wenige M2 SSDs die Offiziell unterstützt werden. Ich bin trotzdem das Risiko eingegangen und habe auf Ebay 2 x 128 GB M2 SATA SK hynix SSDs für 30 € gekauft. Als die SSDs angekommen sind habe ich diese natürlich direkt verschraubt und die Karte in mein Dell PowerEdge R430 geschoben. Der Controller wird beim Booten direkt erkannt und zeigt auch die zwei SSDs an. Er zeigt auch an das diese nicht Konfiguriert sind. Also habe ich mal ein Blick ins Bios gewagt mit F2. Dort wird der Boss Controller unter System Setup -\u0026gt; Device Settings -\u0026gt; BOSS-S1 Configuration Utility sogar aufgeführt. Die Freude war allerdings nicht groß. Nachdem ich auf „Create Raid“ geklickt habe konnte ich noch die SSDs auswählen und landete Anschliessend wieder im Bios Startbildschrim. Okay das wäre natürlich auch zu einfach gewesen. Allerdings wollte ich mich so einfach nicht von meinem vorhaben abbringen lassen. In einem Reddit Beitrag habe ich nämlich gelesen das es wohl mit einem Windows Tool gehen muss. Also mein nächster Schritt war klar. Ich schob 2 Festplatten in meinen PowerEdge erstellte ein Raid 1 und installierte Windows Server 2022 in der Testversion. Die Installation über das iDrac dauerte länger als erwartet. Ich habe die Zeit allerdings sinnvoll genutzt und habe ich mich auf die Suche gemacht nach dem Windows Tool das es mir ermöglichen soll das Raid unter Windows zu konfigurieren. Das oben erwähnte Handbuch war leider nur beschränkt behilflich. Fündig bin ich dann auf der Dell Supportseite des R740 geworden. MVSETUP lautet das Tool. Liest man die Installationsanweisung ausführlich erhält man die Info das man noch ein Windows Management Treiber installieren muss welcher sich auch bei den Downloads des PowerEdge Servers befindet. Nachdem die Installation von Windows fertiggestellt war durchsuchte ich erstmal den GeräteManager nachdem dem Controller. Dieser war allerdings nicht direkt ersichtlich. Auch nachdem ich den Windows Management Treiber installierte tauche kein Dell BOSS-S1 Adapter auf. Das Tool hingegen war da schon gesprächiger und zeigte den Controller an. Nach etwas Hilfe durchsuchen bin ich dann auf den finalen Befehl gestossen der es mir ermöglicht hat ein Raid 1 über die beiden Sata SSDs zu erstellen.\nmvsetup create -o vd -r1 -d 0,1 -n \u0026quot;ESXI Boot\u0026quot;\nNach einem Reboot von Windows waren beim Bootvorgang auch die beiden SSDs zu sehen und die Virtual Disk(Raid 1) die über die beiden Platten erstellt wurde.\nNun war es an der Zeit die Königsdisziplin auszuprobieren und VMware ESXi zu installieren. Der Controller wird wie man sieht direkt erkannt und kann als Installationsmedium ausgewählt werden. Schon ein paar Minuten später bootet der ESXi von dem Boss Controller und verrichtet seine Dienste. Ich betreibe das System jetzt seit einigen Wochen ohne Probleme und bin sehr glücklich über diese Alternative Möglichkeit bei der 13. Generation der PowerEdge Server. Meiner Meinung nach ist der fehlende Support ein Weg von Dell den Kunden zu bewegen neue Server zu kaufen was ich durchaus verstehe kann. Trotzdem kann es für den einen oder anderen noch interessant sein der seine Systeme über dem regulären Supportzeitraum weiter betreiben möchte. Ich übernehme dafür aber keine Garantie 🙂\n","permalink":"https://www.3k9.de/dell-boss-s1-controller-in-aelteren-poweredge-server/","summary":"\u003cp\u003eMit der Ankündigung von VMware das in Zukunft keine SD Karten mehr als Boot/OS Speichermedium erlaubt sind war zumindest in meiner Bubble ein erhebliches raunen zu hören. Zu allem übel kamen dann auch noch Probleme in ESXi7U2 die innerhalb kürzester Zeit USB Sticks oder SD Karten zerstörten. In meiner Laborumgebung sind mir einmal die SD Karten im IDSM Modul von Dell kaputt gegangen und bei einem kleinen Kunden der tatsächlich einen USB Stick eingesetzt hat als Bootmedium gingen sogar 2 USB Sticks kaputt. Mittlerweile hat VMware seine Aussage nochmal revidiert und mit einigen Patches die unterstützen von SD Karten \u003ca rel=\"noreferrer noopener\" href=\"https://kb.vmware.com/s/article/85685\" target=\"_blank\"\u003ebedingt erlaubt.\u003c/a\u003e Allerdings ist die Marschrichtung klar und die Verwendung von SD Karten wird nur noch geduldet. Optimal ist es also nicht und sollte alsbald abgelöst werden.\u003c/p\u003e","title":"Dell BOSS-S1 Controller in älteren PowerEdge Server"},{"content":"Ich hatte neulich ein PoC bei einem größeren Kunden wo wir einen Citrix ADC(HA) in einer DMZ bereitgestellt haben um damit klassisch Remote Worker ohne VPN auf die OnPremise Citrix Virtual Apps \u0026amp; Desktops Umgebung zu verbinden. So eine Bereitstellung in einer DMZ kann trotz intensiver Vorbereitung ganz viele Überraschungen mit sich bringen. In den meisten Fällen weil irgendeine Firewallregel vergessen oder nicht richtig gesetzt wurde. Erstaunter war ich allerdings das eine kurz drauf folgende Absicherung mit Cisco Duo reibungslos und ohne große Probleme von statten ging. Zugegeben ich war in diesem fall nur für den Citrix ADC Part verantwortlich und musste also nur einen Radius Server konfigurieren aber das hat mich natürlich neugierig gemacht und deswegen habe ich das ganze im LAB nachgebaut.\nErfreulicherweise stellt Cisco eine 30 Tage Testversion zur Verfügung sowie eine kostenlose Version(für bis zu 10 Benutzer) die einen eingeschränkten Funktionsumfang hat. Nach der Testversion von Duo in der Vollversion(Beyond) wird euer Account automatisch auf Duo Free(Kostenlos) umgestellt.\nInteressant sind die Features die man bereits ab 3$ im Monat bekommen kann durchaus. Darunter auch die Möglichkeit das Token Device ( Smartphone ) auf Compliance zu prüfen. Allerdings reicht Duo Free aus um damit eine 2 Faktor Authentifizierung mit dem Citrix ADC zu realisieren. Da ich diesmal allerdings für den kompletten Stack verantwortlich war blieb es natürlich nicht bei der Konfiguration des ADCs. Neben einem Account bei Cisco Duo wird auch noch eine Windows oder Linux Appliance benötigt mit dem duoauthproxy der meine Anfragen zur Authentifizierung Richtung Cisco Cloud weiterleitet. Ich habe mich in diesem Fall für eine CentOS VM entschieden.\nZuerst musste man sich unter https://signup.duo.com einen Account erstellen. Was relativ schnell möglich ist. Ich habe übrigens das Häkchen bei „Ich bin MSP….“ nicht gesetzt und trotzdem bekam ich eine Email ob ich nicht Partner von Cisco Duo werden möchte? Das ich dadurch sehr gute Kondition bekommen könnte und weitere kostenlose Accounts…. 🙂\nWenn ihr euren Account erstellt habt meldet ihr euch im Admin Panel an. Dort könnt ihr unter Applikation den Citrix Netscaler hinzufügen in dem ihr ihn über den Button „Protect an Application“ sucht. Achtung es gibt auch noch das Citrix Access Gateway. Ich habe allerdings Citrix Gateway ( Netscaler ) ausgewählt weil es von der Produktbezeichnung her neuer war. Technisch weis ich nicht ob es hier ein Unterschied in der Bereitstellung gibt. Ihr klickt auf Protect und erhaltet dann in einem neuen Menü folgende wichtige Daten die ihr später für den duoauthproxy benötigt. Notiert euch diese Daten temporär in ein Texteditor eurer Wahl. Wir werden Sie gleich brauchen.\nWenn ihr nun etwas weiter nach unten scrollt könnt ihr der Applikation einen anderen Namen vergeben. Dieser Name wird später bei der Anmeldung angezeigt. Darüber hinaus könnt ihr hier im 30 Tage Testzeitraum auch das SelfService Portal konfigurieren. Das Selfservice Portal ist leider ein Feature das in der freien Version nicht zur Verfügung steht. Wenn ihr also später ein User hinzufügen wollt müsst ihr dies leider manuell durchführen. Zusätzlich lässt sich einstellen ob alle Varianten wie ein Username eingeben wird, gleich behandelt werden sollen. Ich habe dies mal vorerst auf None gelassen und auch keine Probleme damit festgestellt. Abschliessend scrollen wir nach unten und klicken auf Save. Wenn ihr jetzt noch im Testzeitraum seid brauchen wir im Admin Panel direkt nichts mehr zu tun. Wir können später den Benutzer voll automatisch „Onboarden“. Sollte der Testzeitraum allerdings abgelaufen sein und ihr euch nun in der kostenlosen Version befinden müsst ihr einen neuen Benutzer manuell anlegen. Unter Users -\u0026gt; And Users befindet sich das passende Menü. Wichtig ist das der Benutzername mit dem primären Authentifizierungsnamen übereinstimmt, damit hier ein Match stattfinden kann. In den meisten Fällen wird das der UPN ( UserPrincipalName ) sein der dann auch der Email Adresse entspricht. Nun haben wir alle wichtige Schritte im Cisco Duo Portal erledigt und können uns der OnPremise Umgebung widmen.\nBereitstellung CentOS mit Duo Authentication Proxy Ich habe mich bei der Bereitstellung des Proxies weitestgehend an die Anleitung von Cisco selbst gehalten. Als OS habe ich CentOS gewählt. Als Image habe ich folgende Version verwendet CentOS-7-x86_64-Minimal-2009.iso. Natürlich könnt ihr aber auch ein anderes Linux OS nehmen. Im Support aktuell sind CentOS, Red Hat Enterprise Linux, Ubuntu und Debian. Alternativ tut es natürlich auch ein Windows Server ab 2012. Ich zeige die Installation hier Beispielhaft an Linux.\nDa der Cisco Duo Authentication Proxy nur als Source Code vorliegt müsst ihr zunächst passende developer tools runterladen. Unter CentOS habe ich hierzu folgende Befehle ausgeführt.\nroot@linux# yum install gcc make libffi-devel perl zlib-devel diffutils Nun könnt ihr mit wget den aktuellen Sourcecode vom Duo Authentication Proxy runterladen. Idealerweise macht ihr das in eurem Home Verzeichnis.\nroot@linux# wget --content-disposition https://dl.duosecurity.com/duoauthproxy-latest-src.tgz Ihr entpackt das Tar Archiv und wechselt mit cd in den gerade entpackten Ordner. Mit dem Befehl make wird nun der Quellcode kompiliert.\nroot@linux# tar xzf duoauthproxy-5.7.3-src.tgz root@linux# $ cd duoauthproxy-version-src root@linux# $ make Nachdem der Quellcode kompiliert wurde, was ein paar Minuten dauern kann, könnt Ihr in den Ordner wechseln der beim kompilieren erstellt wurde und führ das Install Skript aus\nroot@linux# cd duoauthproxy-build root@linux# ./install Zunächst müsst Ihr den Pfad angeben wo der Authentication Proxy installiert werden soll. Ich habe den Standard /opt/duoauthproxy gelassen und somit mit Enter bestätigt.\nDer Authentication Proxy erstellt beim installieren einen sep. Dienstbenutzer. Hier könnt Ihr einstellen wie dieser lauten soll. Als nächstes ist noch der Gruppenname zu wählen. Oder mit Enter den voreingestellten zu bestätigen.\nJetzt kopiert er die Daten in den entsprechenden Ordner, erstellt die Benutzer/Gruppen und möchte von euch Wissen ob in Zukunft der Authentication Proxy immer automatisch starten soll. Dies solltet ihr mit Yes bestätigen. Solltet ihr SELinux einsetzen müsst ihr hier noch das entsprechende Modul installieren mit Yes.\nIn meinem Fall war kein SELinux installiert. Nach der Installation sollte der Duo Authentication Proxy gestartet sein. In meinem Fall musste ich noch die Firewall für den Radius Port öffnen.\nfirewall-cmd --zone=public --add-port=1812/udp --permanent Nun kommen wir zur eigentlichen Konfiguration des Proxies. Hier zu öffnen wir mit dem Editor eurer Wahl die Datei /opt/duoauthproxy/conf/authproxy.cfg. Hier richten wir zunächst den Zugriff auf das Active Directory ein. Hierzu benötigen wir folgende Informationen: Hostname des DCs, Benutzername/Passwort um das LDAP auslesen zu können sowie die Base DN in der sich die Benutzer befinden.\n\u0026#91;ad_client] host=10.66.255.10 service_account_username=srvadc service_account_password=Password1! search_dn=OU=Users,OU=Alpha Corp,DC=itnetx,DC=lab Im zweiten Abschnitt wird die Radius Server Konfiguration vorgenommen. Der Authentication Proxy unterstützt hier verschiedene Modi. In unserem Fall wird ein iFrame auf dem ADC eingeblendet der es uns dann ermöglich via Push den Login auf unserem Smartphone zu bestätigen. Ihr müsst hierzu das Template wissen das Ihr auf dem ADC einsetzt sonst passt das Layout des iFrames nicht. Hier gebt ihr dann auch die Daten ein die ihr beim anlegen der Applikation bekommen habt. Abschliessend tragt ihr noch die IP Adresse des ADCs sowie Passwort und Port ein\n\u0026#91;radius_server_iframe] type=citrix_netscaler_rfwebui api_host=api-XXXXXXXX.duosecurity.com ikey=DIIIXXXDDDDDDDXXXXX skey=b3232132132321321321321321321312 failmode=safe client=ad_client radius_ip_1=10.66.255.240 radius_secret_1=Password1! port=1812 Damit wir auch einen zweiten Faktor auf dem Citrix Receiver oder Workspace App realisieren können brauchen wir einen weiteren Server mit der Radius_Server_Auto Konfiguration. Ansonsten sind die Daten identisch zur Konfiguration oben. Danach speichert ihr Datei ab. Mit systemctl restart duoauthproxy startet ihr den Dienst neu und lädt die Konfiguration.\n\u0026#91;radius_server_auto] ikey=DIIIXXXDDDDDDDXXXXX skey=b3232132132321321321321321321312 api_host=api-XXXXXXXX.duosecurity.com radius_ip_1=10.66.255.240 radius_secret_1=Loremipsum1! failmode=safe client=ad_client port=18120 Konfiguration Citrix ADC Kommen wir zur Konfiguration des ADCs. Ich zeige die Konfiguration an Hand eines ADC Standard mit Advanced Policies da dies seit Release 13.0-67.x für das Citrix Gateway supported wird. Wir loggen uns auf dem Netscaler Management ein Wir wechseln auf Citrix Gateway -\u0026gt; Virtual Server wählen unseren virtuellen Server aus und klicken auf Edit. Als nächstes fügen wir den Punkt Authentication Profile hinzu und klicken auf ADD um ein neues Profil zu erstellen.\nNun vergeben wir einen sinnvollen Namen für unser Profil und klicken auf ADD um für unser Profil einen Authentication Virtual Server zu erstellen.\nAuch hier vergeben wir einen sinnvollen Namen. Die Einstellung „Non Addressable“ sowie SSL bleibt. Mit OK bestätigen wir die Einstellungen.\nIn der Übersicht des Virtual Servers erstellen wir nun eine neue Authentication Policy. Hierzu klicken wir auf den Punkt „No Authentication Policy“\nHier klicken wir auf bei Select Policy auf Add um eine neue Policy zu erstellen. Zunächst erstellen wir eine LDAP Policy in der wir unser LDAP abfragen nach dem entsprechenden Benutzer. Wir vergeben einen sinnvollen Namen, wählen bei Action Type „LDAP“ und klicken bei Action auf Add um einen LDAP Server zu konfigurieren. Als Expression wählen wir true da die LDAP Policy immer greifen soll. Bei der Anlage des LDAP Servers benötigen wir im ersten Schritt den Servernamen, Port, BaseDN, Administrator Bind DN, Passwort. Die Daten für BaseDN und Admin Bind DN lassen sich aus dem Active Directory auslesen. Als Security Type sollte SSL gewählt werden. Als Server Logon Name Attribute wählen wir New und geben „userPrincipalName“ ein. Wenn wir eine Einschränkung auf eine spezielle AD Gruppe haben wollen müssen wir den Search Filter anpassen sowie das Group Attribute. Abschließend klicken wir auf OK. Zurück im Konfigurationsmenü der ersten Authentication Policy sollte jetzt unter Action der LDAP Server den wir gerade erstellt haben ausgewählt sein. Wir klicken abschliessend auf OK.\nIn der Policy Bindung zurück sollte oben nun unsere eben erstellte LDAP Policy sein. Da wir neben dem ersten Faktor LDAP noch den zweiten Faktor Duo haben müssen wir bei Select Next Factor auf Add klicken um einen weiteren zu erstellen. Wir erstellen ein Policy Label in dem wir einen sinnvollen Namen vergeben. Die restlichen Einstellungen lassen wir wie vorgegeben und klicken auf Continue. Hier klicken wir auf Add Binding um ein weiteres Policy Bindung zu erstellen. Mit einem klick auf Add erstellen wir die Policy\nZunächst vergeben wir wieder einen sinvollen Namen und wählen als Action Type Radius aus. Für die Radius Konfiguration ist die Expression abhängig ob der Aufruf via Web-Browser oder Workspace App getätigt wird. Im ersten Schritt legen wir die Policy für den Browser Zugriff an. Mit folgender Expression:\nHTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"CitrixReceiver\").NOT Nun klicken wir bei Action auf Add und erstellen den Radius Server.\nHier vergeben wir einen neuen Namen, sowie IP, Port und Secret Key. Wir können direkt die Erreichbarkeit des Radius testen und nach erfolgreichem Test klicken wir auf Create. In der Übersicht sollte nun bei Action unser eben erstellter Radius Server vorhanden sein. Wir klicken auf OK um die Einstellungen zu bestätigen. In der Übersicht der Bindings fügen wir nun eine weitere Policy mit Add Binding hinzu da wir ja nun noch eine Bedingung brauchen für den Zugriff via Citrix Workspace. Wir legen die Policy analog zu unser bestehenden an. Wichtig ist das wir in unserer Duo Konfiguration vorher einen separaten Port definiert haben über den wir den Zugriff via Workspace App regeln. Dazu legen wir mit den Button Add einen sep. Server an. Die Expression ist ähnlich der vorherigen.\nHTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"CitrixReceiver\") Die Konfiguration ist Identisch zu vorher. Lediglich der Port wurde angepasst. Nun haben wir 2 Bindungen mit zwei verschiedenen Bedingungen als nächste Faktor angelegt. Die Priorität hat er selbst angepasst. Nun klicken wir auf Done und anschliessend auf Close. In der Übersicht haben wir nun eine Authentication Policy die wir mit Done bestätigen. Abschliessend wird das Authentication Profile auf dem Virtual Server mit OK bestätigt und ist somit aktiv. Wenn ihr alles richtig gemacht hab sollte nun nach dem Login mit Benutzernamen und Passwort euch ein Duo Push Dialog begrüßen. Das aussehen ist allerdings davon abhängig ob ihr den Benutzer manuell angelegt habt oder die „SelfEnrollment“ Option noch ausnutzen könnt. Da wie eingehend erwähnt der Account für euch innerhalb des Duo Portals noch angelegt werden muss. Fazit Ich hoffe euch hat die Anleitung gefallen und ihr konntet ihr Einigermaßen folgen. Ich freue mich immer über konstruktive Kritik. Für mich war die Umsetzung sehr spannend und ich nutze die Lösung seit ein paar Wochen. Ich muss allerdings sagen das ich die Azure SAML Authentifizierung angenehmer finde da ich dort auf SSO Funktionen zurückgreifen kann die mir so bei Cisco Duo in der freuen Version verwehrt bleiben. Trotzdem ist eine gute Lösung und relativ einfach umzusetzen.\n","permalink":"https://www.3k9.de/2-faktor-mit-citrix-adc-und-cisco-duo/","summary":"\u003cp\u003eIch hatte neulich ein PoC bei einem größeren Kunden wo wir einen Citrix ADC(HA) in einer DMZ bereitgestellt haben um damit klassisch Remote Worker ohne VPN auf die OnPremise Citrix Virtual Apps \u0026amp; Desktops Umgebung zu verbinden. So eine Bereitstellung in einer DMZ kann trotz intensiver Vorbereitung ganz viele Überraschungen mit sich bringen. In den meisten Fällen weil irgendeine Firewallregel vergessen oder nicht richtig gesetzt wurde. Erstaunter war ich allerdings das eine kurz drauf folgende Absicherung mit Cisco Duo reibungslos und ohne große Probleme von statten ging. Zugegeben ich war in diesem fall nur für den Citrix ADC Part verantwortlich und musste also nur einen Radius Server konfigurieren aber das hat mich natürlich neugierig gemacht und deswegen habe ich das ganze im LAB nachgebaut.\u003c/p\u003e","title":"2 Faktor mit Citrix ADC und Cisco Duo"},{"content":"Neulich hatte ich eine kleine Nuss zu knacken. Ich sollte für einen Kunden einen weiteren Terminalserver ausrollen. Der Kunde hatte ein VMware Template und ich dachte es wäre vielleicht durchaus sinnvoll das Template bevor ich darauf eine neue VM erstelle mal zu aktualisieren. Also gesagt getan. Ich habe das Image konvertiert zu einer VM und gestartet. Habe meine üblichen Windows Updates eingespielt und Office Update durchgeführt. Abschliessend habe ich das Image mit dem VMware Optimization Tool etwas „Bereinigt“. Die VM habe ich anschliessend runtergefahren und erneut konvertiert in ein Template.\nAus diesem Template wollte ich nun wie üblich eine neue VM erzeugen und mit der VM Anpassungsspezifikation automatisch den Namen ändern und die VM in die Domäne aufnehmen lassen. Allerdings brach der Sysprep Prozess immer mit folgender Fehlermeldung ab „Die Konfiguration des Systems konnte nicht abgeschlossen werden. Starten Sie den Computer neu, um die Konfiguration fortzusetzen.“\nNach einer intensive Recherche nach der Fehlermeldung die wohl sehr selten Auftritt bin ich über einen VMware Foreneintrag gestossen wo jemand ein ähnliches Problem hatte. Er schildert das er das Profil des Administrator Kontos neu machen musst weil wohl der Sysprep Job Probleme hatte mit den Build-In Apps . Ich wollte dann auch mal versuchen ein neues Profil zu erstellen. In der Benutzerprofilverwaltung fand ich allerdings 3 Konten vor die auf Unbekannt dort standen. Es waren keine Einträge unter C:\\Users vorhanden, was sehr seltsam war.\nIch habe dann die 3 Konten gelöscht und die VM Heruntergefahren und erneut versucht über das Template und den VM Anpassungspezifikationen eine VM zu erstellen und es hat direkt funktioniert. Solltet ihr also auch mal so ein Problem haben schaut mal in euren Benutzerprofilen nach. Vielleicht sind dort wie hier verwaiste Konten vorhanden.\n","permalink":"https://www.3k9.de/posts/2022-09-16-vmware-quicktip-vm-anpassungsspezifikation-funktioniert-nicht.html","summary":"\u003cp\u003eNeulich hatte ich eine kleine Nuss zu knacken. Ich sollte für einen Kunden einen weiteren Terminalserver ausrollen. Der Kunde hatte ein VMware Template und ich dachte es wäre vielleicht durchaus sinnvoll das Template bevor ich darauf eine neue VM erstelle mal zu aktualisieren. Also gesagt getan. Ich habe das Image konvertiert zu einer VM und gestartet. Habe meine üblichen Windows Updates eingespielt und Office Update durchgeführt. Abschliessend habe ich das Image mit dem VMware Optimization Tool etwas „Bereinigt“. Die VM habe ich anschliessend runtergefahren und erneut konvertiert in ein Template.\u003c/p\u003e","title":"VMware Quicktip: VM Anpassungsspezifikation funktioniert nicht"},{"content":"Mir ist es jetzt schon das zweite Mal passiert das ich bei einem Kunden FSlogix implementiert habe und nach der zweiten Anmeldung reagierte das Startmenü nicht mehr. Wenn man danach googelt findet man tatsächlich ein Beitrag von Manuel Winkel in dem er auf einen Beitrag von James Rankin verweist das wohl eine Exclusion in der Redirections.xml dafür verantwortlich ist. Genauer geht es in diesem Fall um den Ordner \\AppData\\Local\\GroupPolicy. Dieser Ordner wird in den meisten Konfigurationen ausgenommen und enthält eine lokaler Cache der Gruppenrichtlinien. In dem Beispiel geht das Betriebsystem also davon aus das ein Cache der GPOs vorhanden sein soll, da dies nicht der Fall ist schlagen diverse Fehler auf darunter auch ein Startmenü das nicht aufgeht.\nDer Fehler war allerdings bei mir etwas anders. Ich hatte zwar auch diese Ausnahme in meiner exclusions.xml aber ein entfernen eben dieser exclusion brachte keine änderung. Windows Images werden häufig für den Einsatz in Citrix oder Horizon Umgebungen optimiert. Das bedeutet das häufig Dienste abgeschaltet werden. Es hat sich wohl irgendwann zwischen Windows 10 1507 und 1803 eingeschlichen auch den App Readiness Dienst oder auch App-Vorbereitung zu Deaktivieren. Das abschalten des Dienstes hat den gleichen Nebeneffekt wie der von Manuel und James beschriebenen Problematik aber ist der Tatsache geschuldet Dienste teilweise aus Performancegründen einfach abgeschaltet werden.\nDer Dienste sollte als entweder im Image direkt oder via GPO wieder aktiviert werden und das Problem sollte nach einem Neustart behoben sein.\n","permalink":"https://www.3k9.de/fslogix-quicktip-startmenue-nach-der-zweiten-anmeldung-nicht-verfuegbar/","summary":"\u003cp\u003eMir ist es jetzt schon das zweite Mal passiert das ich bei einem Kunden FSlogix implementiert habe und nach der zweiten Anmeldung reagierte das Startmenü nicht mehr. Wenn man danach googelt findet man tatsächlich ein Beitrag von \u003ca rel=\"noreferrer noopener\" href=\"https://www.deyda.net/index.php/en/2019/11/05/fslogix-container-office-profile-in-citrix-environments/\" target=\"_blank\"\u003eManuel Winkel\u003c/a\u003e in dem er auf einen Beitrag von James Rankin verweist das wohl eine Exclusion in der Redirections.xml dafür verantwortlich ist. Genauer geht es in diesem Fall um den Ordner \u003cem\u003e\\AppData\\Local\\GroupPolicy\u003c/em\u003e. Dieser Ordner wird in den meisten Konfigurationen ausgenommen und enthält eine lokaler Cache der Gruppenrichtlinien. In dem Beispiel geht das Betriebsystem also davon aus das ein Cache der GPOs vorhanden sein soll, da dies nicht der Fall ist schlagen diverse Fehler auf darunter auch ein Startmenü das nicht aufgeht.\u003c/p\u003e","title":"FSlogix Quicktip: Startmenü nach der zweiten Anmeldung nicht verfügbar"},{"content":"Einleitung Ich bin schon viele Jahre als Trainer bzw. Dozent tätig. Anfänglich an der Volkshochschule danach bei meinen Arbeitgeber. In der Volkshochschule hatte ich viel Kurse gegeben mit Client-Betriebssystemen wie Windows XP oder Windows 2000. Die VHS stellte dort den Kursteilnehmern genauso wie mir einen entsprechenden PC bereit und anschließend haben wir uns an Hand des Kursbuch durch die einzelnen Menüs geklickt. Meine ersten Serverkurse waren dann mit Windows 2000 Server. Hier stelle mir die Volkshochschule dann nichts mehr bereit. Damals habe ich alle um einen Tisch versammelt und wir haben gemeinsam an einem PC die entsprechenden Basics gelernt wie man z.B. ADS einrichten, DNS oder DHCP Konfigurieren. Ich weis noch das der PC damals einen AMD Athlon X2 enthielt und die Windows Server Umgebung via KVM auf Linux virtualisiert wurde. Warum ich das damals so getan habe? Es war wie in vielen solcher Projekte einfach der Spieltrieb. Neben dem Bereitstellen einer Infrastruktur sollte der eigene Wissensaufbau nicht zu kurz kommen. Der Anfang Als ich allerdings dann weitere Windows Server Kurse gegeben habe mit Windows Server 2008 ( R2 ) sah ich mich gezwungen eine andere Lösung zu schaffen. Mein erster Aufbau einer Schulungsumgebung mit Windows Server 2008 war dann mit einem HP Proliant Microserver. Ich bin mir fast sicher das es damals sogar noch mit einem Generation 7 war mit einem AMD Turion II. Es gab für alle Schulungsteilnehmer eine eigene Windows Server VM. Es gab keine Netzwerktrennung… Was allerdings auch für die meisten Übungen nicht nötig war. Über die Jahre hinweg wurde dann aus dem Generation 7 ein Generation 8 Microserver bis hin zu einem Intel NUC mit I5 und 32GB RAM. Die Ansprüche stiegen und ich glaube zum Schluss habe ich dann auch mit unterschiedlichen VLANs und somit eigenen Netzen pro Teilnehmer gearbeitet.\nEine professionelle Umgebung muss her Seit einiger Zeit gebe ich nun in unregelmäßigen Abständen Schulungen im Bereich Citrix. Als ich die erste Schulung halten sollte habe ich mir intensive Gedanken gemacht wie die Ausgangssituation für die Teilnehmer sein sollte. Der Bedarf an Ressourcen in solchen Schulungsumgebungen ist um einiges höher als in klassischen Windows Server Schulungen. Es müssen viele Usecases wie z.B. das Aufbauen von Hochverfügbarkeit Raum finden. Natürlich hatte ich auch selbst Schulungen im Bereich Citrix besucht und dabei auch die andere Seite kennengelernt. Citrix selbst arbeitet mit Microsoft Azure zusammen und stellt einem Schulungsteilnehmer immer eine recht „Dicke“ VM(64 GB, 8 Kerne) als Hyper-V Instanz zur Verfügung. Damit diese Ressource nicht unnötig Geld kostet muss Sie vor dem bearbeiten von einer Aufgabe erst einmal eingeschaltet werden. Dies dauert dann im Schnitt 15 Minuten. Jede Aufgabe ist dann entsprechend vor konfiguriert und nur die nötigen VMs innerhalb der Hyper-V VM sind eingeschaltet um Ressourcen zu sparen. Wer einmal so ein Schulung besucht hat weis das die Umgebung sehr träge ist und teilweise extrem lange Wartezeiten mit sich bringt. Schade finde ich auch den Aspekt das die Umgebungen immer schon vordefiniert sind. Es ist also nicht möglich eine Farm von Grund auf zu erstellen und durchzuarbeiten. Für mich Stand sehr schnell fest das ich für meine Schulungsumgebung diesen Anspruch habe. Jeder Teilnehmer soll die Möglichkeit haben eine eigene Farm von Grund auf zu Erstellen.\nGewisse Rahmenparameter möchte ich natürlich den Teilnehmern schon mitgeben. Zum einen soll eine Domäne „lab.local“ vorhanden sein. Aber auch eine separate SQL Server Express Instanz möchte ich bereits vorinstalliert haben. Folgende VMs werden pro Schulungsteilnehmer bereitgestellt:\nDC01 – Domain Controller ( DNS, DHCP ) MS01 – Management Server ( SQL Server Express, Lizenz Server ) XC01 – 1. Delivery Controller XC02 – 2. Delivery Controller SF01 – 1. Storefront SF02 – 2. Storefront PS01 – 1. Provisoning Server PS02 – 2. Provisoning Server NS01 – Netscaler Fremium RD01 – Router Ihr seht schon die Anzahl der VMs eskaliert hier ziemlich schnell und das führt natürlich dazu das genügend Hardware Ressourcen vorhanden sein müssen. Natürlich könnte man auf einen Management Server verzichten und alles über den DC regeln. Allerdings hatte ich in diesen in einige Schulungen sogar als Core Variante laufen um Ressourcen zu sparen und somit war dieser nicht als Management Server geeignet.\nDie ersten Schulungen Meine erste Citrix Schulung habe ich auf einem Dell PowerEdge R710 mit 2 x 6 Core CPUs und 256 GB RAM. Das Storage war eine Kombination aus 4 x 256 GB SSDs und 4 x 600 GB SAS HDDs als VSAN Konstrukt. Die Performance innerhalb der Schulungsumgebung bei 5 Teilnehmer war leider nicht so Ideal. Gerade der Rollout via MCS oder PVS zwingt den Host CPU und Storagemäßig in die Knie. Das Feedback der Teilnehmer war durchweg negativ. Aber „Lessons learned“. Bei der nächsten Schulung habe ich dann einen weiteren HOST dazu gestellt der mit einem Citrix Hypervisor ausgestattet war. Die Server habe ich mit einem Juniper EX3300 via 2 x 10GBit verbunden. Die Trennung zwischen Control/Access Layer und Ressource Layer hatte tatsächlich einen positiven Effekt und sollte die Basis meiner zukünftigen Lösungen darstellen. Die Schulungsteilnehmer waren zufrieden und dies gab mir die Bestätigung das ich mit dieser Lösung auf dem richtige Weg bin. Auch im Storagebereich habe ich einen anderen Ansatz verfolgt und habe je Teilnehmer eine SSD zugewiesen sowie maximal 2 Teilnehmer die 4 x 600 GB SAS HDDs. Dies sorgte dafür das jeder Teilnehmer fast vollständig die Ressourcen von einer SSD bzw. HDD nutzen konnte. Der neue Citrix Hypervisor Host war ein ein Dell R230 mit E5-2450L CPU und 96GB RAM. Als Festplatten waren 2 x 900 GB SAS HDDs als RAID0. Es war so Problemlos möglich VMs via MCS auszurollen oder auch via PVS vDisk zu streamen dank 10Gbit im Backend.\nDer Rückschlag Nach einigen Schulungen und einsetzender Pandemie war ich gezwungen meine Schulungsumgebung umzubauen. Bisher habe ich die Umgebung immer wieder zuhause abgebaut und am Schulungsort aufgebaut. In Zukunft soll allerdings der Zugriff auf die Umgebung von Überall möglich sein. Ich nutze für den Zugriff von extern meine eigene Laborumgebung die auf einem separaten Hypervisor läuft. Die Teilnehmer bekommen via Netscaler und Citrix den Remote Desktop Client als published application. Leider habe ich in der Zwischenzeit meine Hardware etwas überarbeitet und auf Energiesparende CPUs umgestellt. Dies hatte leider den Effekt das die eingesetzten 6 Core CPUs häufiger zu 100% ausgelastet waren. 50 VMs mit mindestens 2 vCPUs sind schon eine extreme Überbuchung der Hardware. Es wird also für die nächste Schulung wieder eine 8 Core CPU sein. Auch habe ich darauf verzichtet die Hosts mit 2 x 10 Gbit anzubinden. Ich musste allerdings Feststellen das 2 x 1Gbit mit „Round Robin“ nicht wirklich Optimal ist wenn 6 Teilnehmer gleichzeitig ein vDisk Image abziehen oder Streamen. Auch hier wird es in Zukunft wieder 10Gbit geben.\nDetails zur Schulungsumgebung Die Schulungsumgebung sollte für jeden Teilnehmer identisch sein. Mir war es wichtig, das wenn wir von Host oder IP Adressen sprechen das niemand umdenken muss. Also musste ich es hinbekommen das jeder Teilnehmer die gleichen Einstellungen verwenden kann. Hierzu habe ich auf VMware Ebene für jede Umgebung eine eigene Port Gruppe erstellt.\nDiese Portgruppe wurde mit einem VLAN Tag versehen der auch auf Switchebene gesetzt wurde. Damit wurde ermöglicht das jeder Teilnehmer auf dem Citrix Hypervisor seine eigenen VMs hatte und auch neue VMs innerhalb seiner Farm ausrollen konnte.\nDie nächste Aufgabe war das wir einen Weg via RDP rein in die Schulungsumgebung benötigen und umgekehrt die Schulungsumgebung auch einen weg Raus bekommt. Man sollte aus der Schulungsumgebung ins Internet zugreifen können sowie das Management des Citrix Hypervisor erreichen. Hierzu setze ich auf Vyos . Dieser Schlanke auf Debian basierende Router ermöglicht mir durch ein klassisches NAT das ich auf der einen Seite immer das gleiche Labor Netz betrieben kann und auf der anderen Seite das Management/Wan betreiben kann. Hierzu habe ich euch meine Vyos Konfiguration veröffentlicht. Wichtig ist allerdings, wenn ihr später die VM dupliziert müsst ihr vorher die hw-id bei den Interfaces entfernen. Ansonsten legt Vyos immer wieder neue Interfaces an, da er beim starten die Konfiguration nicht zuordnen kann. \u0026lt;br /\u0026gt; delete interface ethernet eth0 hw-id delete interface ethernet eth1 hw-id vyos@vyos# show interfaces { ethernet eth0 { address dhcp hw-id 00:0c:29:55:27:65 } ethernet eth1 { address 192.168.1.1/24 hw-id 00:0c:29:55:27:6f } loopback lo { } } nat { destination { rule 10 { description \"RDP to MS01\" inbound-interface eth0 protocol tcp translation { address 192.168.1.11 port 3389 } } } source { rule 10 { outbound-interface eth0 source { address 192.168.1.0/24 } translation { address masquerade } } Mit dem Router habt ihr sozusagen das Kernstück das euch den weg ebnet die ganzen VMs auch -n mal zu duplizieren ohne das es zu Probleme kommt. Da ich die Infrastruktur auf VMware betreibe habe ich hierzu ein kleines PowerCLI Skript geschrieben das es mir erleichtert ein ganzes Lab für ein Schulungsteilnehmer zu duplizieren. Die Voraussetzung ist das Ihr die Schulungsumgebungen in Ordner einteilt.\nDas Skript ist sehr rudimentär und ein PowerShell/PowerCLI Spezialist weis bestimmt es noch zu optimieren. Ich kopiere in dem Skript nicht nur die VM, ich lasse auch noch das Netzwerkinterface auf die entsprechende Portgruppe anpassen. Damit sind die VMs direkt Einsatzbereit.\nConnect-VIServer -Server 10.66.99.80 -User Administrator@vsphere.local -Password Passwort1! $srcvms = get-vm -location \"LAB10\" | select -expandproperty Name Foreach ($srcvm in $srcvms) { $srvcvms_strip = $srcvm -replace \"-LAB10\" new-vm -name \"$srvcvms_strip-LAB15\" -vm $srcvm -vmhost 10.66.99.4 -datastore \"RZ1-DS01-R5\" -Location \"LAB15\"\tget-vm \"$srvcvms_strip-LAB15\" | get-networkadapter | where {$_.NetworkName -eq \"LAB10\"} | Set-NetworkAdapter -NetworkName \"LAB15\" -confirm:$false } Ich möchte noch ein paar Worte zum Thema Storage verlieren. Um gerade beim Installieren von den Anwendungen nicht so viel Zeit zu verlieren setze ich gerne SSDs ein. Idealerweise auch für jeden Teilnehmer eine eigene SSD. Leider sind SSDs nach 1 – 2 Schulungen ziemlich am Ende mit der Performance da dann alle Blöcke auf der SSD einmal beschrieben wurden und nun erst mal gelöscht werden müssen bevor Sie neu beschrieben werden. Dies merkt man deutliche beim duplizieren der VMs. Ich habe in der letzten Schulung darauf verzichtet für jeden Teilnehmer eine eigene SSD bereit zu stellen sondern habe jeweils aus 4 x 512 GB und 4 x 250 GB SSDs ein Raid 5 gebaut. Dies hat das einbrechen der Performance etwas gemindert. Zudem waren die 512 GB SSDs neu. Teilweise sind auch drehende Platten okay für die Management Umgebung. Wobei ich für den Citrix Hypervisor immer auf SSDs gehen würde. Das Sizing mit knapp 1 TB im Raid 0 war auch absolut ausreichend und ermöglicht auch beim gleichzeitigen Rollout von 6 Schulungsumgebungen via MCS noch optimale Werte. Fazit Ich bin mit meiner Schulungsumgebung noch nicht am Ende. Bei jeder Schulung die ich gebe wird Sie weiter entwickelt bzw. umgebaut. Dies führt natürlich auch mal dazu das es vielleicht nicht so optimal läuft wie geplant. Allerdings lerne ich immer wieder etwas dazu. In letzter Zeit z.B. spiele ich viel mit Windows Deployment Service und MDT. Aktuell entsteht nämlich mein Basis LAB immer aus einem VMware Template das ich entsprechend Klone. Viele sind hier schon weiter und lassen sich per MDT ganze Umgebungen zusammen bauen. Die Komplexität von MDT ist allerdings nicht zu verachten. So habe ich es bisher erreicht ein Windows 10 Image auszurollen. Es machte auch von alleine Windows Updates aber die Software Installation die ich geplant hatte wurde leider nicht installiert. Jedenfalls wird dies bestimmt der nächste Schritt sein. Neben der Tatsache das ich natürlich immer Versuche die Performance zu optimieren.\n","permalink":"https://www.3k9.de/the-ultimate-guide-to-schulungsumgebung/","summary":"\u003ch4 id=\"einleitung\"\u003eEinleitung\u003c/h4\u003e\n\u003cp\u003eIch bin schon viele Jahre als Trainer bzw. Dozent tätig. Anfänglich an der Volkshochschule danach bei meinen Arbeitgeber. In der Volkshochschule hatte ich viel Kurse gegeben mit Client-Betriebssystemen wie Windows XP oder Windows 2000. Die VHS stellte dort den Kursteilnehmern genauso wie mir einen entsprechenden PC bereit und anschließend haben wir uns an Hand des Kursbuch durch die einzelnen Menüs geklickt. Meine ersten Serverkurse waren dann mit Windows 2000 Server. Hier stelle mir die Volkshochschule dann nichts mehr bereit. Damals habe ich alle um einen Tisch versammelt und wir haben gemeinsam an einem PC die entsprechenden Basics gelernt wie man z.B. ADS einrichten, DNS oder DHCP Konfigurieren. Ich weis noch das der PC damals einen AMD Athlon X2 enthielt und die Windows Server Umgebung via KVM auf Linux virtualisiert wurde. Warum ich das damals so getan habe? Es war wie in vielen solcher Projekte einfach der Spieltrieb. Neben dem Bereitstellen einer Infrastruktur sollte der eigene Wissensaufbau nicht zu kurz kommen. \u003c/p\u003e","title":"The ultimate guide to Schulungsumgebung"},{"content":"In Part 1 meiner Citrix Cloud Serie habe ich über die Einrichtung der Citrix Cloud Connectoren gesprochen. In Part 2 möchte ich jetzt näher auf das Einrichten von Hostingressourcen eingehen. Im speziellen richte ich eine VMware vSphere 7.0 und eine Citrix Hypervisor 8.2 Verbindung ein. Beide Verbindungen sind OnPremise in meinem Datacenter. Die Installation der beiden oben genannten Hypervisor ist natürlich nur ein Bespiel. Darüber hinaus ist es mittlerweile möglich eine Vielzahl an Plattformen an die Citrix Cloud anzubinden. Unter folgendem Link findet man eine vollständige Auflistung der unterstützen Plattformen und darüber hinaus weitere wichtige Informationen und Systemvorraussetzungen .\nBeginnen wir also da wo wir das letzte mal aufgehört haben und loggen uns wieder in die Citrix Cloud ein. Im Hauptmenü klicken wir auf Virtual Apps and Desktops verwalten.\nBeim ersten Start kommt eine Übersichtsseite die einem in Stichpunkten erklärt was zu tun ist für ein erfolgreiches Deployment von aus der Citrix Cloud. Diese Übersichtsseite lässt sich mit setzen eines „Häkchens“ bei Übersichtsseite nicht mehr anzeigen ausblenden. Allerdings ist es mir häufiger passiert das trotz diesem „Häkchens“ die Übersichtsseite wieder erscheint. Um nun unsere Virtual Apps und Desktops Instanz zu verwalten klicken wir auf Service verwalten.\nNun öffnet sich das Citrix Web Studio. Wer die Citrix Cloud schon etwas länger kennt weis das vor nicht all zu langer Zeit sich hier tatsächlich ein Delivery Controller in einer gekapselten ICA Browser Session befunden hat. Die Performance dieser Lösung war sehr bescheiden und obwohl man die Elemente aus seiner OnPremise Welt kannte schien es wenig Intuitiv zu sein. Das Neue Web Studio hingegen ist für Citrix Verhältnisse sehr robust und auch performant. .Wir klicken nun auf den Punkt Hosting und als nächstes auf den Punkt Verbindung und Ressourcen hinzufügen.\nEs öffnet sich nun ein Dialog der uns durch den Prozess der Einrichtung einer Hostingconnection leitet. Als erstes wählen wir den Verbindungstyp. In unserem Fall VMware vSphere. Weiter in diesem Dialog tragen wir die Verbindungsadresse des OnPremise vCenter ein. (Die URL muss für die Cloud Connectoren auflösbar sein) Danach brauche wir noch Benutzername und Kennwort. Es muss nicht der Administrator Account sein. Die Cloud Services brauchen für das Deployment von Maschinen nur eingeschränkt Rechte. Unter folgender URL findet Ihr eine Auflistung der Rechte die benötigt werden.\nWir vergeben noch einen Verbindungsname für diese Hosting Connection und abschliessend wählen wir noch aus wie über diese Hosting Connection VMs bereit gestellt werden.\nAls nächstes wird mit aller Wahrscheinlichkeit die Abfrage kommen ob wir dem selbstsignierten Zertifikat das unsere VMware vSphere Umgebung besitzt vertrauen wollen. Alternativ vergibt Ihr der VMware Umgebung ein Zertifikat dem die Cloud Connectoren vertrauen. Idealerweise über eine interne CA. In meinem Fall vertraue ich dem Zertifikat und bestätige mit OK.\nIm nächsten Schritt müssen wir den Cluster definieren sowie auswählen ob wir Shared Storage oder Local Storage haben.\nWir klicken auf Durchsuchen um den Cluster oder Host auszuwählen und klicken abschliessen auf OK. In meinem Setup habe ich kein Shared Storage an den ESXi deswegen wähle ich für den Speicher die lokalen Platten des ESXi aus und klicke auf Weiter.\nHier lässt sich nun auswählen welcher lokale Datastore verwendet werden soll und ob wir differenzieren wollen zwischen Betriebssystem und Temporärer Speicher. Der Grund warum man das tuen kann ist ganz einfach. Man kann darüber entscheiden ob man den Temporären Speicher auf eine SSD legen möchte um die Performance innerhalb der VM zu steigern. In All Flash Systemen ist dies natürlich unnötig aber in Hybriden Umgebungen oder auch in SAS und NL-SAS Umgebungen kann man hier aus Kosten/Kapazitätsgründen so eine Aufteilung einstellen. In meiner Umgebung liegt alles auf lokalen SSDs und deswegen braucht es keine Unterscheidung. Nachdem wir auf weiter geklickt haben können wir das Netzwerk definieren das wir für unsere Maschinen verwenden wollen. Desweiteren brauchen wir noch einen sinnvollen Namen wie wir unsere Ressource benennen wollen. Wichtig sollte sein, wenn Ihr mehr wie eine LUN oder ein Netzwerk verwenden wollt, das sich dies im Namen widerspiegelt. Das erleichtert euch später das Deployment von Maschinen. Ideale Namen wären z.b. RZ1-LUN01-VLAN10 oder RZ2-LUN12-VLAN3\nMit einem klick auf Weiter kommt Ihr in den Dialog der Geltungsbereiche. Im Grunde geht es hier um Berechtigungen die man setzen kann um diese speziell Administratoren für gewisse Bereiche zuzuweisen. Wenn Ihr keine Administratoren habt die nur auf diese Hosting Connection zugreifen dürfen ist dies für euch uninteressant. Ich selbst habe bisher noch keine Geltungsbereiche angelegt. Deswegen klicke ich auf Weiter\nIn der Zusammenfassung sehen wir nochmal im Überblick welche Einstellungen wir vorgenommen haben und mit einem klick auf Fertigstellen wird unsere Hosting Connection angelegt und ist bereit das wir Sie für einen Maschinenkatalog verwenden können. Jetzt wären wir eigentlich schon durch mit allem aber da ich mir gedacht habe das ich euch auch noch zeigen kann wie man das ganze mit einem Citrix Hypervisor anlegt und was es hier zu beachten gilt geht es direkt weiter. Wir klicken als nochmal auf Verbindung und Ressourcen hinzufügen im Bereich Hosting. Der Dialog sieht nun etwas anders aus. Es wird mir die Möglichkeit gegeben zu meiner bestehenden Hosting Connection weitere Ressourcen wie z.b. Netzwerk und Speicher hinzuzufügen. Wir wollen aber nochmal ein neue Hosting Connection anlegen und klicken deswegen auf Neue Verbindung erstellen.\nDer Verbindungstyp Citrix Hypervisor ist bereits ausgewählt und muss nicht angepasst werden. Die Verbindungsadresse muss analog zur VMware Adresse von den Cloud Connectoren erreichbar sein. IP Adresse geht bei Verwendung von http auch. Allerdings ist dann der Traffic von Cloud Connectoren zu Citrix Hypervisor unverschlüsselt. Verwendet man allerdings https um sicher zu sein, muss man darauf achten das ein Zertifikat auf den Citrix Hypervisor installiert ist, dem die Cloud Connectoren vertrauen. Ist dem nicht so, kommt nicht wie bei VMware ein Dialog bei dem man dem Zertifikat vertrauen kann, sondern eine Fehlermeldung die einem erklärt das der Host nicht erreichbar wäre. Dies ist etwas irreführend. Wenn Ihr so einen Fall habt, idealerweise erst mal mit http gegentesten. Ich habe in meinem Setup das bereits installierte selbst signierte Zertifikat des Citrix Hypervisors auf den Cloud Connectoren importiert. Da der Import eines Domain validierten Zertifikates auf dem Citrix Hypervisor mit einigen Hürden verbunden ist.\nBenutzername und Passwort ist auch beim Citrix Hypervisor etwas einfacher. Es gibt kein Berechtigungskonstrukt wie bei VMware, somit kann man lediglich Usern/Gruppen die via Active Directory Join des Hypervisors auswählbar sind als Server oder Pool Admin definieren. Hier im LAB habe ich für die Demo tatsächlich root verwendet was allerdings nicht dem Best Practise entspricht. Abschliessend vergibt Ihr wieder ein Verbindungsname und klickt auf Weiter. Auf dem XenServer wird kein Cluster ausgewählt deswegen selektieren wir hier nur ob wir Shared Storage verwenden oder Local Storage und klicken auf Weiter.\nAuch hier haben wir die Möglichkeit auszuwählen ob wir unsere Daten auf unterschiedlichen Storages verteilen wollen. Hier im Beispiel selektiere ich für beides die gleichen lokalen Speicher und klicke auf Weiter.\nAuch der Citrix Hypervisor braucht ein Netzwerk das er für die VMs verwendet und einen sinnvollen Namen für die Ressourcen. Abschliessend klicken wir auf Weiter.\nNun können wir auch hier noch die Geltungsbereiche definieren wenn wir welche haben ansonsten klicken wir einfach auf Weiter.\nIn der Zusammenfassung sehen wir nochmal alle Einstellungen die wir vorgenommen haben. Mit Fertig stellen wir die Hosting Connection angelegt.\nIn der Übersicht im Bereich Hosting kann ich nun meine beiden eben angelegten Hosting Connections einsehen und verwalten. Soo nun haben wir hoffentlich erfolgreich unsere Hosting Connection eingerichtet und sind bereit ein Image auszurollen…. Leider ist es so einfach dann doch nicht. Es bleibt etwas Hausaufgabe für euch. Bis zu Part 3 müsst Ihr nämlich euer Image „Cloud Ready machen. Wie Ihr das hinbekommt? Wie würde der liebe Citrixler nun sagen „It Depends“. Ihr könntet ein neues Image erstellen mit euren Anwendungen und bei der VDA Installation anstatt den Delivery Controllern die Cloud Connectoren auswählen. Ihr könnt aber auch den „faulen“ Weg nehmen den ich gegangen bin. Ich habe mein bestehendes Template kopiert und lediglich in der Registry die „List of DDCs“ angepasst. Wichtig ist natürlich das euer VDA die Provisionierungsart die in der Cloud eingesetzt werden soll auch unterstützt. Hier ist das Thema MCS vs. PVS anzusprechen. Jendenfalls wird das jetzt die Hausaufgabe für euch leibe Leser und wenn Ihr dabei Unterstützung braucht schriebt mir in den Kommentaren oder per Mail.\n","permalink":"https://www.3k9.de/citrix-cloud-part-2-einrichtung-der-hypervisor-connection/","summary":"\u003cp\u003eIn Part 1 meiner Citrix Cloud Serie habe ich über die Einrichtung der Citrix Cloud Connectoren gesprochen. In Part 2 möchte ich jetzt näher auf das Einrichten von Hostingressourcen eingehen. Im speziellen richte ich eine VMware vSphere 7.0 und eine Citrix Hypervisor 8.2 Verbindung ein. Beide Verbindungen sind OnPremise in meinem Datacenter. Die Installation der beiden oben genannten Hypervisor ist natürlich nur ein Bespiel. Darüber hinaus ist es mittlerweile möglich eine Vielzahl an Plattformen an die Citrix Cloud anzubinden. Unter \u003ca href=\"https://docs.citrix.com/en-us/citrix-virtual-apps-desktops-service/system-requirements.html\"\u003efolgendem Link\u003c/a\u003e findet man eine vollständige Auflistung der unterstützen Plattformen und darüber hinaus weitere wichtige Informationen und Systemvorraussetzungen .\u003c/p\u003e","title":"Citrix Cloud Part 2 – Einrichtung der Hypervisor Connection"},{"content":"Ich versuche mich jetzt mal an einer Serie von Beiträgen zum Thema Citrix Cloud. Ziel ist die Bereitstellung einer Virtual Apps und Desktops Farm mit OnPremise Ressource Location. Beginnen möchte ich mit dem Citrix Cloud Connector. Klar gibts es noch einige organisatorischen Vorarbeiten um mit einem Citrix Cloud Projekt starten zu können aber mein Fokus liegt hier klar auf der technischen Seite.\nEigentlich ist die Installation eines Citrix Cloud Connectors eine relativ einfache Prozedur trotzdem habe ich hier in dieser Anleitung zusammengefasst was man darüber wissen muss bzw. wissen kann. Zu erst möchte ich allerdings über die Funktion eines Cloud Connectors sprechen damit wir besser verstehen wie wichtig diese Komponente innerhalb unseres Control Layers für die gesamte Citrix Infrastruktur ist.\nWie in dem Schaubild unten sehr gut ersichtlich ist stellt der Cloud Connector das Bindeglied dar zwischen den Virtual Apps \u0026amp; Desktops Services die uns die Citrix Cloud zur Verfügung stellt und den Ressourcen die OnPremise bzw. in der Cloud ( Azure, AWS und Co. ) gehostet werden.\nIn einer klassischen Citrix Virtual Apps \u0026amp; Desktops Umgebung betreiben wir die Infrastrukturkomponenten Storefront, Delivery Controller meist lokal im eigenen RZ. Wir geben für die Kommunikation untereinander die jeweiligen Services an. Durch den Wegfall dieser Komponenten tritt der Cloud Connector an ihrer Stelle. Bei der Konfiguration des VDA’s z.B. fügen wir anstatt dem Delivery Controller den FQDN des Cloud Connectors hinzu. Ähnlich ist dies mit Komponenten wie PVS oder aber auch Storefront die in einer Hybridumgebung weiterhin OnPremise betrieben werden können. Benötigen wir allerdings für einen Citrix Hypervisor oder PVS zur Lizenzierung einen Lizenzserver können wir hier aktuell noch nicht auf den Cloud Connector zurückgreifen und müssen hierzu tatsächlich einen Lizenzserver OnPremise installieren.\nFür die Installation eines Cloud Connectors wählen wir uns erst via cloud.citrix.com in unsere Umgebung(Tenant) ein. Unter Ressourcenstandorte finden wir die Möglichkeit unsere Ressourcen in einzelne Bereiche sinnvollerweise auch Standorte einzuteilen. Hiermit sind nicht nur physische Standorte gemeint sondern auch Standorte in Azure und Co.\nNeben der Bereitstellung von Cloud Connectoren lassen sich auch Gateways, Gateway Connectoren und FAS Server zu Ressourcenstandorten hinzufügen. Um einen neuen Ressourcenstandort anzulegen klicken wir auf das Pluszeichen oben. Hierbei wird wie in dem Screenshot oben zu sehen ist der erste Ressourcenstandort angelegt. Möchte ich den Namen des Standortes ändern oder die Update Policy anpassen nachdem der Cloud Connector aktualisiert werden darf, kann ich dies über die drei Punkte Rechts auf dem jeweiligen Ressourcenstandort tun.\nDie Updaterichtlinie für die Connectoren ist in sofern interessant, das Citrix diese eigentlich voll automatisch steuert und selbstständig durchführt. Idealerweise immer in der Nacht. Trotzdem kann dies bei einem 24×7 Betrieb zu Problemen führen, weswegen man die Updatezeit manuell editieren kann. Wichtig sei hier zu wissen das der Cloud Connector von Citrix verwaltet wird. Die Updates werden von Citrix angestossen oder von uns manuell festgelegt allerdings wird das Update dann voll automatisch durchgeführt. Wir haben hier keinen Einfluss drauf. Um eine Konnektivität im Falle eines Updates zur gewährleisten empfiehlt es sich mindestens 2 Cloud Connectoren zu installieren. Idealerweise sogar 3 Cloud Connectoren da nur damit tatsächlich ein HA(High Availability) realisierbar wäre. Sollten wir die Updates der Cloud Connectoren aus irgendeinem Grund nicht durchführen werden die Cloud Connectoren nach dem zweiten Updatezyklus aus der Cloud Verbindung ausgeschlossen. D.h. die Cloud Connectoren erhalten dann keine Verbindung mehr zum Tenant und müssen in dann neuinstalliert werden.\nNachdem wir nun den Namen und unsere Updatemethode festgelegt haben, wollen wir den ersten Cloud Connector einrichten. Hierzu klicken wir auf das große Plus bei Cloud Connectoren. Es öffnet sich ein PopUp Dialog der es uns ermöglicht den Cloud Connector Installer runterzuladen.\nNachdem Download platzieren wir die Datei cwcconnector.exe auf eine neue Windows Server 2019 VM die ich aus einem Template geklont habe. Aktuell wird auch noch Windows Server 2016 sowie 2012 R2 unterstützt. Eine Cloud Connector VM sollte mindestens 4 vCPUs und 8 GB RAM haben. Idealerweise 16 GB RAM und mehr. Der Wert variiert hier sehr stark von der Anzahl der User die über den Cloud Connector eine ICA Session laufen haben. Möchte man den Traffic der OnPremise Clients innerhalb des eigenen LANs halten muss man mit einem internen Storefront oder Netzwerk Speicherorte innerhalb Citrix Cloud arbeiten. Um die Installation jetzt zu starten machen wir Rechtsklick auf das Installer Icon und wählen dort den Punk „Ausführen als Administrator“. Sollten wir dies nicht tun wird im zweiten Schritt der Anmeldung der Installations Prozess mit einer Fehlermeldung scheitern.\nWir bestätigen hier die UAC mit Ja damit der Installationsprozess fortgesetzt werden kann.\nDer Installer führt nun selbständig einen Verbindungstest durch. Nachdem dieser abgeschlossen ist können wir uns anmelden um den Cloud Connector mit dem Tenant und dem entsprechenden Ressourcenstandort zu verbinden. Hierzu klicken wir auf „Sign in and Install“\nWir benötigen Username und Password. Solltet ihr bisher kein Citrix Cloud Account haben müsst ihr diesen erst erstellen. In der Regel läuft es allerdings so das eure Email Adresse einem Tenant zugewiesen wurde wenn ihr ein Citrix Cloud Produkt erworben habt. Durch diese Zuweisung bekommt ihr eine Email mit der ihr euch dann an der Citrix Cloud registrieren könnt. Ihr seid dann automatisch Tenant Admin und habt somit auch das recht einen Cloud Connector zu deployen.\nHier müsst ihr dann auch noch eueren zweiten Faktor eingeben den ihr bei der Einrichtung eures Account erstellen musstet.\nAn dieser Stelle wählen wir den Kunden bzw. den Tenant aus den wir verwenden wollen. Für den Fall das wir mehrere zur Auswahl haben. Und zusätzlich die Resource Location ( Standort ). Wenn man nur einen hat muss man hier nichts auswählen. Bei einem klick auf Install beginnt dann die eigentliche Installation.\nNun werden alle nötigen Dienste und Komponenten installiert.\nAbschliessend wir eine weitere Verbindungsüberprüfung durchgeführt. Dieser Test läuft meistens ein paar Minuten und kann auch je nach Verbindungstyp mal Fehlerschlagen. Hier ist Geduld gefragt. Sollte er fehlschlagen einfach nochmal probieren. Nachdem der Cloud Connector installiert können wir im Citrix Cloud Portal dann auch prüfen ob unter Connector im Ressourcenstandort ein entsprechender Eintrag vorhanden ist. Hier kann man dann auch noch sehen wann der Cloud Connector zu letzt von Citrix aktualisiert wurde.\nDas wars nun fürs erste. Für einen zweiten oder dritten Cloud Connector führen wir die Schritte nachdem Download der Software erneut aus. Sind nun alle Cloud Connectoren installiert können wir zum nächsten Schritt. Als nächstes richten wir uns eine Hosting Connection für unsere Virtual Apps und Desktops Services ein. Dies folgt dann in Part 2 dieser Serie.\n","permalink":"https://www.3k9.de/citrix-cloud-part-1-installation-eines-citrix-cloud-connectors/","summary":"\u003cp\u003eIch versuche mich jetzt mal an einer Serie von Beiträgen zum Thema Citrix Cloud. Ziel ist die Bereitstellung einer Virtual Apps und Desktops Farm mit OnPremise Ressource Location. Beginnen möchte ich mit dem Citrix Cloud Connector. Klar gibts es noch einige organisatorischen Vorarbeiten um mit einem Citrix Cloud Projekt starten zu können aber mein Fokus liegt hier klar auf der technischen Seite.\u003c/p\u003e\n\u003cp\u003eEigentlich ist die Installation eines Citrix Cloud Connectors eine relativ einfache Prozedur trotzdem habe ich hier in dieser Anleitung zusammengefasst was man darüber wissen muss bzw. wissen kann. Zu erst möchte ich allerdings über die Funktion eines Cloud Connectors sprechen damit wir besser verstehen wie wichtig diese Komponente innerhalb unseres Control Layers für die gesamte Citrix Infrastruktur ist.\u003c/p\u003e","title":"Citrix Cloud Part 1 – Installation eines Citrix Cloud Connectors"},{"content":"In den meisten POCs im Bereich Nvidia GRID habe ich den Lizenzserver auf irgendeinen bestehenden Windows Server mitinstalliert. Oft habe ich dabei Probleme mit der Java installation gehabt. Daraus ist die Idee geboren den Lizenzserver unter Ubuntu bereitzustellen. Für die Installation habe ich ein Ubuntu 20.04 LTS in einer virtuellen Maschine installiert und die letzten Updates via apt update \u0026amp; apt upgrade eingespielt.\nAls nächstes muss eine entsprechende Java Runtime installiert werden. Der Nvidia License Server unterstützt hier neben der klassischen Java Runtime von Oracle auch das OpenJDK was lizenztechnisch mittlerweile die sichere Variante ist. Mit apt Install default-jre führt man die Installation durch. Alle nötigen Pakete werden entsprechend geladen.\nIm Anschluss laden wir noch das Apache Tomcat Paket. In der Nvidia License Server Dokumentation wird zwar empfohlen das Apache Paket manuell zu laden und auf dem entsprechenden Hostsystem zu kompilieren um den Support aller Features zu gewährleisten. Allerdings bezieht sich dies wohl mehr allgemein auf die eingesetzte Version. z.B. gibt es viele Distributionen die immer noch auf eine veraltete Tomcat Version setzen bzw. keine neue Version in ihren Paketkatalog aufnehmen. Die Installation ist ähnlich einfach wie schon bei dem Java JRE. Ein _**apt Install tomcat9 tomcat9-admin **_erledigt hier alle nötigen Schritte.\nNun können wir uns der eigentlichen Lizenzserver Installation widmen. Im ersten Schritt müssen wir die aktuelle Version des Lizenzserver aus dem Nvidia Portal herunterladen. Stand aktuell 2020.05 Update 1 Nachdem wir die Zip Datei runtergeladen haben entpacken wir diese entweder auf unserem Windows PC direkt oder kopieren Sie komprimiert mit der Hilfe eines SCP/SFTP Clients auf den Ubuntu Server. Ich habe mich dafür entschieden vorher die Zip Datei zu entpacken und kopiere lediglich die setup.bin via WinSCP.\nDie Datei setup.bin muss nun noch ausführbar gemacht werden mit **chmod u+x **\nWenn das geschafft ist können wir das Setup mit ./setup.bin start\nAn dieser Stelle drücken wir lediglich Enter. Wir werden aufmerksam gemacht das wir das Setup jederzeit mit quit beenden können.\nEs folgt die Enduser License Agreement die wir natürlich gewissenhaft gelesen haben und anschliessend mit y bestätigen. Hier werden wir nach dem Installationsverzeichnis für unseren Lizenzserver gefragt. Man kann die Einstellung Standard belassen und einfach mit Enter bestätigen.\nIm weiteren verlauf müsst ihr den Pfad zu eurer Apache Tomcat Installation angeben. Auf einem Ubuntu System ist dies /var/lib/tomcat9\nDie Firewallkonfiguration anschliessend lasse ich ebenso Standard. Hier sollte im Nachgang mit UFW entsprechende Firewallregeln erstellt werden die den Zugriff nur für bestimmte IP Bereiche erlaubt. Also mit Enter bestätigen.\nAbschliessend erhalten wir die Info das der Lizenzserver erfolgreich installiert wurde und das wir noch ein weiteres mal mit Enter bestätigen sollen.\nAchtung: In Update 1 des Lizenzservers hat sich wohl ein kleiner Bug eingeschlichen. Beim ersten Aufruf des Lizenzservers über den Browser kam eine Fehlermeldung zurück. Der Grund ist das die zwei Programmelemente(fne.war sowie licserver.war) des Lizenzserver nicht in das Webapps Verzeichnis des Tomcat Server geschrieben wurden. Wir kopieren die beiden Dateien die sich unter /opt/flexnetls/nvidia/ui befinden mit einem cp *.* /var/lib/tomcat9/webapps. Anschliessend starten wir den tomcat9 dienst neu mit service tomcat9 restart.\nDer erste Browseraufruf via http://hostname:8080/licserver sollte das Portal wie im Screenshot zum Vorschein bringen.\nWir könnn nun unter License Management eine im Nvidia Lizenzportal generierte Lizenzdatei hochladen in dem wir die Datei über Choose File auswählen und anschliessend auf Upload klicken.\nDie zur Verfügung stehenden Lizenzfeatures können über den Link auf License Feature Usage geprüft werden.\nNun ist es Zeit sich noch um ein kleines bisschen Sicherheit zu kümmern. Der Lizenzserver in der aktuellen Konfiguration benötigt keine Authentifizierung und kann somit von jedem User eingesehen und bearbeitet werden. Um dies zu verhindern wechseln wir nochmal auf die Konsole und aktiveren. Die Option das eine Passworteingabe zur Anpassung der Konfiguration im Lizenzserver notwendig ist. Hier zu erstelle ich im ersten Schritt eine Variable die es mir in den folgenden Schritten einfacher macht beim Handling mit den Befehlen. FLEXNETLS_BASEURL=http://localhost:7070/api/1.0/instances/~\nSobald die Variable erstellt ist können wir dann mit dem nächsten Befehl die Anmeldung via Benutzernamen/Passwort aktiveren mit dem Befehl. ./nvidialsadmin.sh -config -set security.enabled=true -server $FLEXNETLS_BASEURL . _Um den Befehl erfolgreich auszuführen müsst euch im Pfad _/opt/flexnetls/nvidia/enterprise befinden.\nNach erfolgreicher Aktivierung ( Invalid Input trügt etwas ) könnt ihr euch im Portal unter Login mit den Daten admin/Admin@123 authentifizieren.\nFinal ändern wir nun noch das Passwort des Admin Benutzers. Wichtig ist hier zu wissen das die Angaben in der Dokumentation nur eingeschränkt stimmen. So musste ich beim ändern des Passwortes immer die Rolle mit angeben sowie auch schon vorher die FLEXNETLS_BASEURL Variable. Die fertige Zeile sieht wie folgt aus: ./nvidialsadmin.sh -authorize admin Admin@123 -users -edit admin Password1! ROLE_ADMIN -server $FLEXNETLS_BASEURL\nAchtet bei der Vergabe des Passwortes darauf das ihr keins verwendet welches evtl. als Steuerzeichen Interpretiert werden kann. z.B. \u0026amp; Zeichen. Es gibt zwar den Schalter -passwordConsoleInput dieses gilt allerdings nur für das bereits vergebene Passwort zur Authentifizierung.\nDas warst fürs erste damit habt ihr einen Lauffähigen Lizenzserver der von euren Clients verwendet werden kann. Im nächste Schritt wäre noch eine Absicherung via SSL spannend hier zeigt sicher allerdings der Java Part der Applikation von der schönsten Seite. Meine bisherigen Versuche immer gescheitert. Ich werde es aber demnächst mal mit einem SelfSigned Zertifikat direkt über die Java Tools versuchen. Ansonsten gilt wie immer: Solltet ihr Anregungen und Kritik haben könnt ihr gerne schreiben.\n","permalink":"https://www.3k9.de/installation-nvidia-grid-lizenz-server-auf-ubuntu-20-04-lts/","summary":"\u003cp\u003eIn den meisten POCs im Bereich Nvidia GRID habe ich den Lizenzserver auf irgendeinen bestehenden Windows Server mitinstalliert. Oft habe ich dabei Probleme mit der Java installation gehabt. Daraus ist die Idee geboren den Lizenzserver unter Ubuntu bereitzustellen. Für die Installation habe ich ein Ubuntu 20.04 LTS in einer virtuellen Maschine installiert und die letzten Updates via \u003cstrong\u003e\u003cem\u003eapt update \u0026amp; apt upgrade\u003c/em\u003e\u003c/strong\u003e eingespielt.\u003c/p\u003e\n\u003cp style=\"text-align: center;\"\u003e\n  \u003ca href=\"https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03.png\"\u003e\u003cimg loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-333 size-full\" src=\"https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03.png\" alt=\"\" width=\"1324\" height=\"834\" srcset=\"https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03.png 1324w, https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03-300x189.png 300w, https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03-1024x645.png 1024w, https://www.3k9.de/wp-content/uploads/2021/10/Bildschirmfoto-2021-10-17-um-22.02.03-768x484.png 768w\" sizes=\"auto, (max-width: 1324px) 100vw, 1324px\" /\u003e\u003c/a\u003e\n\u003c/p\u003e","title":"Installation Nvidia GRID Lizenz Server auf Ubuntu 20.04 LTS"},{"content":" Danke an Julian Jakob (@jakob_davidson) und sein Hinweis das die hier vorgestellte Lösung leider nur mit dem Browser funktioniert. Mit der Citrix Workspace App funktioniert diese Variante nicht. Ich werde in den nächsten Tagen mein ADC auf 13.1 aktualisieren und mich dann mit AAA auf dem ADC beschäftigen. Danach gibt es dann eine erweiterung dieses Posts. Vorab habe ich ein Workaround ans Ende des Posts gepackt damit die Anmeldung auch via Workspace/Receiver App funktioniert.\nIn einem meiner letzten Projekte hatte ich Berührung mit Microsoft 365 und im speziellen mit Azure Conditional Access. Dabei ist mir in den Sinn gekommen die Microsoft Authentifizierung für meine onPremise Citrix Virtual Apps und Desktops Farm zu verwenden. Vor wenigen Tagen habe ich erst von meiner selbst gebastelten Google Authenticator Lösung gewechselt auf eine komfortablere Lösung von PrivacyIDEA. Den Anstoss für diese Lösung gab mir Julian Mooren mit seinem Blogpost.\nAuch wenn diese Lösunge schnell implementiert war würde eine SAML Authentifzierung via Azure AD einige Vorteile mit sich bringen und deswegen war schnell klar das dies die nächste Aufgabe wird. Für die Implementierung der Lösung habe ich auf einige bestehenden Anleitungen im Internet zurückgegriffen. Leider war aber keine der Anleitungen 100% Kompatibel zu meinem Setup bzw. die eingesetzten Features waren nicht mit meinen zur Verfügung stehenden Lizenzen kompatibel. Für die Implementierung musste ich Cloud sowie OnPremise Elemente anpassen.\nAls Komponenten OnPremise habe ich ein Citrix ADC Standard VPX 200 Version 12.1 eingesetzt sowie eine Citrix 1912 CU3 CVAD Umgebung. Im Bereich Azure habe ich eine Azure AD Premium P1 Lizenz (Ob diese benötigt wird für eine Enterprise Applikation anzulegen glaube ich nicht, aber das Conditional Access und damit verbunden auch MFA ist nur mit einem Premium P1 Plan möglich)\nIch Beginne am besten mit den Einstellungen im Azure Active Directory. Ich gehe jetzt einfach mal davon aus ihr bereits einen bestehenden Azure AD Connect im Einsatz habt und ihre User entsprechend von OnPremise in die Cloud Sync’nd. Sollte dem nicht der Fall sein müsst ihr diesen Schritt noch vorher tun. Ansonsten klappt das Single SignOn(SSO) nicht.\nAls erstes legen wir uns im Azure Active Directory eine neue Enterprise Applikation an. Hierzu klicken wir auf den Punkt „New Application“.\nIm nächsten Menüpunkt suchen wir nicht nach einer Applikation sondern wählen oben aus „Create your own Application“\nHier vergeben wir einen Namen für unsere Enterprise App. Auf Basis des Names sucht Microsoft evtl. vorhandene Applikationen. Wir ignorieren in diesem Fall die Vorschläge. Prüfen ob der Punkt „Integrate any other application you don’t find in the gallery“ ausgewählt und klicken auf Create.\nNachdem nun die Applikation für euch erstellt wurde habt ihr die Möglichkeit als nächsten Schritt User hinzuzufügen oder das SSO zu konfigurieren. Natürlich konfigurieren wir als erstes das SSO. Hierzu klicken wir auf den Punk „Single sign-on“ und anschließend auf den Punkt SAML.\nNun müssen wir die Identifier sowie die Reply URL festlegen. Hierzu klicken wir im ersten Abschnitt auf „Edit“\nHier legen wir die Entity ID sowie die Reply URL fest. Diese entspricht eurer onPremise Netscaler URL. Bei der Reply URL fügt ihr noch „/cgi/samlauth“ hinzu. Die Einstellungen unter Punkt 2 können so bleiben. Hier muss nichts angepasst werden.\nIn Punkt 3 ladet ihr das Base64 Zertifikat runter damit ihr es später auf dem ADC importieren könnt. Es dient zur Verifizierung zwischen AzureAD und Citrix ADC.\nAls nächstes sichern wir uns die Daten unter Punkt 4 in eine Textdatei damit wir sie auf unseren ADC später eingeben können.\nJetzt wird es Zeit einen Benutzer oder eine Gruppe zu unserer App hinzuzufügen. Der Benutzer darf kein nativer Azure AD User sein sondern muss von einem onPremise Active Directory stammen.\nDamit wären wir in der Cloud soweit fertig. Weitere Anpassungen im Detail bzgl. Azure Conditional Access können im Nachgang dann noch angepasst werden. Citrix ADC. Nun kommen wir zur ersten OnPremise Komponente bei diesem Aufbau. Wir loggen uns auf dem Citrix ADC Management Interface ein.\nNun navigieren wir auf den Punk Traffic Management -\u0026gt; SSL -\u0026gt; Certificates -\u0026gt; Server Certificates und klicken dort auf Install\nHier wählt ihr nun das von euch aus Azure runtergeladene Zertifikat und ladet es hoch.\nDas Zertifikat wird anschließend unter „Unknown Certificates“ zu finden sein. Kann aber trotzdem verwendet werden.\nNun öffnet ihr den Menüpunkt Citrix Gateway – \u0026gt; Policies -\u0026gt; Authentication -\u0026gt; SAML. Dort legen wir unter Servers einen neuen Server an.\nNun benötigt ihr die im Azure AD Portal notierten URLs. Dabei entspricht die Login URL der Redirect URL und die Logout URL der Single Logout URL. Bei mir waren beide URLs identisch. Allerdings habe ich auch schon Setups gesehen in denen dies unterschiedlich waren. Bei IDP Certificate Name wählt ihr euer eben hochgeladenes Zertifikat. Bei Signing Certificate Name benötigt ihr euer Citrix Gateway Zertifikat und bei Issuer Name gebt ihr noch die URL an über die euer Citrix Gateway erreichbar ist. Natürlich könnt ihr mit einem entsprechenden Zertifikat und weiteren Anpassungen auch ein weiteres Citrix Gateway bereitstellen das nur für SAML Authentifizierung zuständig ist. Abschliessend klickt ihr auf Create und erstellt damit den Server.Nun erstellen wir noch eine einfache SAML Policy die wir für unsere Authentifizierung im Gateway verwenden können. Dazu klicken wir unter Policies auf Add, wählen unseren eben erstellen Server aus und geben als Expression „ns_true“ ein.\nDanach wechseln wir in die Konfiguration unseres Citrix Gateways unter Citrix Gateway – Virtual Server und wählen dort unser Citrix Gateway aus. Unter Authentification entfernen wir zuerst bestehende Primary und Secondary Authentifications und fügen anschließend eine neue Methode über das Plus zeichen hinzu.\nAnschließend binden wir die Policy an den vServer und mit einem close speichern wir die Konfiguration für die Laufzeit des Netscalers. Wollt ihr die Konfiguration persistent machen müsst ihr noch das Diskettensymbol rechts oben in der Ecke betätigen.\nNun machen wir weiter mit dem FAS Server ( OnPremise ). Vielleicht sollte ich erst etwas zur grundsätzlichen Funktion des FAS Server erzählen. Ein FAS Server stellt ein Authentifizierungsprovider für den Storefront dar. Hierzu arbeitet der FAS Server eng mit der Windows Certificate Authority zusammen in dem er für User Zertifikate erstellt die für virtuelle Smartcards verwendet werden können. Mit diesen Zertifikaten wird auf der VDA Seite dann das Single Sign On realisiert. Durch die Verwendung von FAS ist es dem Storefront möglich viele Authentifizierungsmethoden zu verwenden. Die bekannteste dabei ist SAML.Für mich war es die erste installation eines FAS Servers.Ich bin dabei nach der Anleitung von Carl Stahlhood ( Filling gaps in EUC vendor documentation ) vorgegangen. Diese ist ziemlich ausführlich und weist auch auf einige Stolpersteine hin. Wichtig hier zu erwähnen wäre auch das erstellen einer GPO nachdem installieren des FAS. Diese GPO teilt den VDAs, sowie auch dem Storefront mit welchen FAS Server verwendet werden soll. Legt ihr keine GPO an bzw. verlinkt eine erstellte GPO nicht wird euer SSO fehlschlagen. Ein weiteres Problem auf das ich gestoßen bin war beim erstellen der Regel. Hier gibt es ein Dialog wo man seine Storefronts den Zugriff erlauben muss diese eben erstellte Regel auch lesen und verarbeiten zu dürfen. Hier steht in der Standardkonfiguration „Authenticated Users“ drin aber auf Deny. Da ein Computerobjekt natürlich auch ein Authenticated User ist war der Verbot in dem Moment höherwertig und die Storefronts konnten die Regel nicht anwenden.\nAnsonsten verlief die Installation und die Einrichtung der Zertifikate ziemlich Problemlos. Problematisch kann es evtl. aber noch beim Deployment der Zertifikatsvorlagen werden oder auch beim Autorisieren des Dienstes. Beides benötigt entsprechende rechte auf dem Zertifikats Server die evntl. bei einem entsprechenden Active Directory mit Rechtekonzept nicht gegeben sind. \u0026lt;/div\u0026gt; Kommen wir zu unserem finalen Test. Hierzu öffnen wir unsere Citrix Gateway URL und wenn wir alles richtig gemacht haben sollte anstatt dem Citrix Gateway Login ein Microsoft Login erscheinen.\nHier meldet ihr euch nun mit eurer Email Adresse und Passwort entsprechend euren AD Daten an. Solltet ihr noch MFA aktiviert haben bzw. Conditional Access dann wird nach der Passworteingabe natürlich dies auch noch abgefragt.\nHabt ihr diese Hürde überstanden, sollte euch der Storefront begrüssen mit der Auswahl eurer zur Verfügung stehenden Apps und Desktops.\nBei einem sauberen Single Sign On Prozess solltet ihr nun beim starten eines Desktops oder einer Anwendung keine erneute Passwort abfrage erhalten. Damit wäre auch die Funktion des FAS entsprechend geprüft. Alternativ könnt ihr auch noch prüfen ob für den User auch ein SmartCard Zertifikat ausgestellt wurde auf der CA.\nLeider funktioniert in der Variante die Anmeldung via Workspace App nicht mehr. Da die App nicht mit dem SAML redirect klar kommt. Hierzu wird AAA auf dem ADC benötigt. Als Workaround hierfür passe ich die SAML Policy an das diese nur auf Browserebene funktioniert und füge eine klassische LDAP Authentifizierung für die Workspace App hinzu.Zunächst editieren wir unter Citrix Gateway – \u0026gt; Policies -\u0026gt; Authentication -\u0026gt; SAML unsere Policy in dem wir Sie anklicken und öffnen. Wir entfernen das ns_true und ersetzen es durch REQ.HTTP.HEADER User-Agent NOTCONTAINS CitrixReceiver und speichern diese Konfiguration mit OKNun wechseln wir auf den Vserver des CItrix Gateway und fügen über das + Symbol die LDAP Policy die wir vorher noch entfernt haben wieder hinzu. Solltet ihr in der LDAP Policy nicht unterscheiden beim User-Agent müsst ihr diese auch noch anpassen. Hier ein Beispiel wie meine LDAP Policy aussieht. Wichtig ist auch das die Priority nidriger ist wie die der SAML Policy.\nNachdem ihr dies Angepasst habt. Sollt es dann zwei Primäre Authentifizierungsmethoden geben.\nDurch die weiche in den Policys ist es nun möglich das via Browserder SAML-aufruf Richtung AzureAD läuft während die Workspace App die klassische LDAP Authentifizierung verwendet.\nDas wars fürs erste. Ich hoffe du konntest meiner Anleitung etwas folgen. Wenn du Probleme hast oder etwas nicht verstehst. Zögere nicht und kontaktiere mich. Ansonsten wünsche ich euch noch viel Spass beim nachbauen. ","permalink":"https://www.3k9.de/azure-ad-saml-authentifizierung-an-citrix-virtual-apps-desktops-onpremise/","summary":"\u003cblockquote\u003e\n\u003cp\u003eDanke an Julian Jakob (\u003ca href=\"https://twitter.com/jakob_davidson\" target=\"_blank\" rel=\"noreferrer noopener\"\u003e@jakob_davidson\u003c/a\u003e) und sein Hinweis das die hier vorgestellte Lösung leider nur mit dem Browser funktioniert. Mit der Citrix Workspace App funktioniert diese Variante nicht. Ich werde in den nächsten Tagen mein ADC auf 13.1 aktualisieren und mich dann mit AAA auf dem ADC beschäftigen. Danach gibt es dann eine erweiterung dieses Posts. Vorab habe ich ein Workaround ans Ende des Posts gepackt damit die Anmeldung auch via Workspace/Receiver App funktioniert.\u003c/p\u003e","title":"Azure AD SAML Authentifizierung an Citrix Virtual Apps \u0026 Desktops onPremise"},{"content":"Mir ist es jetzt schon mehr wie einmal passiert das ich beim erstellen eines neuen Master Images meine VM nur mit 2 vCPUs ausgestattet habe. Warum auch mehr? Es ist eine Master/Updater Maschine. Damit arbeite doch nur ich? Also wird die Maschine meist mit 2vCPUs und meist mit maximal 8 GB RAM gestartet. Soweit ist das ja eigentlich kein Problem. Wenn man aber nun für MCS ein Snapshot von der VM macht und diesen Snapshot als Basis nimmt für seinen Maschinenkatalog hat man nun das Problem das alle Maschinen die man ausrollt nur mit 2 vCPUs ausgerollt werden. Denn während man RAM noch im Wizard anpassen kann wird die vCPU Anzahl beim erstmaligen klonen einer VM(Snapshot) fest im Maschinenkatalog hinterlegt.\nNun gibt es natürlich auch wieder 2 Wege dieses Problem zu lösen. Entweder ich Lösche den Maschinenkatalog, passe meine VM an und erstelle einen neuen oder nehme den eleganteren Weg und ändere das sog. ProvisioningScheme via Powershell ab. Da ich das Problem allerdings diesmal bei einem Citrix Cloud Kunden hatte musste ich vorher noch das PowerShell SDK installieren und wie ich das gemacht habe zeige ich euch hier in diesem Beitrag.\nAls erstes müsst ihr unter folgenden Link das Virtual Apps and Desktops Remote PowerShell SDK herunterladen. Wenn ihr das getan habt könnt ihr das auf jedem aktuellen Windows 10 PC installieren. Dazu bestätigt ihr die Lizenzvereinbarung und klickt auf Next. Nach erfolgreicher Installation öffnet sich ein Word Dokument mit einer kleinen Installationsanleitung und HowTo.\nNachdem wir das Dokument geschlossen haben öffnen wir eine PowerShell Sitzung. Unser erster Befehl lädt erst mal die Citrix PowerShell Module asnp citrix*\nAls nächsten Schritt müssen wir nun ein Citrix Cloud Login anstossen. Hierzu könnt ihr jetzt den Befehl Get-XdAuthentication verwenden aber auch jeder andere Befehlt z.b. ( Get-Brokersite ) löst nun die Anmeldung aus. Nun wählt ihr noch euren Kunden aus für den ihr das ganze anpassen wollte\nNun benötigen wir die Befehle Get-ProvScheme und Set-ProvScheme. Mit dem Get-Befehl lasen wir uns erst mal die MCS Templateinformationen zu unseren Maschinenkataloge anzeigen. Diese ist in sofern wichtig das wir auch für den Set-Befehl später den ProvisioningSchemeName benötigen. Nachdem wir nun den ProvisioningSchemeName für unseren Maschinenkatalog haben können wir entsprechend den Befehl zusammenbauen. Set-ProvScheme -ProvisioningSchemeName „Test -Gruppe – ABC “ -VMCpuCount 4\nNach absetzen des Befehls kann man nun im Citrix Cloud Studio kontrollieren ob die richtige VCPU Anzahl auch angezeigt wird. Das wars auch schon. Und schon werden die nächsten Maschinen die ihr in diesem Maschinenkatalog ausrollt mit 4 vCPUs anstatt 2 ausgerollt.\n","permalink":"https://www.3k9.de/citrix-vcpu-in-vorlage-aenderncitrix-cloud-variante/","summary":"\u003cp\u003eMir ist es jetzt schon mehr wie einmal passiert das ich beim erstellen eines neuen Master Images meine VM nur mit 2 vCPUs ausgestattet habe. Warum auch mehr? Es ist eine Master/Updater Maschine. Damit arbeite doch nur ich? Also wird die Maschine meist mit 2vCPUs und meist mit maximal 8 GB RAM gestartet. Soweit ist das ja eigentlich kein Problem. Wenn man aber nun für MCS ein Snapshot von der VM macht und diesen Snapshot als Basis nimmt für seinen Maschinenkatalog hat man nun das Problem das alle Maschinen die man ausrollt nur mit 2 vCPUs ausgerollt werden. Denn während man RAM noch im Wizard anpassen kann wird die vCPU Anzahl beim erstmaligen klonen einer VM(Snapshot) fest im Maschinenkatalog hinterlegt.\u003c/p\u003e","title":"Citrix Virtual Apps \u0026 Desktops –  vCPU in Vorlage ändern(Citrix Cloud Variante)"},{"content":"Dank Corona sind Zugriffe von extern auf Infrastrukturen gefragter denn je. Der klassische VPN Weg wird hier genauso gerne genutzt wie ein Lösung über den Citrix ADC. Der Vorteil der Lösung mit Citrix ADC liegt hier ganz klar auf der Hand .Clientless VPN bzw. Bereitstellung von Desktops via ICA Proxy. Oft werde ich allerdings auch gefragt wie man so eine Lösung neben dem klassischen Benutzernamen/Passwort Konstrukt noch absichern kann. In meinem letzten Beitrag habe ich die Clientzertifikats-Variante vorgestellt. Heute möchte ich euch zeigen wie Ihr eine zwei Faktor Authentifizierung realisieren könnt mit Google Authenticator.\nIch habe diese Anleitung geschrieben weil es zwar sehr viele Dokumentationen gibt zu diesem Thema aber selten in Verbindung mit einem Citrix ADC. Wir setzen in dieser Anleitung auf ein Ubuntu 20.04 LTS mit Freeradius. Zudem ist das Ubuntu in die Windows AD aufgenommen damit wir uns auch lokal mit unseren AD Daten an der Ubuntu Maschine anmelden können. Die Google Authenticator Komponente erzeugt dann einen QR Code den man dann mit der Google Authenticator APP auf dem Handy scannen kann. Anschließend hat man dann alle 30 Sekunden neue Tokens die man für den zweiten Faktor bei der Citrix ADC Anmeldung verwedenn kann. Es gibt zu dieser von mir hier vorgestellten Variante auch noch eine Variante die direkt im Citrix ADC implementiert ist(Native-OTP). Allerdings setzt diese Variante Advanced oder Premium Edition voraus.\nInstallation Part 1 – Bereitstellung Freeradius etc. Ich setze eine Standard/Minimale Ubuntu Installation einfach mal als gesetzt und beginne mit der eigentlichen Installation der Pakete. Nach erfolgreicher Installation unseres Ubuntu 20.04 LTS führen wir zur Sicherheit nochmal ein apt update sowie ein apt upgrade aus um evtl. noch etwaige Paketaktualisierungen zu erhalten. Ein OpenSSH Server solltet Ihr im Idealfall auch eingerichtet haben damit lässt es sich im späteren Verlauf noch etwas besser testen. Des weiteren solltet ihr mit Chrony einen NTP Client verwenden damit eure Systemzeit auch mit dem Domain Controller übereinstimmt.\nNun starten wir endlich mit der Installation von Freeradius. Hier führen wir folgen Befehl aus.\nroot@ux04:~$ apt install freeradius freeradius-utils Nach der Installation von Freeradius müssen wir einige Konfigurationen anpassen. Beginnen wir mit der radiusd.conf Datei.\nroot@ux04:~$ nano /etc/freeradius/3.0/radiusd.conf Hier müssen wir user und group anpassen. Der freerad User hat leider nicht das Recht die Google Authenticator Files in den einzelnen Benutzerverzeichnissen zu lesen.\nAlso nächstes editieren wir die Datei „default“ in der Sites Konfiguration.\nroot@ux04:~$ nano /etc/freeradius/3.0/sites-enabled/default In der Datei müssen wir das pam Modul aktivieren. Hierzu entfernen wir das Kommentarzeichen # .\nNun öffnen wir Datei users\nroot@ux04:~$ nano /etc/freeradius/3.0/users Hier müssen wir die DEFAULT Auth-Type auf PAM setzen.\nAbschließend legen wir in der clients.conf noch den Netscaler als Authentifizerungsclient an.\nroot@ux04:~$ nano /etc/freeradius/3.0/clients.conf Hier muss die NSIP des Netscalers eingetragen werden sowie ein sicheres Password.\nDamit ist die Konfiguration von Freeradius abgeschlossen. Als nächstes kümmern wir uns um den Domainjoin von unserer Ubuntumaschine. Hiezu installieren wir SSSD\nroot@ux04:~$ apt install sssd realmd adcli Nach der Installation von SSSD könnt ihr auch direkt den Domain Join versuchen.\nroot@ux04:~$ realm join itnetx.lab Das ganze ist allerdings bei mir leider mit einer seltsamen Fehlermeldung fehlgeschlagen. Ich war mir ziemlich sicher das die Pakete installiert sind und habe kurzerhand Google befragt. Es ging wohl leider nicht nur mir so. Der Workaround besteht darin dem Join Befehl noch ein install Flag mitzugeben.\nroot@ux04:~$ realm join itnetx.lab --install=/ Jetzt muss das Administrator Passwort von der Domäne eingegeben werden. Wenn man alternativ einen anderen Benutzer wählen möchte muss man den den Schalter –user beim Join mitgeben.\nSollte der Join erfolgreich gewesen sein findet ihr jetzt in eurem Active Directory das Computerobjekt. Zurück auf der Linuxkonsole müssen wir noch eine Anpassung an SSSD vornehmen.\nroot@ux04:~$ nano /etc/sssd/sssd.conf Der Punkt access_provider muss auf simple geändert werden.\nAls nächstes passen wird die Datei pam.d an.\nroot@ux04:~$ nano /etc/pam.d/common-session Hier legen wir fest das beim Login eines AD Users ein Home Laufwerk angelegt wird. Dies benötigen wir da in dem Homelaufwerk entsprechend der Google Authenticator sein Keyfile ablegt.\nAuch die Datei radiusd im Verzeichnis pam.d muss angepasst werden.\nroot@ux04:~$ nano /etc/pamd.d/radiusd Das Google Authenticator Modul muss hinzugefügt werden damit es als Authentifizerungsquelle in Freeradius verwendet werden kann.\nAbschließend installieren wir nun noch das Google Authenticator Modul für PAM.\nroot@ux04:~$ apt install libpam-google-authenticator Nach der Installation des Moduls kann man sich mit einem Domain User einloggen und die Generierung von Tokens starten. Alternativ kann man auch mit su in den User wächseln.\nsebastian.busch@itnetx.lab@ux04:~$ google-authenticator Das Setup ist relativ einfach gehalten. Alle Fragen können mit Ja beantwortet werden. Die Einrichtung auf Seiten Ubuntu ist nun beendet. Jetzt wechseln wir auf den Citrix ADC.\nInstallation Part 2 – Einrichtung Citrix ADC(Netscaler) Wir melden uns am Management unseres Citrix ADC an und wechseln in der Navigation auf Citrix Gateway. Klicken dann auf Authentication und dort auf Radius.\nHier können wir neben den Policies auch entsprechende Server anlegen. Was wir nun auch tun. Wir vergeben einen sinnvollen Namen (evtl. Hostnamen). Dann tragen wir die IP Adresse sowie den Port ein auf dem der Freeradius Dienst lauscht. Abschließend tragen wir das Passwort ein das wir bei der Client Konfiguration zuvor auf Ubuntu Seite eingetragen haben. Solltet ihr nicht sicher sein ob der Port 1812 (Default ) der richtige ist könnt ihr natürlich auf Ubuntu Seite prüfen ob der Freeradius Dienst überhaupt läuft. Da es ein UDP Protokoll ist benötigen wir hierzu folgenden Kommandzeilenparameter.\nroot@ux04:~$ netstat -uap Wenn ihr alle Eingaben vorgenommen habt könnt ihr mit Test Radius Reachability prüfen ob der Radiusdienst antwortet. Bei Erfolgreicher Antwort erhaltet ihr eine grüne Leiste. Sollten entsprechende Radiusbedingungen nicht bereits existieren, müssen diese nun noch angelegt werden. Wir fragen hier in diese Fall den HTTP Header ab. Einmal ist die Bedingung erfüllt wenn der User-Agent im Header CitrixReceiver enthält.\nIn der zweiten Bedingung darf kein CitrixReceiver enthalten sein. Damit sind alle anderen Browser gemeint. Ich gehe in meinem Beispiel davon aus das Ihr bereits einen LDAP Server zur Authentifizierung am Citrix ADC konfiguriert habt. Ich beziehe mich hier also nur auf die 2 Faktor Authentifizierung. Auch bei der LDAP Konfiguration gibt es entsprechende Policies(Bedingungen) die sich auf den UserAgent beziehen. Diese werden Analog zu den Policies auf Radiusseite angelegt. Unter Server könnte ihr euren bestehenden LDAP Server bearbeiten. Wichtig ist hier der Punkt „Logon Name Attribute“. Dort müsst ihr New Auswählen und „userPrincipalName“ eingeben. Jetzt wird es Zeit das wir unsere n Radus Server als zweiten Faktor an unseren Virtual Server binden. Hierzu klicken wir auf Virtual Servers und wählen unser entsprechendes Citrix Gateway aus.\nIn der Konfiguration des Virtual Servers angelangt müssen wir nun unter Basic Authentication die Konfiguration so anpassen das wir jeweils eine LDAP und eine Radius Konfiguration haben. Wichtig ist hierbei zu beachten die Reihenfolge. Es ist wichtig welche Policy/Bedingung in welcher Reihenfolgen kommen soll. Warum ist dies so wichtig? Der Citrix Receiver verarbeitet Benutzername, Passwort und Token nicht in der gleichen Reihenfolge wie bei einem Login über die Webseite.\nAls erstes legen wir unter Primary die LDAP Policy- \u0026gt; Not Contains Citrix Receiver an. Im nächste Schritt unter Primary legen wir die Radius Policy an mit -\u0026gt; Contains Citrix Receiver.\nSo jetzt fügen wir unter Secondary ebenso eine LDAP Policy ein -\u0026gt; Contains Citrix Receiver.\nDanach kommt noch die Radius Policy in Secondary -\u0026gt; Not Contains Citrix Receiver.\nJetzt wo wir uns um die Authentifizierung gekümmert haben müssen wir noch die Session Policy/Profile anpassen. Hier Editieren wir die in der die Bedingung auf Contains Citrix Receiver steht.\nDen Punkt Credential Index stellen wir um auf Secondary. Anschließend speichern wir die Einstellung durch drücken auf OK. Die Konfiguration ist jetzt abgeschlossen. Nun sind wir bereit für unseren ersten Login\nSollte alles geklappt haben können wir nun unsere Session starten.\nDas war die Anleitung zur Bereitstellung einer Zweifaktor Authentifizierung. Natürlich ist diese Lösung ausbaufähig. Vor allem wäre es schön wenn ein Benutzer dieser Lösung sich nicht auf der Linux Konsole anmelden müsste. Evtl. würde hier ein Webformular die beste Lösung bereitstellen. Für Fragen, Anregungen und Kritik könnt ihr euch gerne bei mir melden.\n","permalink":"https://www.3k9.de/2faktor-mit-citrix-adc-und-google-authenticator/","summary":"\u003cp\u003eDank Corona sind Zugriffe von extern auf Infrastrukturen gefragter denn je. Der klassische VPN Weg wird hier genauso gerne genutzt wie ein Lösung über den Citrix ADC. Der Vorteil der Lösung mit Citrix ADC liegt hier ganz klar auf der Hand .Clientless VPN bzw. Bereitstellung von Desktops via ICA Proxy. Oft werde ich allerdings auch gefragt wie man so eine Lösung neben dem klassischen Benutzernamen/Passwort Konstrukt noch absichern kann. In meinem letzten Beitrag habe ich die Clientzertifikats-Variante vorgestellt. Heute möchte ich euch zeigen wie Ihr eine zwei Faktor Authentifizierung realisieren könnt mit Google Authenticator.\u003c/p\u003e","title":"2Faktor mit Citrix ADC und Google Authenticator"},{"content":"Das Thema Client Zertifikate ist im Zeitalter von 2 Faktor Authentifizierung meiner Meinung etwas Überholt. Aber trotzdem gibt es immer noch viele Firmen die ein Client Zertifikat voraussetzen um damit den Zugriff auf eine bestimmte Ressource an weitere Bedingungen zu knüpfen. Man verhindert dadurch das pure Bruteforcen eines Benutzernamen und Passworts. \u0026lt;- Hier kommt meiner Meinung nach der 2 Faktor ins Spiel der dieses Problem entsprechend löst. Solltet ihr allerdings in die Situation kommen mal schnell und AdHoc ein Client Zertifikat zu benötigen für die Absicherung eures Netscaler Gateway’s stelle ich euch hier einen möglichen Lösungsweg bereit.\nWir gehen in unserem Beispiel davon aus, dass unsere Laptops kein Mitglied einer Domäne sind und es keine interne CA gibt die evtl. Zertifikate verteilt. Solltet dies bei euch der Fall sein könnt ihr euch das erstellen eines Root CA Zertifikats ersparen und evtl. je nach Konfigurationsstand auch das verteilen von Clientzertifikaten. Aber legen wir mal los mit dem erstellen eines Root CA Zertifikats auf dem Citrix ADC.\nInhaltsverzeichnis Erstellung Root CA Zertifikat Erstellung Client Zertifikat Exportieren des Client Zertifikates im PKCS12 Format Exportieren des Client Zertifikates im PKCS12 Format mit TLS 1.2 Support Anpassung des Citrix Gateway Installation Client Zertifikat auf Client Installation Zertifikat via Mozilla Firefox Test und Umgebung Erstellung Root CA Zertifikat Wir öffnen hierzu die Weboberfläche des Citrix ADC (nachfolgend Netscaler genannt) und melden uns an. Unter Traffic Management -\u003e SSL finden wir im Menü Getting Started den Root-CA Certificate Wizard Hier generieren wir uns zunächst einen Privat Key. Standardwerte bei der Key Size sind 2048 oder 4096 bits. Das Key Format kann auf DER Encodiert gestellt werden es sei denn man möchte den Private Key zusätzlich verschlüsseln. Der Dateiname sollte am besten mit .key enden.\nDer Certificate Signing Request (CSR) wird benötigt um zusammen mit dem Private Key ein Zertifikat zu bekommen. Solltet ihr im vorherigen Schritt ein PEM Key Formart gewählt haben müsst ihr hier nochmal die Passphrase eingeben. Ein Subject Alternative Name ist mittlerweile Standard und Zertifikate ohne SAN werden von Google als Untrusted eingestuft. Im zweiten Schritt des CSR werden einige Informationen zum Zertifikat selbst benötigt. Die mit * versehenen Infromationen sind Pflichtangaben. Bei klassichen Domainzertifikaten werden bei SAN und Common Name die Domainnamen benötigt. Da wir aber bei einem Clientzertifikat die pure Anwesenheit eben dieses Zertifikats prüfen ist der Name zweitrangig. Nun kommen wir zum erstellen des Zertifikats. Hier können wir anpassen wie lange unser Zertifikat gültig ist. Ebenso können wir auch hier wählen ob wir ein DER ( Unverschlüsseltes Zertifikat ) oder ein PEM (Verschlüsselt ) Zertifikat haben wollen. Zum Abschluss wird das Root Zertifikat auf dem Netscaler installiert damit man es auch an ein Netscaler Gateway binden kann. Die grüne Leiste zeigt an das die Installation des Zertifikats erfolgreich war. Mit Done kann man den Wizard nun beenden. Erstellung Client Zertifikat Zurück im SSL Hauptmenü unter Traffic Management wählen wir nun den Punkt Client Certificate Wizard aus. Auch hier müssen wir im ersten Schritt den Privat Key erzeugen. Die Keysize habe ich Analog zum Root-CA Key auf 2048 eingestellt. Diesmal habe ich allerdings PEM als Key Format gewählt. Dies hat zur Folge das ich ein Encoding Algorithm wählen sowie ein Passphrase eingeben muss.\nEbenso muss im nächsten Schritt das Certificate Signing Request durchgeführt werden. Da wir im vorherigen Schritt das PEM Format gewählt haben müssen wir auch hier bei Key Format PEM auswählen und das Passpharse eingeben. Als Subject Alternative Name und Common Name habe ich ns-itnetx-client-a gewählt.\nDie Felder mit * müssen hier wieder befüllt werden. Um den Zertifkat einen hohen Wahrheitsgehalt zu geben sollte man hier möglichst zutreffende Antworten geben. Nachdem wir nun das CSR für unser Client Zertifikat erstellt haben kommen wir nun dazu das eigentliche Zertifikat zu erstellen. In dem Abschnitt ist es wichtig die richtigen Key und Zertifikats Formate auszuwählen. Ebenso die Laufzeit des Zertifikats. Abschliessend kann auch hier das Zertifikat als Client Zertifikat auf dem Netscaler installiert werden. Dieser Abschnitt ist keine Pflicht, da wir das Zertifikat auf dem PC benötigen der sich mit dem Netscaler verbindet und nicht auf dem Netscaler selbst. Solltet ihr den Schritt trotzdem durchführen und es kommt zu einer Fehlermeldung das ein Password benötigt wird für den private key. Siehe nächsten Screenshot\nDies ist wohl ein bekannter Bug in einigen Netscaler Versionen. Um das Problem zu beheben bleibt ihr im Wizard an der Stelle stehen und verbindet euch via Putty mit dem Netscaler. Dort wechselt ihr in den Ordner /nsconfig/ssl und gibt folgende Befehle ein.\nopenssl rsa -in ns-itnetx-client-a.key -out ns-itnetx-client-b.key Dann müsst ihr die Passphrase eures Keys erneut eingeben. Anschliessend entfernt ihr euren alten Key und bennent den neuen Key in den alten um.\nrm ns-itnetx-client-a.key mv ns-itnetx-client-b.key ns-itnetx-client-a.key Nun sollte auch das Installieren des Client Zertifikates funktionieren. Der Grüne Balken gibt hierüber entsprechend Auskunft. Mit Done wird der Wizard beendet. Exportieren des Client Zertifikates im PKCS12 Format Zurück im Hauptmenü SSL unter Traffic Mangement klicken wir nun auf Export PKCS#12\nDer Dialog ist relativ Simpel aufgebaut. Als erstes wählen wir den Namen der Ausgabedatei. Hier im Beispiel ns-itnetx-client-a.p12 . Dann müssen noch das crt und der Private Key auf der Netscaler Appliance gewählt werden. Abschliessend brauchen wir ein Export Passwort damit der Key nicht von jedem installiert werden kann sondern nur von der Person die auch den Key hat. Zusätzlich benötigen wir noch das PEM Passphrase für den Private Key. Unter dem Untermenüpunkt SSL Files -\u0026gt; Certificates sollte sich dann unser Exportfähiges p12 Zertifikat befinden. Wir wählen es aus und klicken auf Download. Exportieren des Client Zertifikates im PKCS12 Format mit TLS 1.2 Support In der Variante wie oben beschrieben für den Export der PKCS12 Datei ist es nötig das im Netscaler Gateway TLS1.2 deaktiviert werden muss. Da dies kein akzeptabler Zustand ist gibt es die möglichkeit via CLI das Zertifikat Kompatibel für TLS1.2 zu exportieren. Hierzu verbinden wir uns erneut via Putty auf den Netscaler. Wir wechseln wieder in das Verzeichnis /nsconfig/ssl und kopieren und die Datei ns-itnetx-lcient-a.key sowie die Datei ns-itnetx-client-a.crt nach /tmp\ncp ns-itnetx-client-a.key /tmp cp ns-itnetx-client-a.crt /tmp Jetzt wechseln wir in das Verzeichnis /tmp und erstellen manuell eine PKCS12 Datei. Wichtig ist die Angabe des CSP. Damit wird es ermöglicht das Zertifikat auch TLS1.2 kompatibel zu machen.\nopenssl pkcs12 -export -in ns-itnetx-client-a.crt -inkey ns-itnetx-client-a.key -passing pass:Passw0rt -out ns-itnetx-client-a.p12 -CSP \"Microsoft Enhanced RSA and AES Cryptographic Provider\" Wir müssen nachdem letzten Befehl auch noch eine Passphrase ( Export Passwort ) für unser Zertifikat vergeben. Via WinSCP können wir uns auf den Netscaler verbinden und dort unter /tmp die erzeugte Datei auf den lokalen Rechner kopieren. Anpassung des Citrix Gateway Im nächsten Schritt ist es nötig das Citrix Gateway anzupassen damit es auch die Funktion der Client Zertifikatsauthentifizierung verwendet. Nachdem wir unser Gateway das wir editieren wollen angeklickt haben fügen wir im ersten Schritt das CA Zertifikat hinzu\nIm Dialog CA Certificate Bindung wählen das entsprechen von uns generierte Root CA Zertifikat aus.\nUnter den SSL Parameter ist zum Abschluss noch wichtig das er Punkt Client Authentication aktiv ist und bei Client Certificate „MANDATORY“ ausgewählt ist. Solltet ihr das Client Zertifikat im PKCS12 Format im Web Frontend des Netscaler ausgeführt haben wird es vermutlich nötig sein an der Stelle auch TLSv12 zu deaktivieren. Solltet ihr das Zertifikat via CLI erstellt haben könnt ihr die Einstellung so lassen.\nInstallation Client Zertifikat auf Client Nachdem ihr die p12 Datei via Email etc. verteilt habt kommt nun noch die Anleitung wie man sie entsprechend installiert. Zu erste installieren wir das Zertifikat in den Windows Zertifikatsstore. Dazu führen wir ein Doppelklick auf die p12 Datei durch. Der Zertifikatsimport-Assistent leitet uns durch die nächste Schritte. Heir muss das Passwort eingegeben werden das wir beim erstellen der P12 Datei verwendet haben. Siehe Installation CLI. Anschliessend klicken wir auf Weiter. Hier kann man den Zertifikatspeicher auswählen oder auswählen lassen in dem das Zertifikat gespeichert wird. Wenn ihr es auf automatisch lässt wird das Zertifikat gleich direkt gespeichert. (Persönliche Zertifikate ) Abschliessend klicken wir auf Fertigstellen. Installation Zertifikat via Mozilla Firefox Mozilla Firefox hat einen eigenen Zertifikatsspeicher und greift nicht auf den Windows eigenen Speicher zurück. Was bedeutet das wir unser Zertifikat noch in Mozilla installieren müssen. Hierzu öffnen wir Mozilla Firefox. Im Menü rechts wechseln wir auf den Punkt Einstellungen.\nDie Suche im Einstellungen Menü ist sehr hilfreich. Einfach mal Zertifikat eingeben. Dann bekommen wir das Zertifikat Menü angezeigt. Unter Zertifikate anzeigen.. öffnet sich ein neues Fenster mit der Zertifikatsverwaltung.\nUnter dem Punkt Importieren lässt sich nun das p12 Zertifikat importieren. Auch hier muss man das Passwort eingeben das zum Erstellen der p12 Datei verwendet wurde. Zur Kontrolle prüfen wir ob das Zertifikat nun unter Ihre Zertifikate aufgeführt wird. Test und Umgebung Wir öffnen die Webseite vom Citrix Gateway ( Netscaler ). Firefox sollte uns mit einem Dialog danach Fragen welches Zertifikat er verwenden soll. Hat man nur ein persönliches Zertifikat wird natürlich immer das richtige angezeigt und man kann einfach auf OK klicken. Sollte die Authentifizierung des Client Zertifikat erfolgreich gewesen sein kommen wir zur eigentlichen Anmeldemaske\nNach der Eingabe von Benutzername und Passwort kommen wir in den Storefront in dem wir unsere Session auswählen. Beim start der Anwendung frag er uns nun erneut nachdem Client Zertifikat. Deswegen ist es wichtig das wir das Client Zertifikat auch in den Windows eigenen Store installiert haben .\nWenn wir alles richtig gemacht haben sollten wir unseren Citrix Desktop oder unsere Applikation sehen die ab jetzt zusätzlich mit einem Client Zertifikat geschützt ist. Soo das wars. Solltet ihr noch Fragen haben oder Anregungen könnt ihr mir gerne Schreiben.\n","permalink":"https://www.3k9.de/client-zertifikate-auf-citrix-adc-erstellen-und-konfigurieren/","summary":"\u003cp\u003eDas Thema Client Zertifikate ist im Zeitalter von 2 Faktor Authentifizierung meiner Meinung etwas Überholt. Aber trotzdem gibt es immer noch viele Firmen die ein Client Zertifikat voraussetzen um damit den Zugriff auf eine bestimmte Ressource an weitere Bedingungen zu knüpfen. Man verhindert dadurch das pure Bruteforcen eines Benutzernamen und Passworts. \u0026lt;- Hier kommt meiner Meinung nach der 2 Faktor ins Spiel der dieses Problem entsprechend löst. Solltet ihr allerdings in die Situation kommen mal schnell und AdHoc ein Client Zertifikat zu benötigen für die Absicherung eures Netscaler Gateway’s stelle ich euch hier einen möglichen Lösungsweg bereit.\u003c/p\u003e","title":"Client Zertifikate auf Citrix ADC erstellen und konfigurieren"},{"content":"In diesem Blogbeitrag möchte ich euch über die Möglichkeit berichten die 3 Citrix SQL Datenbanken ( Site, Monitoring, Logging ) auf einen andren SQL Server zu Migrieren. Ich schreiben diesen Blog Beitrag, da ich komischerweise im Internet keine für mich passenden Anleitung gefunden habe. Ich war dadurch gezwungen mir die Infos von mehreren Seiten zusammenzutragen. Eigentlich ist das Migrieren der Datenbanken kein Hexenwerk aber trotzdem sollte man für einen optimalen Ablauf ein paar Dinge beachten.\n) Datenbank sichern\nIm ersten Schritt sollte wir die Datenbanken auf dem jetzigen SQL Server sichern. Sollten wir nicht wissen auf welchen Server sich die Datenbanken aktuell befinden können wir mit PowerShell befehen dies entsprechend feststellen. asnp citrix* \u0026lt;- Die Citrix PowerShell Module Get-BrokerDBConnection \u0026lt;- Zeigt die Site Database Verbindung an Get-LogDBConnection \u0026lt;- Zeigt die Configuration Logging Database Verbindung an Get-MonitorDBConnection \u0026lt;- Zeigt die Monitor Database Verbindung an In unseren Beispiel lautet der Server DEHWT-DC04 und Datenbank haben als Präfix CitrixDEDHN Um nun auch mit der Sicherung zu beginen sollten wir zuvor dafür sorgen das der Delivery Controller(Global für die Site) keine weitere Daten in die Monitoring und Logging Datenbank schreibt.\nSet-MonitorConfiguration -DataCollectionEnabled $false \u0026lt;- Deaktiviert das Monitoring Set-LogSite -State Disabled \u0026lt;- Deaktiviert das Logging Die beiden Befehle geben keine Rückmeldung bei erfolgter Ausführung. Entweder verbinden wir uns jetzt Remote oder direkt auf dem SQL Server via SQL Management Studio zur entsprechenden Instanz des SQL Servers.\nNachdem Login auf der SQL Server Instantz Durch ein Rechtsklick auf die jeweilige Datenbank öffnet sich ein Kontextmenü. Unter Tasks befindet sich der Punkt Back Up Im nächsten Dialog müssen wir das Backupziel auswählen. In diesem Fall habe ich den Ordner Temp gewählt. Zusätzlich kann man ein Namen für die Backupdatei wählen. Bitte darauf achten wenn ihr keinen Dateisuffix angibt wird die Datei ohne Endung gespeichert. 🙂 Wir wiederholen dann diesen Schritt für alle 3 Datenbanken. Es gibt hier auch je nach SQL Version die Möglichkeit ein Backup auf ein Bandlaufwerk vorzunehmen. Nun wechseln wir auf den neuen SQL Server wo wir die 3 Datenbanken einspielen wollen. In unserem Beispiel heist der neue Server ADM01. Nachdem wir auch hier via Mangement Studio verbunden sind klicken wir mit der Rechten Maustaste auf den Punkt Database und wählen dort im Kontextmenü den Punkt Restore Database\nHier könnt ihr dann unter Device eure Datenbank lokal oder auf einem Netlaufwerk suchen. Achtung ihr könnt zwar eine Mehrfachselektion( Mehrere Dateien gleichzeitig ) durchführen aber im Grunde trotzdem nur die letzt gewählte Datenbank unter dem Punkt Database importieren. Vielleicht gibt es hier noch einen Alternativen schritt zu betrachten und man kann hier auch alle 3 Datenbanken auf einmal importieren dann gerne per Mail oder in den Kommentaren posten. Ansonsten wiederholen wir den Schritt für jede exportierte Datenbank.\nAls nächstes Erstellen wir den Account ( Computerkonto )für den Delivery Controller. Da es nicht möglich ist ein Computerkonto über die Standardfunktion hinzuzufügen, verwenden wir hier eine kurze SQL Abfrage. Diesen Vorgang wiederholen wir natürlich für jeden Delivery Controller den wir in unserer Site haben.\ncreate login [itnetx\\dehwt-xc01$] from windows Nachdem wir das Computerkonto hinzugefügt haben, überprüfen wir die Berechtigungen des Computerkontos auf den Datenbanken. Da sich die SID des Computerkontos nicht geändert hat sollten alle Berechtigungen noch richtig gesetzt sein. Rechte Maustaste auf den entsprechenden Computeraccount -\u0026gt; Properties Unter User Mappings können wir dann einzeln für jede Datenbank die „role membership“ prüfen. Für Configuration Logging ist es:\nLogging database – ConfigLoggingSchema_ROLE\nLogging database – public Für die Monitoring Database sind es die folgenden Rollen:\nMonitoring database – Monitor_ROLE Monitoring database – public Abschließend für die Site Database sind es folgenden Rollen:\nSite database – ADIdentitySchema_ROL Site database – Analytics_ROLE (7.8 and newer) Site database – AppLibrarySchema_ROLE (7.8 and newer) Site database – chr_Broker Site database – chr_Controller Site database – ConfigLoggingSchema_ROLE Site database – ConfigLoggingSiteSchema_ROLE Site database – ConfigurationSchema_ROLE Site database – DAS_ROLE Site database – DesktopUpdateManagerSchema_ROLE Site database – EnvTestServiceSchema_ROLE Site database – HostingUnitServiceSchema_ROLE Site database – Monitor_ROLE Site database – MonitorData_ROLE Site database – OrchestrationSchema_ROLE (7.11 and newer) Site database – public Site database – StorefrontSchema_ROLE (7.8 and newer) Site database – TrustSchema_ROLE (7.11 and newer) Nachdem wir nun alles für einen reibungslosen Übergang zum neuen Datenbankserver vorbereitet haben, beginnen wir damit die alten Datenbankverbindung vom Delivery Controller zu trennen. Vorab können wir uns noch versichert das der Local Host Cache aktiv ist. Damit sind zumindest Shared Desktops beim umschalten weiter Verfügbar. Bestehende Verbindungen zu Hosted Shared Desktops oder Hosted VDI sind von dem Ausfall zudem auch nicht betroffen.\nGet-BrokerSite Set-BrokerSite -LocalHostCacheEnabled $true -ConnectionLeasingEnabled $false \u0026lt;- Setzt den LHC sollte er nicht gesetzt sein. Wir müssen jetzt verschiedene Einträge die auf unsere alte Datenbank verweisen „nullen“. Idealerweise schreiben wir uns die Zeilen in der Microsoft ISE oder einem anderen PowerShell Editor eurer Wahl zusammen. Ihr könnt euch auch mit dem folgenden Befehl alle Set-*DBConnection Befehle anzeigen lassen.\nget-command set-*DBConnection Jetzt übertragen wir unsere Befehle in ein Script. Wichtig ist das die AdminDBConnection als letztes genullt wird.\nSet-ConfigDBConnection -DBConnection $null Set-AppLibDBConnection –DBConnection $null Set-OrchDBConnection –DBConnection $null Set-TrustDBConnection –DBConnection $null Set-AcctDBConnection -DBConnection $null Set-AnalyticsDBConnection -DBConnection $null Set-HypDBConnection -DBConnection $null Set-ProvDBConnection -DBConnection $null Set-BrokerDBConnection -DBConnection $null Set-EnvTestDBConnection -DBConnection $null Set-SfDBConnection -DBConnection $null Set-MonitorDBConnection -DataStore Monitor -DBConnection $null Set-MonitorDBConnection -DBConnection $null Set-LogDBConnection -DataStore Logging -DBConnection $null Set-LogDBConnection -DBConnection $null Set-AdminDBConnection -DBConnection $null -force Nachdem wir das nun auf dem ersten Delivery Controller gemacht haben müssen wir das natürlich auch auf dem zweiten tun. Entweder verbinden wir uns dort per RDP oder machen es per PowerShell\nEnter-PSSession $Hostname Dort führt ihr natürlich auch das Script aus. Vorher müsst ihr aber dort nochmal die Citrix Module laden wie oben beschrieben.\nNachdem nun alle Datenbankeinträge genullt sind wurde vom Delivery Controller der Local Host Cache aktiviert und eine aktive Steuerung des Delivery Controller ist nicht mehr möglich. Damit wir diese Zustand schnell wieder ändern. Setzen wir ein weiteres Script ein. Wichtig sind für euch die oberen 4 Zeilen. Dort pflegt ihr ServerName sowie die Namen der unterschiedlichen Datenbanken. Solltet ihr mehrere SQL Instanzen haben müsst ihr die entsprechende Instanz beim ServerName mit angeben.\n$ServerName = \"ADM01\" $SiteDBName = \"CitrixDEDHNSite\" $LogDBName = \"CitrixDEDHNLogging\" $MonitorDBName = \"CitrixDEDHNMonintoring\" $csSite = \"Server=$ServerName;Initial Catalog=$SiteDBName;Integrated Security=True;MultiSubnetFailover=True\" $csLogging = \"Server=$ServerName;Initial Catalog=$LogDBName;Integrated Security=True;MultiSubnetFailover=True\" $csMonitoring = \"Server=$ServerName;Initial Catalog=$MonitorDBName;Integrated Security=True;MultiSubnetFailover=True\" Set-AdminDBConnection -DBConnection $csSite Set-ConfigDBConnection -DBConnection $csSite Set-AcctDBConnection -DBConnection $csSite Set-AnalyticsDBConnection -DBConnection $csSite # 7.6 and newer Set-HypDBConnection -DBConnection $csSite Set-ProvDBConnection -DBConnection $csSite Set-AppLibDBConnection –DBConnection $csSite # 7.8 and newer Set-OrchDBConnection –DBConnection $csSite # 7.11 and newer Set-TrustDBConnection –DBConnection $csSite # 7.11 and newer Set-BrokerDBConnection -DBConnection $csSite Set-EnvTestDBConnection -DBConnection $csSite Set-SfDBConnection -DBConnection $csSite Set-LogDBConnection -DBConnection $csSite Set-LogDBConnection -DataStore Logging -DBConnection $null Set-LogDBConnection -DBConnection $null Set-LogDBConnection -DBConnection $csSite Set-LogDBConnection -DataStore Logging -DBConnection $csLogging Set-MonitorDBConnection -DBConnection $csSite Set-MonitorDBConnection -DataStore Monitor -DBConnection $null Set-MonitorDBConnection -DBConnection $null Set-MonitorDBConnection -DBConnection $csSite Set-MonitorDBConnection -DataStore Monitor -DBConnection $csMonitoring Nun setzen wir das Script auf dem ersten Delivery Controller ab.\nNachdem dies verfolgreich durchgeführt wurde wechseln wir wieder auf den nächsten Delivery Controller in unsere Site und führen das Script auch dort aus.\nAbschliessend aktvieren wir wieder das Logging und das Monitoring und kontrollieren die Verfügbarkeit der Seite im Citrix Studio\nSet-MonitorConfiguration -DataCollectionEnabled $true Set-LogSite -State Enable Ein Test im Studio über den Zustand der Site Alternativer Test über die PowerShell\nGet-AcctServiceStatus Get-AdminServiceStatus Get-BrokerServiceStatus Get-ConfigServiceStatus Get-EnvTestServiceStatus Get-HypServiceStatus Get-LogServiceStatus Get-MonitorServiceStatus Get-ProvServiceStatus Get-SfServiceStatus Get-AppLibServiceStatus Ich hoffen die Anleitung ist für euch Hilfreich und ihr könnt Sie evtl bei der nächsten Datenbank migration gebrauchen. Solltet ihr Fragen, Anregungen oder Kritik haben. Gerne in den Kommentaren oder per Mail. Bis zum nächsten Blogpost.\n","permalink":"https://www.3k9.de/citrix-sql-datenbank-migration/","summary":"\u003cp\u003eIn diesem Blogbeitrag möchte ich euch über die Möglichkeit berichten die 3 Citrix SQL Datenbanken ( Site, Monitoring, Logging ) auf einen andren SQL Server zu Migrieren. Ich schreiben diesen Blog Beitrag, da ich komischerweise im Internet keine für mich passenden Anleitung gefunden habe. Ich war dadurch gezwungen mir die Infos von mehreren Seiten zusammenzutragen. Eigentlich ist das Migrieren der Datenbanken kein Hexenwerk aber trotzdem sollte man für einen optimalen Ablauf ein paar Dinge beachten.\u003c/p\u003e","title":"Citrix Virtual Apps \u0026 Desktops – SQL Datenbank Migration"},{"content":"Wer so wie ich aus dem VMware Umfeld stammt wird sich schon häufiger über eine Unzulänglichkeit des Citrix Hypervisors geärgert haben. Es ist nämlich nicht ohne weitere möglich ISO Dateien via Dateibrowser auf den Hypervisor hochzulanden. Der von Citrix vorgesehene Weg ist die Bereitstellung eines SMB/CIFS oder NFS Share. Der Vorteil hier liegt ganz klar auf der Hand. Man kann dieses Share auf allen Hypervisor einbinden und hat dadurch eine Zentrale verwaltbarkeit der Ressource. Jetzt kann es aber passieren das man gar keinen Zugriff auf ein solches Share im Projekt hat, aber trotzdem mal schnell ISO Dateien zur Verfügung stellen muss für eine Installation. Man kann mit einem kleinen Trick den Hypervisor etwas überlisten und im Lokale Share einen zweiten Mountpoint einrichten der als ISO Library angenommen wird. Wie das genau geht möchte ich euch jetzt einmal Zeigen. Als erstes benötigen die UUID von unserem lokalen Storage das wir verwenden wollen um die ISO Dateien abzulegen. Keine Sorge ihr müsste diese nicht Abtippen. Ein Rechter Mausklick auf die UUID ergibt ein Kontextmenü mit dem Punkt Copy. Legt euch die UUID am besten in ein Notepad ab zur Sicherheit. Als nächstes öffnen wir mit Putty ein SSH Zugang auf unseren Hypervisor. Dort wechseln wird dann in das Verzeichnis /run/sr-mount/$uuid \u0026lt;- Hier kommt die UUID rein die wir uns eben kopiert haben. Dort erstellen wir nun ein Verzeichnis mit dem Namen iso_import. Beispiel Befehle siehe unten. [root@xensrv01 adbb6401-3082-025f-4590-60cf850d4f3f]# cd /run/sr-mount/adbb6401-3082-025f-4590-60cf850d4f3f/ [root@xensrv01 adbb6401-3082-025f-4590-60cf850d4f3f]# mkdir iso_import Nun kommt der wichtige Part. Wir legen ein neues „Storage“ an mit dem Merkmal das es eine Ablage für ISO Dateien ist. Zusätzlich geben wir auch noch an wo sich das ganze befindet. Solltet ihr also einen anderen Namen gewählt haben wie ISO_Import müsst ihr dies in der Befehlszeile noch anpassen. [root@xensrv01 adbb6401-3082-025f-4590-60cf850d4f3f]# xe sr-create name-label=\"Local ISO Storage\" type=iso device-config:location=/run/sr-mount/adbb6401-3082-025f-4590-60cf850d4f3f/iso_import device-config:legacy_mode=true content-type=iso Damit ihr nicht immer manuell auf „Rescan“ im Hypervisor klicken müsst, könnt ihr mit diesem Befehl dafür sorgen das zyklisch das Verzeichnis vom Hypervisor selbst überwacht wird nach neuen ISO Dateien. [root@xensrv01 adbb6401-3082-025f-4590-60cf850d4f3f]# xe sr-param-set uuid=800a4116-a710-7764-daef-7f2d474c88a8 other-config:auto-scan=true So sieht das ganze fertig eingebunden im Hypervisor aus. Nun fehlt nur der test mit einer ISO Datei. Am besten nimmt man hierzu ein Programm wie WinSCP. Springt im Navigationsfenster in das entsprechende Verzeichnis und kopiert via Drag’n Drop die ISO Datei auf den Hypervisor.\nIch finde diese Lösung ganz Praktisch. Vor allem ist Sie schnell eingerichtet und ermöglicht einem auch ohne SMB/CIFS Freigabe das schnelle zur Verfügung stellen von ISO Dateien.\n","permalink":"https://www.3k9.de/citrix-hypervisor-iso-repository-im-lokalen-storage-bereitstellen/","summary":"\u003cp\u003eWer so wie ich aus dem VMware Umfeld stammt wird sich schon häufiger über eine Unzulänglichkeit des Citrix Hypervisors geärgert haben. Es ist nämlich nicht ohne weitere möglich ISO Dateien via Dateibrowser auf den Hypervisor hochzulanden. Der von Citrix vorgesehene Weg ist die Bereitstellung eines SMB/CIFS oder NFS Share. Der Vorteil hier liegt ganz klar auf der Hand. Man kann dieses Share auf allen Hypervisor einbinden und hat dadurch eine Zentrale verwaltbarkeit der Ressource. Jetzt kann es aber passieren das man gar keinen Zugriff auf ein solches Share im Projekt hat, aber trotzdem mal schnell ISO Dateien zur Verfügung stellen muss für eine Installation. Man kann mit einem kleinen Trick den Hypervisor etwas überlisten und im Lokale Share einen zweiten Mountpoint einrichten der als ISO Library angenommen wird. Wie das genau geht möchte ich euch jetzt einmal Zeigen. \u003cfigure class=\"wp-block-image size-large\"\u003e\u003c/p\u003e","title":"Citrix Hypervisor – ISO Repository im lokalen Storage bereitstellen"},{"content":"Diese Anleitung beschreibt in Bilder wie man einen Citrix Hypervisor Version 8.1 installiert. Da sich die Installation nicht wirklich unterscheidet zu den vorherigen Versionen kann diese Anleitung auch für die Installation eine Citrix XenServer 7.1 verwendet werden.\nNach Einlegen/Einbinden der ISO Datei muss die Bootreihenfolge entsprechend auf das Medium eingestellt werden in dem sich das XenServer Installationsmedium befindet. Der erste Bootscreen begrüßt einen mit dem CItrix Hypervisor Logo. Man kann hier mit Enter den Start des Setups beginnen. Alternativ bootet das Setup auch von alleine nach 5 Sekunden. \u0026lt;p class=\u0026quot;has-text-color has-text-align-center has-very-dark-gray-color\u0026quot;\u0026gt; \u0026lt;/p\u0026gt; Der erste Dialog ermöglicht es die Sprache des Hypervisor OS einzustellen. Für Qwertz DE muss man ganz nach unten springen. [Bild runter bis zum Ende der Liste gedrückt halten und einmal Bild Hoch drücken]. Abschließend mit OK bestätigen.\nDer nächste Dialog ist wichtig sollte der Host einen Raid Controller oder anderen HBA eingebaut haben den Hypervisor von Haus aus nicht kennt. Das Problem tritt häufiger bei XenServer 7.1 und neueren Raid Controller ( Perc H740P ) auf. Damit das Setup hier mit den angeschlossenen Festplatten arbeiten kann musst man mit F9 den Gerätetreiber laden. Achtung! Der Gerätetreiber steht dann nur für die Installation zur Verfügung und muss nach der Installation erneut geladen werden. Nun bestätigen wir die EULA (End User License Agreement) Hier wählen wir die primäre Partition aus auf der nun der Citrix Hypervisor installiert wird. In diesem Fall ist es /dev/sdb \u0026lt;- Eine via USB zu M2 Adapter zur Verfügung gestellte SSD. Im Idealfall hat man hier eine Dell Boss Karte(2x NVME) oder ein separates RAID1 für das OS(SAS oder SATA SSDs). Die Mindestanforderungen sind 70 GB offiziell und ab 48 GB lässt er sich installieren. Aber auch diesen Parameter könnte man theoretisch anpassen. Auch USB Sticks mit entsprechender Größe sind möglich aber sollte die hohe Schreibintensität auf /var/log nicht unterschätzen. Nun wählen wir das Volume aus auf dem unsere VMs später abgelegt werden. Alle anderen Volumes sollten abgewählt werden. Zusätzlich sollte man Thin Provisioning aktivieren. Das Installationsmedium ist in diesem Fall Lokal. Es wäre aber auch möglich von einem NFS oder ein FTP / HTTP Repository eine Installation zu starten. Die Überprüfung des Installationsmedium kann man überspringen. Hier legen wir nun das root Kennwort für den Citrix Hypervisor fest. Als nächstes wählen wir das Management Interface aus worüber der Cirtrix Hypervisor administriert werden kann. In diesem Fall eth0. In dieser Ansicht ist zudem ersichtlich ob ein Interface einen physikalischen Link hat. Wir legen nun die IP, Subentzmaske sowie Gateway für die Management Schnittstelle fest. Wenn nötig auch ein VLAN Tag. Hier lässt sich der Hostname sowie die DNS Server konfigurieren. Die Zeitzonen Einstellungen beginnt mit dem Einstieg über die geographische Zone. In unserem Fall „Europe“ Hier gibt man dan den Ort an der am nächsten am besten zur gewünschten Zeitzone passt. Ein NTP Server ermöglich das automatische Synchronisieren der Zeit und sollte der manuellen Eingabe vorgezogen werden. Bis zu 3 Zeitserver können eingestellt werden. Mit einem drücken auf den Button „Install Citrix Hypervisor“ beginnt die Installation. Das Setup bereitet nun die Installation vor.\nHier läuft nun die eigentliche Installation.\nDas ist der Wichtige Punkt: Sollten wir vorher via F9 einen Treiber geladen haben müssen wir dies nun hier wiederholen damit der Treiber auch später im System verfügbar ist. Ein Nachladen im eigentlichen OS ist schwer möglich da die Installation eine Treibers ein Local oder Attached Storage benötigt. Das ist der Teil wo später die VMs liegen. Sollte so etwas nicht vorhanden sein kann der Treiber nur über Umwege installiert werden. Anschliessend wir die Installation finalisiert.\nMit drücken des OK Buttons ist die Installation abgeschlossen. Es gibt lediglich im Bereich Treiber installation ein paar Fallstricke die allerdings bei mehrmaligen installieren sich selbst erklären. Nach dem erfolgreichen Neustart sollte der XenServer booten und nach einer gewissen Zeit im Konfigurationsmenü landen.\nIch habe hoffe die Anleitung ist für euer nächstes Projekt hilfreich. ","permalink":"https://www.3k9.de/bereitstellung-eines-citrix-hypervisor-ehemals-xenserver/","summary":"\u003cp\u003eDiese Anleitung beschreibt in Bilder wie man einen Citrix Hypervisor Version 8.1 installiert. Da sich die Installation nicht wirklich unterscheidet zu den vorherigen Versionen kann diese Anleitung auch für die Installation eine Citrix XenServer 7.1 verwendet werden.\u003c/p\u003e\n\u003cdiv class=\"wp-block-group\"\u003e\n  \u003cdiv class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"\u003e\n    \u003cfigure class=\"wp-block-image size-large is-style-default\"\u003e\u003cimg loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"680\" src=\"https://www.3k9.de/wp-content/uploads/2020/02/Capture1-1024x680.png\" alt=\"\" class=\"wp-image-45\" srcset=\"https://www.3k9.de/wp-content/uploads/2020/02/Capture1-1024x680.png 1024w, https://www.3k9.de/wp-content/uploads/2020/02/Capture1-300x199.png 300w, https://www.3k9.de/wp-content/uploads/2020/02/Capture1-768x510.png 768w, https://www.3k9.de/wp-content/uploads/2020/02/Capture1.png 1180w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" /\u003e\u003cfigcaption\u003eNach Einlegen/Einbinden der ISO Datei muss die Bootreihenfolge entsprechend auf das Medium eingestellt werden in dem sich das XenServer Installationsmedium befindet. Der erste Bootscreen begrüßt einen mit dem CItrix Hypervisor Logo. Man kann hier mit Enter den Start des Setups beginnen. Alternativ bootet das Setup auch von alleine nach 5 Sekunden. \u003c/figcaption\u003e\u003c/figure\u003e \n\u003cpre\u003e\u003ccode\u003e\u0026lt;p class=\u0026quot;has-text-color has-text-align-center has-very-dark-gray-color\u0026quot;\u0026gt;\n\u0026lt;/p\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cfigure class=\"wp-block-image size-large\"\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" src=\"https://www.3k9.de/wp-content/uploads/2020/02/Capture2-1024x598.png\" alt=\"\" class=\"wp-image-46\" srcset=\"https://www.3k9.de/wp-content/uploads/2020/02/Capture2-1024x598.png 1024w, https://www.3k9.de/wp-content/uploads/2020/02/Capture2-300x175.png 300w, https://www.3k9.de/wp-content/uploads/2020/02/Capture2-768x448.png 768w, https://www.3k9.de/wp-content/uploads/2020/02/Capture2.png 1285w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" /\u003e \u003cfigcaption\u003eDer erste Dialog ermöglicht es die Sprache des Hypervisor OS einzustellen. Für Qwertz DE muss man ganz nach unten springen. [Bild runter bis zum Ende der Liste gedrückt halten und einmal Bild Hoch drücken]. Abschließend mit OK bestätigen.\u003c/figcaption\u003e\u003c/figure\u003e\u003c/p\u003e","title":"Bereitstellung eines Citrix Hypervisor (ehemals XenServer)"},{"content":"Das erste was ich in meiner Zeit als Citrix Consultant gelernt habe ist, das es für viele Probleme nicht nur einen Weg gibt der beschritten werden kann. Daher auch der Spruch unter Consultants „It Depends!“.\nSo ist es natürlich auch bei dem Thema Image Breitstellung. Viele Dinge gibt es zu beachten und viele Dinge können auch abhängig von den Umständen variieren. Hier schreibe ich nun meinen Weg auf den ich beschreite bei einer Imagebereitstellung.\nAuswahl des Betriebssystems\nNatürlich ist die Auswahl des Betriebssystems die Grundlage für das Image. Soll es Windows 10 für eine Hosted VDI Umgebung sein, Windows Server für eine Hosted Desktop oder VDI Umgebung werden. Während man bei einem Server Betriebssystem „lediglich“ darauf achten muss ob es nun Server 2012 R2, 2016, 2019 wird und ob das gewünschte System von der eingesetzten Citrix Version unterstützt. So ist die Qual der Wahl bei Windows 10 etwas schwieriger. Windows 10 gibt es nämlich in verschiedensten Editionen und nur bestimmte sind für den Fall VDI überhaupt verwendbar. Für Microsoft ist das ganz klar. Das Recht ein Windows zu virtualisieren erwirbt man nämlich entweder mit einer gültigen Software Assurance oder mit einer separat erhältlichen VDA Lizenz. Beides führt unweigerlich zu Windows 10 Enterprise als Basissystem. Oft kommt hier die Frage vom Kunden warum man nicht LTSC(ehemals LTSB) nimmt. Allerdings hier das Todschlag-Argument:´ Kein Support für O365´ . Zudem kommt selbst in der VDI immer mehr die Themen „Flexibilität, Store, Cloud“ und da ist LTSC leider der falsche Ansatz. Microsoft hat LTSC für Geräte im Embedded Bereich ( Banken / Industrie etc. ) entwickelt.\nAls nächster wichtiger Punkt bei der Auswahl des Betriebssystems ist mittlerweile die Version der eingesetzten Windows 10 Edition. Microsoft veröffentlicht mittlerweile 2 mal im Jahr Updates ihres Betriebssystems. Spring und Fall Release genannt. Die beiden Releases haben unterschiedliche Supportzyklen. Quelle Microsoft: https://support.microsoft.com/de-de/help/13853/windows-lifecycle-fact-sheet Man sollte natürlich immer darauf achten die Version mit dem längsten Supportzyklus zu wählen(Fall-Release) damit man lange genug mit Updates versorgt wird.Mit jeder Bereitstellung eines Updates von Microsoft beginnt für uns immer wieder das Testen. Oftmals wurden Dinge im Detail geändert die plötzlich Anpassungen an UPM oder anderen Komponenten nötigt machen. In den letzten Jahren waren die Updates auf neuere Releases immer heftige Sprünge in denen intensiv getestet werden musste. Dies soll sich aber so Microsoft bessern. Oft gehen die Kunden diesen Weg nicht und lassen Windows 10 Versionen zu lange laufen. Umgekehrt gibt es aber auch Kunden die aus Complaince Gründen jeden Monat ein neues Image bauen. Kennt man einmal den „Way to do“ ist es eine typische Betriebsaufgabe.\nServer OS als VDI? Ja auch das ist möglich und bringt einige Vorteile aber auch Nachteile mit sich. Citrix selbst ermöglicht es nicht über den regulären Installationsweg ein Windows Server OS als VDI zu verwenden. Hierzu muss man per Kommandozeilenparameter das Setup dazu bringen. Hat man diese Hürde geschafft gibt es den Vorteil eines Betriebssystems das relativ frei ist von unnötiger Software wie Candy Crush, Xing, Minecraft. Dies kommt daher das auch bei Windows Server OS kein Store zur Verfügung steht. Was von Vorteil aber auch von Nachteil sein kann. Was den Support von O365 angeht, hat Microsoft nochmal nachgelegt und ihn bis 2025 verlängt. Man hofft hier noch auf den Durchbruch von Windows 10 Virtual Desktop was eine Multiusersession auf einem klassischen Windows 10 ermöglicht. Was dann schlussendlich auch den klassischen Terminalserver ablösen könnte. Kommen wir aber zurück zur ServerOS VDI Thematik. Es sind sehr viele Kleinigkeiten die ein ServerOS von einem Betriebssystem unterscheiden. Ich möchte nicht auf alle im einzelnen eingehen aber mal ein paar Beispiele nennen. Z.b. Herunterfahrenmenü \u0026lt;- Darf ein Benutzer nicht tun , Herunterfahrenmenü muss ein Grund angegeben werden, Optimiert ist Windows Server standardmäßig für Hintergrundaktivitäten. Vieles um Windows Server als VDI einzusetzen führt über die Lizenzthematik. Verwende ich eine Datacenterlizenz kann ich hier bei entsprechender Skalierung sehr viel Geld sparen.\nSo das war der erste Teil aus dem Thema Image Bereitstellung Tipps. Als nächstes kommt die Installation.\n","permalink":"https://www.3k9.de/image-bereitstellungs-tipps-auswahl-des-betriebssystems/","summary":"\u003cp\u003eDas erste was ich in meiner Zeit als Citrix Consultant gelernt habe ist, das es für viele Probleme nicht nur einen Weg gibt der beschritten werden kann. Daher auch der Spruch unter Consultants „It Depends!“.\u003c/p\u003e\n\u003cp\u003eSo ist es natürlich auch bei dem Thema Image Breitstellung. Viele Dinge gibt es zu beachten und viele Dinge können auch abhängig von den Umständen variieren. Hier schreibe ich nun meinen Weg auf den ich beschreite bei einer Imagebereitstellung.\u003c/p\u003e","title":"Image Bereitstellungs Tipps – Auswahl des Betriebssystems"},{"content":"Diensteanbieter Sebastian Busch\nIm Handschuhteich 21\n66999 Hinterweidenthal\nDeutschland\nKontaktmöglichkeiten E-Mail-Adresse: sebastian.busch@3k9.de\nHaftungs- und Urheberrechtshinweise Haftungsausschluss: Die Inhalte dieses Onlineangebotes wurden sorgfältig und nach unserem aktuellen Kenntnisstand erstellt, dienen jedoch nur der Information und entfalten keine rechtlich bindende Wirkung, sofern es sich nicht um gesetzlich verpflichtende Informationen (z.B. das Impressum, die Datenschutzerklärung, AGB oder Widerrufsbelehrungen für Verbraucher) handelt. Wir behalten uns vor, die Inhalte vollständig oder teilweise zu ändern oder zu löschen, soweit vertragliche Verpflichtungen unberührt bleiben. Alle Angebote sind freibleibend und unverbindlich.\nLinks auf fremde Webseiten: Inhalte fremder Webseiten, auf die wir direkt oder indirekt verweisen, liegen außerhalb unseres Verantwortungsbereiches und machen wir uns nicht zu Eigen. Für alle Inhalte und insbesondere für Schäden, die aus der Nutzung der in den verlinkten Webseiten aufrufbaren Informationen entstehen, haftet allein der Anbieter der verlinkten Webseiten.\nUrheberrechte und Markenrechte: Alle auf dieser Website dargestellten Inhalte, wie Texte, Fotografien, Grafiken, Marken und Warenzeichen sind durch die jeweiligen Schutzrechte (Urheberrechte, Markenrechte) geschützt. Die Verwendung, Vervielfältigung usw. unterliegen unseren Rechten oder den Rechten der jeweiligen Urheber bzw. Rechteverwalter.\nHinweise auf Rechtsverstöße: Sollten Sie innerhalb unseres Internetauftritts Rechtsverstöße bemerken, bitten wir Sie uns auf diese hinzuweisen. Wir werden rechtswidrige Inhalte und Links nach Kenntnisnahme unverzüglich entfernen.\nErstellt mit kostenlosem Datenschutz-Generator.de von Dr. Thomas Schwenke\n","permalink":"https://www.3k9.de/impressum.html","summary":"\u003ch2 id=\"m46.wp-block-heading\"\u003eDiensteanbieter\u003c/h2\u003e\n\u003cp\u003eSebastian Busch\u003c/p\u003e\n\u003cp\u003eIm Handschuhteich 21\u003c/p\u003e\n\u003cp\u003e66999 Hinterweidenthal\u003c/p\u003e\n\u003cp\u003eDeutschland\u003c/p\u003e\n\u003ch2 id=\"m56.wp-block-heading\"\u003eKontaktmöglichkeiten\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eE-Mail-Adresse\u003c/strong\u003e: \u003ca href=\"mailto:sebastian.busch@3k9.de\"\u003esebastian.busch@3k9.de\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"m65.wp-block-heading\"\u003eHaftungs- und Urheberrechtshinweise\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eHaftungsausschluss\u003c/strong\u003e: Die Inhalte dieses Onlineangebotes wurden sorgfältig und nach unserem aktuellen Kenntnisstand erstellt, dienen jedoch nur der Information und entfalten keine rechtlich bindende Wirkung, sofern es sich nicht um gesetzlich verpflichtende Informationen (z.B. das Impressum, die Datenschutzerklärung, AGB oder Widerrufsbelehrungen für Verbraucher) handelt. Wir behalten uns vor, die Inhalte vollständig oder teilweise zu ändern oder zu löschen, soweit vertragliche Verpflichtungen unberührt bleiben. Alle Angebote sind freibleibend und unverbindlich.\u003c/p\u003e","title":"Impressum"},{"content":"Wer wir sind Datenschutzerklärung Einleitung Mit der folgenden Datenschutzerklärung möchten wir Sie darüber aufklären, welche Arten Ihrer personenbezogenen Daten (nachfolgend auch kurz als „Daten“ bezeichnet) wir zu welchen Zwecken und in welchem Umfang verarbeiten. Die Datenschutzerklärung gilt für alle von uns durchgeführten Verarbeitungen personenbezogener Daten, sowohl im Rahmen der Erbringung unserer Leistungen als auch insbesondere auf unseren Webseiten, in mobilen Applikationen sowie innerhalb externer Onlinepräsenzen, wie z.B. unserer Social-Media-Profile (nachfolgend zusammenfassend bezeichnet als „Onlineangebot“).\nDie verwendeten Begriffe sind nicht geschlechtsspezifisch.\nStand: 29. Januar 2020\nInhaltsübersicht Einleitung Verantwortlicher Übersicht der Verarbeitungen Maßgebliche Rechtsgrundlagen Sicherheitsmaßnahmen Übermittlung und Offenbarung von personenbezogenen Daten Datenverarbeitung in Drittländern Blogs und Publikationsmedien Kontaktaufnahme Bereitstellung des Onlineangebotes und Webhosting Löschung von Daten Änderung und Aktualisierung der Datenschutzerklärung Rechte der betroffenen Personen Begriffsdefinitionen Verantwortlicher Sebastian Busch\nIm Handschuhteich 21 66999 Hinterweidenthal\nE-Mail-Adresse: sebastian.busch@3k9.de\nÜbersicht der Verarbeitungen Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und die Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen Personen.\nArten der verarbeiteten Daten Bestandsdaten (z.B. Namen, Adressen). Inhaltsdaten (z.B. Texteingaben, Fotografien, Videos). Kontaktdaten (z.B. E-Mail, Telefonnummern). Meta-/Kommunikationsdaten (z.B. Geräte-Informationen, IP-Adressen). Nutzungsdaten (z.B. besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten). Vertragsdaten (z.B. Vertragsgegenstand, Laufzeit, Kundenkategorie). Kategorien betroffener Personen Kommunikationspartner. Nutzer (z.B. Webseitenbesucher, Nutzer von Onlinediensten). Zwecke der Verarbeitung Feedback (z.B. Sammeln von Feedback via Online-Formular). Kontaktanfragen und Kommunikation. Sicherheitsmaßnahmen. Vertragliche Leistungen und Service. Verwaltung und Beantwortung von Anfragen. Maßgebliche Rechtsgrundlagen Im Folgenden teilen wir die Rechtsgrundlagen der Datenschutzgrundverordnung (DSGVO), auf deren Basis wir die personenbezogenen Daten verarbeiten, mit. Bitte beachten Sie, dass zusätzlich zu den Regelungen der DSGVO die nationalen Datenschutzvorgaben in Ihrem bzw. unserem Wohn- und Sitzland gelten können.\nEinwilligung (Art. 6 Abs. 1 S. 1 lit. a DSGVO)\u0026nbsp;\u0026#8211; Die betroffene Person hat ihre Einwilligung in die Verarbeitung der sie betreffenden personenbezogenen Daten für einen spezifischen Zweck oder mehrere bestimmte Zwecke gegeben. Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b. DSGVO)\u0026nbsp;\u0026#8211; Die Verarbeitung ist für die Erfüllung eines Vertrags, dessen Vertragspartei die betroffene Person ist, oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, die auf Anfrage der betroffenen Person erfolgen. Schutz lebenswichtiger Interessen (Art. 6 Abs. 1 S. 1 lit. d. DSGVO)\u0026nbsp;\u0026#8211; Die Verarbeitung ist erforderlich, um lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person zu schützen. Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f. DSGVO)\u0026nbsp;\u0026#8211; Die Verarbeitung ist zur Wahrung der berechtigten Interessen des Verantwortlichen oder eines Dritten erforderlich, sofern nicht die Interessen oder Grundrechte und Grundfreiheiten der betroffenen Person, die den Schutz personenbezogener Daten erfordern, überwiegen. Nationale Datenschutzregelungen in Deutschland: Zusätzlich zu den Datenschutzregelungen der Datenschutz-Grundverordnung gelten nationale Regelungen zum Datenschutz in Deutschland. Hierzu gehört insbesondere das Gesetz zum Schutz vor Missbrauch personenbezogener Daten bei der Datenverarbeitung (Bundesdatenschutzgesetz – BDSG). Das BDSG enthält insbesondere Spezialregelungen zum Recht auf Auskunft, zum Recht auf Löschung, zum Widerspruchsrecht, zur Verarbeitung besonderer Kategorien personenbezogener Daten, zur Verarbeitung für andere Zwecke und zur Übermittlung sowie automatisierten Entscheidungsfindung im Einzelfall einschließlich Profiling. Des Weiteren regelt es die Datenverarbeitung für Zwecke des Beschäftigungsverhältnisses (§ 26 BDSG), insbesondere im Hinblick auf die Begründung, Durchführung oder Beendigung von Beschäftigungsverhältnissen sowie die Einwilligung von Beschäftigten. Ferner können Landesdatenschutzgesetze der einzelnen Bundesländer zur Anwendung gelangen.\nSicherheitsmaßnahmen Wir treffen nach Maßgabe der gesetzlichen Vorgaben unter Berücksichtigung des Stands der Technik, der Implementierungskosten und der Art, des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie der unterschiedlichen Eintrittswahrscheinlichkeiten und des Ausmaßes der Bedrohung der Rechte und Freiheiten natürlicher Personen geeignete technische und organisatorische Maßnahmen, um ein dem Risiko angemessenes Schutzniveau zu gewährleisten.\nZu den Maßnahmen gehören insbesondere die Sicherung der Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch Kontrolle des physischen und elektronischen Zugangs zu den Daten als auch des sie betreffenden Zugriffs, der Eingabe, der Weitergabe, der Sicherung der Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren eingerichtet, die eine Wahrnehmung von Betroffenenrechten, die Löschung von Daten und Reaktionen auf die Gefährdung der Daten gewährleisten. Ferner berücksichtigen wir den Schutz personenbezogener Daten bereits bei der Entwicklung bzw. Auswahl von Hardware, Software sowie Verfahren entsprechend dem Prinzip des Datenschutzes, durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen.\nÜbermittlung und Offenbarung von personenbezogenen Daten Im Rahmen unserer Verarbeitung von personenbezogenen Daten kommt es vor, dass die Daten an andere Stellen, Unternehmen, rechtlich selbstständige Organisationseinheiten oder Personen übermittelt oder sie ihnen gegenüber offengelegt werden. Zu den Empfängern dieser Daten können z.B. Zahlungsinstitute im Rahmen von Zahlungsvorgängen, mit IT-Aufgaben beauftragte Dienstleister oder Anbieter von Diensten und Inhalten, die in eine Webseite eingebunden werden, gehören. In solchen Fall beachten wir die gesetzlichen Vorgaben und schließen insbesondere entsprechende Verträge bzw. Vereinbarungen, die dem Schutz Ihrer Daten dienen, mit den Empfängern Ihrer Daten ab.\nDatenverarbeitung in Drittländern Sofern wir Daten in einem Drittland (d.h., außerhalb der Europäischen Union (EU), des Europäischen Wirtschaftsraums (EWR)) verarbeiten oder die Verarbeitung im Rahmen der Inanspruchnahme von Diensten Dritter oder der Offenlegung bzw. Übermittlung von Daten an andere Personen, Stellen oder Unternehmen stattfindet, erfolgt dies nur im Einklang mit den gesetzlichen Vorgaben.\nVorbehaltlich ausdrücklicher Einwilligung oder vertraglich oder gesetzlich erforderlicher Übermittlung verarbeiten oder lassen wir die Daten nur in Drittländern mit einem anerkannten Datenschutzniveau, zu denen die unter dem „Privacy-Shield“ zertifizierten US-Verarbeiter gehören, oder auf Grundlage besonderer Garantien, wie z.B. vertraglicher Verpflichtung durch sogenannte Standardschutzklauseln der EU-Kommission, des Vorliegens von Zertifizierungen oder verbindlicher interner Datenschutzvorschriften, verarbeiten (Art. 44 bis 49 DSGVO, Informationsseite der EU-Kommission: https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection_de ).\nBlogs und Publikationsmedien Wir nutzen Blogs oder vergleichbare Mittel der Onlinekommunikation und Publikation (nachfolgend „Publikationsmedium“). Die Daten der Leser werden für die Zwecke des Publikationsmediums nur insoweit verarbeitet, als es für dessen Darstellung und die Kommunikation zwischen Autoren und Lesern oder aus Gründen der Sicherheit erforderlich ist. Im Übrigen verweisen wir auf die Informationen zur Verarbeitung der Besucher unseres Publikationsmediums im Rahmen dieser Datenschutzhinweise.\nKommentare und Beiträge: Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können ihre IP-Adressen auf Grundlage unserer berechtigten Interessen gespeichert werden. Das erfolgt zu unserer Sicherheit, falls jemand in Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt (Beleidigungen, verbotene politische Propaganda etc.). In diesem Fall können wir selbst für den Kommentar oder Beitrag belangt werden und sind daher an der Identität des Verfassers interessiert.\nDes Weiteren behalten wir uns vor, auf Grundlage unserer berechtigten Interessen die Angaben der Nutzer zwecks Spamerkennung zu verarbeiten.\nAuf derselben Rechtsgrundlage behalten wir uns vor, im Fall von Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden.\nDie im Rahmen der Kommentare und Beiträge mitgeteilten Informationen zur Person, etwaige Kontakt- sowie Webseiteninformationen als auch die inhaltlichen Angaben werden von uns bis zum Widerspruch der Nutzer dauerhaft gespeichert.\nKommentarabonnements: Die Nachfolgekommentare können von Nutzern mit deren Einwilligung abonniert werden. Die Nutzer erhalten eine Bestätigungsemail, um zu überprüfen, ob sie der Inhaber der eingegebenen Emailadresse sind. Nutzer können laufende Kommentarabonnements jederzeit abbestellen. Die Bestätigungsemail wird Hinweise zu den Widerrufsmöglichkeiten enthalten. Für die Zwecke des Nachweises der Einwilligung der Nutzer speichern wir den Anmeldezeitpunkt nebst der IP-Adresse der Nutzer und löschen diese Informationen, wenn Nutzer sich von dem Abonnement abmelden.\nSie können den Empfang unseres Abonnements jederzeit kündigen, d.h., Ihre Einwilligungen widerrufen. Wir können die ausgetragenen E-Mail-Adressen bis zu drei Jahren auf Grundlage unserer berechtigten Interessen speichern, bevor wir sie löschen, um eine ehemals gegebene Einwilligung nachweisen zu können. Die Verarbeitung dieser Daten wird auf den Zweck einer möglichen Abwehr von Ansprüchen beschränkt. Ein individueller Löschungsantrag ist jederzeit möglich, sofern zugleich das ehemalige Bestehen einer Einwilligung bestätigt wird.\nAbruf von WordPress-Emojis und -Smilies: Innerhalb unseres WordPress-Blogs werden zu Zwecken der effizienten Einbindung von Inhaltselementen grafische Emojis (bzw. Smilies), d.h., kleine grafische Dateien, die Gefühle ausdrücken, eingesetzt, bezogen von externen Servern. Die Anbieter der Server erheben die IP-Adressen der Nutzer. Dies ist notwendig, damit die Emoji-Dateien an die Browser der Nutzer übermittelt werden können.\nAkismet Anti-Spam-Prüfung: Wir nutzen auf Grundlage unserer berechtigten Interessen den Dienst „Akismet“. Mit Hilfe von Akismet werden Kommentare echter Menschen von Spam-Kommentaren unterschieden. Dazu werden alle Kommentarangaben an einen Server in den USA verschickt, wo sie analysiert und für Vergleichszwecke vier Tage lang gespeichert werden. Ist ein Kommentar als Spam eingestuft worden, werden die Daten über diese Zeit hinaus gespeichert. Zu diesen Angaben gehören der eingegebene Name, die E-Mailadresse, die IP-Adresse, der Kommentarinhalt, der Referrer, Angaben zum verwendeten Browser sowie zum Computersystem und die Zeit des Eintrags.\nDie Nutzer können gerne Pseudonyme nutzen oder auf die Eingabe des Namens oder der Emailadresse verzichten. Sie können die Übertragung der Daten komplett verhindern, indem sie unser Kommentarsystem nicht nutzen. Das wäre schade, aber leider sehen wir keine Alternativen, die ebenso effektiv funktionieren.\nVerarbeitete Datenarten:\u0026nbsp;Bestandsdaten (z.B. Namen, Adressen), Kontaktdaten (z.B. E-Mail, Telefonnummern), Inhaltsdaten (z.B. Texteingaben, Fotografien, Videos), Nutzungsdaten (z.B. besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten), Meta-/Kommunikationsdaten (z.B. Geräte-Informationen, IP-Adressen), Vertragsdaten (z.B. Vertragsgegenstand, Laufzeit, Kundenkategorie). Betroffene Personen:\u0026nbsp;Nutzer (z.B. Webseitenbesucher, Nutzer von Onlinediensten). Zwecke der Verarbeitung:\u0026nbsp;Vertragliche Leistungen und Service, Feedback (z.B. Sammeln von Feedback via Online-Formular), Sicherheitsmaßnahmen, Verwaltung und Beantwortung von Anfragen, Kontaktanfragen und Kommunikation. Rechtsgrundlagen:\u0026nbsp;Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b. DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f. DSGVO), Einwilligung (Art. 6 Abs. 1 S. 1 lit. a DSGVO), Schutz lebenswichtiger Interessen (Art. 6 Abs. 1 S. 1 lit. d. DSGVO). Eingesetzte Dienste und Diensteanbieter:\nAbruf von WordPress-Emojis und -Smilies:\u0026nbsp;Abruf von WordPress-Emojis und -Smilies; Dienstanbieter: Automattic Inc., 60 29th Street #343, San Francisco, CA 94110, USA; Website:\u0026nbsp;https://automattic.com; Datenschutzerklärung:\u0026nbsp;https://automattic.com/privacy. Akismet Anti-Spam-Prüfung:\u0026nbsp;Akismet Anti-Spam-Prüfung; Dienstanbieter: Automattic Inc., 60 29th Street #343, San Francisco, CA 94110, USA; Website:\u0026nbsp;https://automattic.com; Datenschutzerklärung:\u0026nbsp;https://automattic.com/privacy. Kontaktaufnahme Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, Telefon oder via soziale Medien) werden die Angaben der anfragenden Personen verarbeitet, soweit dies zur Beantwortung der Kontaktanfragen und etwaiger angefragter Maßnahmen erforderlich ist.\nDie Beantwortung der Kontaktanfragen im Rahmen von vertraglichen oder vorvertraglichen Beziehungen erfolgt zur Erfüllung unserer vertraglichen Pflichten oder zur Beantwortung von (vor)vertraglichen Anfragen und im Übrigen auf Grundlage der berechtigten Interessen an der Beantwortung der Anfragen.\nVerarbeitete Datenarten:\u0026nbsp;Bestandsdaten (z.B. Namen, Adressen), Kontaktdaten (z.B. E-Mail, Telefonnummern), Inhaltsdaten (z.B. Texteingaben, Fotografien, Videos). Betroffene Personen:\u0026nbsp;Kommunikationspartner. Zwecke der Verarbeitung:\u0026nbsp;Kontaktanfragen und Kommunikation. Rechtsgrundlagen:\u0026nbsp;Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b. DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f. DSGVO). Bereitstellung des Onlineangebotes und Webhosting Um unser Onlineangebot sicher und effizient bereitstellen zu können, nehmen wir die Leistungen von einem oder mehreren Webhosting-Anbietern in Anspruch, von deren Servern (bzw. von ihnen verwalteten Servern) das Onlineangebot abgerufen werden kann. Zu diesen Zwecken können wir Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste sowie Sicherheitsleistungen und technische Wartungsleistungen in Anspruch nehmen.\nZu den im Rahmen der Bereitstellung des Hostingangebotes verarbeiteten Daten können alle die Nutzer unseres Onlineangebotes betreffenden Angaben gehören, die im Rahmen der Nutzung und der Kommunikation anfallen. Hierzu gehören regelmäßig die IP-Adresse, die notwendig ist, um die Inhalte von Onlineangeboten an Browser ausliefern zu können, und alle innerhalb unseres Onlineangebotes oder von Webseiten getätigten Eingaben.\nErhebung von Zugriffsdaten und Logfiles: Wir selbst (bzw. unser Webhostinganbieter) erheben Daten zu jedem Zugriff auf den Server (sogenannte Serverlogfiles). Zu den Serverlogfiles können die Adresse und Name der abgerufenen Webseiten und Dateien, Datum und Uhrzeit des Abrufs, übertragene Datenmengen, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL (die zuvor besuchte Seite) und im Regelfall IP-Adressen und der anfragende Provider gehören.\nDie Serverlogfiles können zum einen zu Zwecken der Sicherheit eingesetzt werden, z.B., um eine Überlastung der Server zu vermeiden (insbesondere im Fall von missbräuchlichen Angriffen, sogenannten DDoS-Attacken) und zum anderen, um die Auslastung der Server und ihre Stabilität sicherzustellen.\nVerarbeitete Datenarten:\u0026nbsp;Inhaltsdaten (z.B. Texteingaben, Fotografien, Videos), Nutzungsdaten (z.B. besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten), Meta-/Kommunikationsdaten (z.B. Geräte-Informationen, IP-Adressen). Betroffene Personen:\u0026nbsp;Nutzer (z.B. Webseitenbesucher, Nutzer von Onlinediensten). Rechtsgrundlagen:\u0026nbsp;Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f. DSGVO). Löschung von Daten Die von uns verarbeiteten Daten werden nach Maßgabe der gesetzlichen Vorgaben gelöscht, sobald deren zur Verarbeitung erlaubten Einwilligungen widerrufen werden oder sonstige Erlaubnisse entfallen (z.B., wenn der Zweck der Verarbeitung dieser Daten entfallen ist oder sie für den Zweck nicht erforderlich sind).\nSofern die Daten nicht gelöscht werden, weil sie für andere und gesetzlich zulässige Zwecke erforderlich sind, wird deren Verarbeitung auf diese Zwecke beschränkt. D.h., die Daten werden gesperrt und nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die aus handels- oder steuerrechtlichen Gründen aufbewahrt werden müssen oder deren Speicherung zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person erforderlich ist.\nWeitere Hinweise zu der Löschung von personenbezogenen Daten können ferner im Rahmen der einzelnen Datenschutzhinweise dieser Datenschutzerklärung erfolgen.\nÄnderung und Aktualisierung der Datenschutzerklärung Wir bitten Sie, sich regelmäßig über den Inhalt unserer Datenschutzerklärung zu informieren. Wir passen die Datenschutzerklärung an, sobald die Änderungen der von uns durchgeführten Datenverarbeitungen dies erforderlich machen. Wir informieren Sie, sobald durch die Änderungen eine Mitwirkungshandlung Ihrerseits (z.B. Einwilligung) oder eine sonstige individuelle Benachrichtigung erforderlich wird.\nSofern wir in dieser Datenschutzerklärung Adressen und Kontaktinformationen von Unternehmen und Organisationen angeben, bitten wir zu beachten, dass die Adressen sich über die Zeit ändern können und bitten die Angaben vor Kontaktaufnahme zu prüfen.\nRechte der betroffenen Personen Ihnen stehen als Betroffene nach der DSGVO verschiedene Rechte zu, die sich insbesondere aus Art. 15 bis 18 und 21 DSGVO ergeben:\nWiderspruchsrecht: Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen; dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht. Widerrufsrecht bei Einwilligungen:\u0026nbsp;Sie haben das Recht, erteilte Einwilligungen jederzeit zu widerrufen. Auskunftsrecht:\u0026nbsp;Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf Auskunft über diese Daten sowie auf weitere Informationen und Kopie der Daten entsprechend den gesetzlichen Vorgaben. Recht auf Berichtigung:\u0026nbsp;Sie haben entsprechend den gesetzlichen Vorgaben das Recht, die Vervollständigung der Sie betreffenden Daten oder die Berichtigung der Sie betreffenden unrichtigen Daten zu verlangen. Recht auf Löschung und Einschränkung der Verarbeitung:\u0026nbsp;Sie haben nach Maßgabe der gesetzlichen Vorgaben das Recht, zu verlangen, dass Sie betreffende Daten unverzüglich gelöscht werden, bzw. alternativ nach Maßgabe der gesetzlichen Vorgaben eine Einschränkung der Verarbeitung der Daten zu verlangen. Recht auf Datenübertragbarkeit:\u0026nbsp;Sie haben das Recht, Sie betreffende Daten, die Sie uns bereitgestellt haben, nach Maßgabe der gesetzlichen Vorgaben in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten oder deren Übermittlung an einen anderen Verantwortlichen zu fordern. Beschwerde bei Aufsichtsbehörde:\u0026nbsp;Sie haben ferner nach Maßgabe der gesetzlichen Vorgaben das Recht, bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat Ihres gewöhnlichen Aufenthaltsorts, Ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes Beschwerde einzulegen, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die DSGVO verstößt. Begriffsdefinitionen In diesem Abschnitt erhalten Sie eine Übersicht über die in dieser Datenschutzerklärung verwendeten Begrifflichkeiten. Viele der Begriffe sind dem Gesetz entnommen und vor allem im Art. 4 DSGVO definiert. Die gesetzlichen Definitionen sind verbindlich. Die nachfolgenden Erläuterungen sollen dagegen vor allem dem Verständnis dienen. Die Begriffe sind alphabetisch sortiert.\nPersonenbezogene Daten:\u0026nbsp;\u0026#8222;Personenbezogene Daten“ sind alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person (im Folgenden \u0026#8222;betroffene Person“) beziehen; als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen identifiziert werden kann, die Ausdruck der physischen, physiologischen, genetischen, psychischen, wirtschaftlichen, kulturellen oder sozialen Identität dieser natürlichen Person sind. Verantwortlicher:\u0026nbsp;Als \u0026#8222;Verantwortlicher“ wird die natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten entscheidet, bezeichnet. Verarbeitung:\u0026nbsp;\u0026#8222;Verarbeitung\u0026#8220; ist jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit und umfasst praktisch jeden Umgang mit Daten, sei es das Erheben, das Auswerten, das Speichern, das Übermitteln oder das Löschen. Erstellt mit kostenlosem Datenschutz-Generator.de von Dr. Thomas Schwenke\nWer wir sind Die Adresse unserer Website ist: https://www.3k9.de.\nWelche personenbezogenen Daten wir sammeln und warum wir sie sammeln Kommentare Wenn Besucher Kommentare auf der Website schreiben, sammeln wir die Daten, die im Kommentar-Formular angezeigt werden, außerdem die IP-Adresse des Besuchers und den User-Agent-String (damit wird der Browser identifiziert), um die Erkennung von Spam zu unterstützen.\nAus deiner E-Mail-Adresse kann eine anonymisierte Zeichenfolge erstellt (auch Hash genannt) und dem Gravatar-Dienst übergeben werden, um zu prüfen, ob du diesen benutzt. Die Datenschutzerklärung des Gravatar-Dienstes findest du hier: https://automattic.com/privacy/. Nachdem dein Kommentar freigegeben wurde, ist dein Profilbild öffentlich im Kontext deines Kommentars sichtbar.\nMedien Wenn du ein registrierter Benutzer bist und Fotos auf diese Website lädst, solltest du vermeiden, Fotos mit einem EXIF-GPS-Standort hochzuladen. Besucher dieser Website könnten Fotos, die auf dieser Website gespeichert sind, herunterladen und deren Standort-Informationen extrahieren.\nKontaktformulare Cookies Wenn du einen Kommentar auf unserer Website schreibst, kann das eine Einwilligung sein, deinen Namen, E-Mail-Adresse und Website in Cookies zu speichern. Dies ist eine Komfortfunktion, damit du nicht, wenn du einen weiteren Kommentar schreibst, all diese Daten erneut eingeben musst. Diese Cookies werden ein Jahr lang gespeichert.\nFalls du ein Konto hast und dich auf dieser Website anmeldest, werden wir ein temporäres Cookie setzen, um festzustellen, ob dein Browser Cookies akzeptiert. Dieses Cookie enthält keine personenbezogenen Daten und wird verworfen, wenn du deinen Browser schließt.\nWenn du dich anmeldest, werden wir einige Cookies einrichten, um deine Anmeldeinformationen und Anzeigeoptionen zu speichern. Anmelde-Cookies verfallen nach zwei Tagen und Cookies für die Anzeigeoptionen nach einem Jahr. Falls du bei der Anmeldung „Angemeldet bleiben“ auswählst, wird deine Anmeldung zwei Wochen lang aufrechterhalten. Mit der Abmeldung aus deinem Konto werden die Anmelde-Cookies gelöscht.\nWenn du einen Artikel bearbeitest oder veröffentlichst, wird ein zusätzlicher Cookie in deinem Browser gespeichert. Dieser Cookie enthält keine personenbezogenen Daten und verweist nur auf die Beitrags-ID des Artikels, den du gerade bearbeitet hast. Der Cookie verfällt nach einem Tag.\nEingebettete Inhalte von anderen Websites Beiträge auf dieser Website können eingebettete Inhalte beinhalten (z. B. Videos, Bilder, Beiträge etc.). Eingebettete Inhalte von anderen Websites verhalten sich exakt so, als ob der Besucher die andere Website besucht hätte.\nDiese Websites können Daten über dich sammeln, Cookies benutzen, zusätzliche Tracking-Dienste von Dritten einbetten und deine Interaktion mit diesem eingebetteten Inhalt aufzeichnen, inklusive deiner Interaktion mit dem eingebetteten Inhalt, falls du ein Konto hast und auf dieser Website angemeldet bist.\nAnalysedienste Mit wem wir deine Daten teilen Wie lange wir deine Daten speichern Wenn du einen Kommentar schreibst, wird dieser inklusive Metadaten zeitlich unbegrenzt gespeichert. Auf diese Art können wir Folgekommentare automatisch erkennen und freigeben, anstelle sie in einer Moderations-Warteschlange festzuhalten.\nFür Benutzer, die sich auf unserer Website registrieren, speichern wir zusätzlich die persönlichen Informationen, die sie in ihren Benutzerprofilen angeben. Alle Benutzer können jederzeit ihre persönlichen Informationen einsehen, verändern oder löschen (der Benutzername kann nicht verändert werden). Administratoren der Website können diese Informationen ebenfalls einsehen und verändern.\nWelche Rechte du an deinen Daten hast Wenn du ein Konto auf dieser Website besitzt oder Kommentare geschrieben hast, kannst du einen Export deiner personenbezogenen Daten bei uns anfordern, inklusive aller Daten, die du uns mitgeteilt hast. Darüber hinaus kannst du die Löschung aller personenbezogenen Daten, die wir von dir gespeichert haben, anfordern. Dies umfasst nicht die Daten, die wir aufgrund administrativer, rechtlicher oder sicherheitsrelevanter Notwendigkeiten aufbewahren müssen.\nWohin wir deine Daten senden Besucher-Kommentare könnten von einem automatisierten Dienst zur Spam-Erkennung untersucht werden.\nDeine Kontakt-Informationen Weitere Informationen Wie wir deine Daten schützen Welche Maßnahmen wir bei Datenschutzverletzungen anbieten Von welchen Drittanbietern wir Daten erhalten Welche automatisierte Entscheidungsfindung und/oder Profilerstellung wir mit Benutzerdaten durchführen Vorausgesetzte Offenlegungspflichten der Industrie ","permalink":"https://www.3k9.de/datenschutz.html","summary":"\u003ch2 class=\"wp-block-heading\" id=\"wer-wir-sind\"\u003eWer wir sind\u003c/h2\u003e\n\u003ch1 class=\"wp-block-heading\" id=\"datenschutzerklärung\"\u003eDatenschutzerklärung\u003c/h1\u003e\n\u003ch2 class=\"wp-block-heading\" id=\"einleitung\"\u003eEinleitung\u003c/h2\u003e\n\u003cp\u003eMit der folgenden Datenschutzerklärung möchten wir Sie darüber aufklären, welche Arten Ihrer personenbezogenen Daten (nachfolgend auch kurz als „Daten“ bezeichnet) wir zu welchen Zwecken und in welchem Umfang verarbeiten. Die Datenschutzerklärung gilt für alle von uns durchgeführten Verarbeitungen personenbezogener Daten, sowohl im Rahmen der Erbringung unserer Leistungen als auch insbesondere auf unseren Webseiten, in mobilen Applikationen sowie innerhalb externer Onlinepräsenzen, wie z.B. unserer Social-Media-Profile (nachfolgend zusammenfassend bezeichnet als „Onlineangebot“).\u003c/p\u003e","title":"Datenschutzerklärung"},{"content":"Eigentlich wollte ich diesen Blog ja mit einem weniger emotionalen Beitrag starten aber leider bleibt mir keine andere Wahl. Ich bin vielleicht etwas blauäugig an dieses Thema gegangen. Obwohl mir eigentlich schon klar war, dass mit einfachem Paket installieren es bestimmt nicht getan ist. Seltsamer Weise stimmt das nicht so ganz aber dazu gleich mehr.\nDas Ziel war es unter einer Linux Distribution wie z.B. Ubuntu einen VDA(Virtual Delivery Agent) zu installieren. Ubuntu ist eigentlich immer meine erste Wahl wenn es um Linux Distributionen geht. Ich mag den Paket-manager APT, da ich aus der Debian Ecke komme und dort viel im Bereich Webserver etc. schon gebastet habe bin ich irgendwann bei Ubuntu hängen geblieben. Aber auch CentOS gefällt mir sehr gut und immer wenn ich die Gelegenheit habe etwas zu spielen installiere ich mir die ein oder andere Linux Distribution.\nAls Basis für meinen Installationsplan habe ich folgende Citrix Ressource ausgewählt https://docs.citrix.com/en-us/linux-virtual-delivery-agent/current-release/installation-overview/ubuntu.html . Leider zu spät habe ich den Punkt „Easy Install“ gesehen. So habe ich mehrere Stunden damit verbracht in Ubuntu die richtige Hostname reinfolgende unter /etc/hosts zu bearbeiten. Wichtig ist das der FQDN an erster Stelle steht und am besten keine weiteren Einträge die irgendwie mit dem Hostnamen im Zusammenhang stehen. Warum ist das wichtig fragt sich bestimmt der ein oder andere Leser? Ja das Problem das sich aus dieser Situation ergeben hat war das Winbind zwar einen Domainjoin macht aber kein dynamisches DNS hinbekommt. Auch der VDA kann dann die SID wohl nicht richtig aus dem AD auslesen.\nEs gibt auch andere Methoden eine Linux Maschine in eine Windows Domäne aufzunehmen. In dem oben verlinkten Beitrag findet ihr alle von Citrix unterstützen Varianten. Aber bei mir war zu diesem Zeitpunkt noch das Level, „Schuster bleib bei deinen Leisten.“ Natürlich müssen auch noch andere Programme installiert werden. Z.b. benötigt der VDA ein Java Developtment Kit, PostgreSQL Datenbank und ganz wichtig ein Zeitsynchronisierungstool. In dem Artikel wird einem Chrony vorgeschlagen. Ich persönlich hab es zwar installiert aber dem Thema Zeit an der stelle etwas weniger Bedeutung beigemessen. Natürlich ist es in einer Produktivumgebung wichtig das die Zeit übereinstimmt mit Active Directory, Delivery Controller etc. aber dies sollte bei einem guten Hypervisor eigentlich auch meist der Fall sein.\nNachdem alle Softwarehürden überstanden waren, das müsste dann auch ungefähr die Zeit gewesen sein wo ich den Punkt „Easy Install“ gefunden habe, ging es an ans einrichten der Verbindung zum Deliverycontroller. Hierzu gibt es unter /opt/Citrix/VDA/sbin/ctxsetup.sh ein Skript das die wichtigsten Parameter abfragt. Leider hat selbst nach einem Reboot der VDA seinen Dienst versagt und die Informationen unter /var/log/xdl/vda.log waren sehr dürftig. Dies führte mich zu dem nächste Skript in diesem Ordner /opt/Citrix/VDA/sbin/ctxcleanup.sh. Dieses Skript bereinigt wohl bestehende Datenbankeinträge sowie bestehende Einträge zu Domainjoins etc. Mir wurde das allerdings erst später klar. Nachdem ich dann auch noch das dritte Skript gefunden habe: /opt/Citrix/VDA/sbin/ctxinstall.sh \u0026lt;- Dieses Skript ist das eigentliche Installationsskript das man ausführen kann wenn man den Easy Install weg nehmen möchte. In diesen Fall muss man mann dann keine Pakete selbst installieren sondern der Installer macht das alles für einen. Auch den Domainjoin übernimmt der Installer für einen. Wichtig ist nur das er einmal den Domänennamen und einmal den NetBIOS ( oder Prä Windows 2000 ) Domänennamen haben möchte.\nFast war es dann geschafft. Nach Anlegen eines Maschinenkataloges ( Server OS ) mit manueller Bereitstellung und einer Bereitstellungsgruppe wartete ich nur darauf endlich loszulegen. Die Maschine registrierte sich aber nicht am Delivery Controller. Also loggte ich mich erneut auf der Maschine ein um die Log zu kontrollieren und seltsameweise stand in der VDA.log das die VM registriert ist. Also wieder zurück in den Deliverycontroller und siehe da die Maschine war registriert. Na vielleicht einfach zu wenig gewartet. Wie sich später rausgestellt hat muss tatsächlich ein Login erfolgen. Den Fehler konnte ich allerdings bisher Heute noch nicht richtig Herr werden. Denn manchmal geht’s und manchmal eben nicht.\nDas nächste Problem lies aber nicht lange auf sich warten. Beim ersten Versuch die Session herzustellen wurde das Bild auf der Konsole schwarz sowie auch auf der Citrix Session und nichts passierte. Nach etwas Internetrecherche bin ich auf einen Eintrag im Citrixforum gestossen. Mann sollte folgenden Paket nachinstallieren: apt install xserver-xorg-core Nach einem Reboot und erneutem anmelden sowie versuch eine Citrixsession zu starten war der Bildschirm tatsächlich nicht mehr Schwarz sondern jetzt grau/blau mit einer X11 Dialogbox mit der Meldung „Login Invalid“. Klick man auf OK erhält man die Möglichkeit sein Passwort erneut einzugeben. Dabei ist mir aufgefallen das der Benutzername dem samAccountName entspricht und nicht dem UserPrincipalName den ich beim Login via Citrix Gateway verwende. Was mich nach einiger Recherche dazu geführt hat das Winbind nicht mit UPNs umgehen kann sondern nur mit samAccountName. Da ich aber keine Lust hatte mein komplettes Netscaler Setup durch einen weiteren LDAP Server zu erweitern suchte ich nach einer anderen Lösung.\nNachdem Tag 1 nun schon vollständig mit dem Thema Linux VDA versaut war habe ich an Tag 2 beschlossen alles nochmal neu zu machen inkl. einem anderen Betriebssystem. CentOS 7 sollte es sein in der Minimal Installation + Desktop. Leider musste ich etwas googeln da es dafür keine Fertige Lösung gibt. Für den Fall das jemand mal vor dem gleichen Problem steht hier die Kurzanleitung:\nyum groupinstall \u0026#8222;GNOME Desktop\u0026#8220; \u0026#8222;Graphical Administration Tools\u0026#8220; unlink /etc/systemd/system/default.target ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target reboot Nachdem das Betriebssystem soweit war habe ich das entsprechende VDA Paket geladen. Wichtig ist das CentOS7 in der neusten Version auch nur mit den neusten VDAs supportet wird(1808 funktioniert z.b. nicht). Ich habe dann den 1912er VDA besorgt obwohl die LAB Umgebung noch 1808 ist. Diesmal genau nach EasyInstall vorgegangen. Als Software zur Domänenanbindung habe ich diesmal SSSD gewählt weil ich gelesen habe das diese mit UPNs klar kommt. Wohl allerdings nicht von Hause aus, weil ich nach der Installation und meinem ersten Test noch den gleichen Fehler hatte wie ein Tag zuvor. Ich habe dann folgenden Citrix Artikel befolgt https://support.citrix.com/article/CTX235006 und die Regular Expression in die sssd.conf eingefügt.\nNun war es soweit. Das erste mal eine Linux Sitzung via Citrix. Im Anschluss habe ich noch einiges an Software installiert auf der VM und habe somit immer eine Linux VM greifbar wenn ich Sie benötige. Als nächstes Plane ich das automatisierte Ausrollen von Linux VMs via MCS und vor allem das alles mit Ubuntu noch zum laufen zu bekommen.\n","permalink":"https://www.3k9.de/Linux-VDA-implementieren/","summary":"\u003cp\u003eEigentlich wollte ich diesen Blog ja mit einem weniger emotionalen Beitrag starten aber leider bleibt mir keine andere Wahl. Ich bin vielleicht etwas blauäugig an dieses Thema gegangen. Obwohl mir eigentlich schon klar war, dass mit einfachem Paket installieren es bestimmt nicht getan ist. Seltsamer Weise stimmt das nicht so ganz aber dazu gleich mehr.\u003c/p\u003e\n\u003cp\u003eDas Ziel war es unter einer Linux Distribution wie z.B. Ubuntu einen VDA(Virtual Delivery Agent) zu installieren. Ubuntu ist eigentlich immer meine erste Wahl wenn es um Linux Distributionen geht. Ich mag den Paket-manager APT, da ich aus der Debian Ecke komme und dort viel im Bereich Webserver etc. schon gebastet habe bin ich irgendwann bei Ubuntu hängen geblieben. Aber auch CentOS gefällt mir sehr gut und immer wenn ich die Gelegenheit habe etwas zu spielen installiere ich mir die ein oder andere Linux Distribution.\u003c/p\u003e","title":"Linux VDA implementieren"},{"content":"Dieser Blog ist nicht mein erster Auftritt im Internet. Ich war viele Jahre unter der Webadresse 3k9.de erreichbar auf der ich über alles geschrieben habe was mir gerade so durch den Kopf ging. Völlig Planlos und ohne einen roten Faden. Ob das hier anders wird? Keine Ahnung. Doch diesmal möchte ich mich auf ein paar Themen konzentrieren. Trotzdem soll dieser Blog wieder eine Sammlung der Dinge sein die mich Beschäftigen und für die ich Lösungen entwickeln musste.\nMein Name ist Sebastian. Im Internet auch unter dem Synonym \u0026ldquo;ITnetX\u0026rdquo; unterwegs. Ich bin ein Senior IT Consultant / System Engineer mit den Schwerpunkten Citrix, VMware, Cloud. Alles was mit dem Thema Digital Workspace zu tun hat beschäftigt mich. Des weiteren schubse ich gerne IP Pakete durch die Gegend und schaue das diese auch ankommen.\nMeine aktuellen Zertifizierungen:\nCitrix Certified Virtual Apps \u0026amp; Desktops on Microsoft Azure ( CC-VAD-MA ) Citrix Certified Virtual Apps \u0026amp; Desktops on Citrix Cloud ( CC-VAD-CC ) Citrix Certified Associate Virtualization ( CCA-V ) Citrix Certified Professional Virtualization ( CCP-V ) Citrix Certified Expert Virtualization ( CCE-V ) Citrix Certified Associate Networking ( CCA-N ) Sophos Certified Engineer UTM ( SCE ) Sophos Certified Engineer XG ( SCE ) Sophos Certified Architect XGS ( SCA ) Cisco CCNA VMware Certified Associate Datacenter Virtualization ( VCA-DCV ) VMware Certified Professional Datacenter Virtualiziation (VCP-DCV 2021) Microsoft Licensing Professional ( MLP ) Microsoft Certified: Windows Server Hybrid Administrator Associate Div. Apple Zertifikate ADA Schein ( Ausbildung der Ausbilder ) ","permalink":"https://www.3k9.de/about.html","summary":"\u003cp\u003eDieser Blog ist nicht mein erster Auftritt im Internet. Ich war viele Jahre unter der Webadresse 3k9.de erreichbar auf der ich über alles geschrieben habe was mir gerade so durch den Kopf ging. Völlig Planlos und ohne einen roten Faden. Ob das hier anders wird? Keine Ahnung. Doch diesmal möchte ich mich auf ein paar Themen konzentrieren. Trotzdem soll dieser Blog wieder eine Sammlung der Dinge sein die mich Beschäftigen und für die ich Lösungen entwickeln musste.\u003c/p\u003e","title":"Über diesen Blog"}]