Remote-Einsatz von Terminal Services Agent mit Ansible
Resolution
Ansible ist ein Konfigurationsmanagement-Tool, das typischerweise verwendet wird, um den Zustand eines Servers in Ihrer IT-Infrastruktur durchzusetzen. Es wird verwendet, um sicherzustellen, dass der Server tatsächlich im gleichen Zustand ist, wie Sie es sich wünschen. Es sorgt dafür, dass die richtigen Pakete installiert sind, die richtigen Konfigurationsdateien vorhanden sind, die richtigen Dienste mit den richtigen Berechtigungen laufen... etc.
Administratoren schreiben eine Reihe von Regeln in einer einfachen Sprache (YAML), in Form von Playbooks. Ansible funktioniert, indem man sich mit den Knoten verbindet und kleine Programme ausschiebt,die Ihnen als "Ansible Module" bezeichnet werden. Weitere Details dazu, wie sich die arbeiten hier befinden, finden Sie hier
Administratoren könnten Windows-ansible -Module (http://docs.ansible.com/ansible/Latest/list_of_windows_modules.html) verwenden und denTerminal Services Agent (Admin Guide) aus der Ferne installieren und verwalten .
Ansible standardmäßig verwendet SSH, um Linux zu verwalten. Um Windows zu verwalten, wird PowerShell Remoting verwendet. Für die Verwaltung von Windows-Rechnern müssen die in der Ansible-Seite dokumentierten Schritte befolgt werden
Referenz:http://docs.ansible.com/ansible/Latest/intro_windows.HTML
Die folgenden Schritte stellen einige der Windows-Ansible-Module vor, die verwendet wurden, um Ansible Play Book zu schreiben, um Terminal Services (TS) Agent aus der Ferne einzusetzen.
Ansible arbeitet gleichzeitig gegen mehrere Systeme in Ihrer Infrastruktur. Sie tut dies, indem Sie Teile von Systemen auswählt, die im Inventar von Ansible aufgelistet sind, was in der Lage ist, am Standort gespeichert zu werden /etc/ansible/Hosts
Zum Beispiel habe ich einen TS Agent Server (tsagent1. palab. local) unter einem Tag (Windows) definiert.
Windows
tsagent1. palab. lokales
Das folgende Modul installiert TS Agent auf Windows Server. Details zum win_package-Modul finden Sie hier
Im folgenden Beispiel wird der TS Agent Installer (*. msi) auf einer Netzwerkfreigabe gehostet.
-Hosts: Windows-
Aufgaben:
-Name: Installation TS Agent
win_package:
Path: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: Pan Terminal Server Agent
Zustand: Present
user_name: palab \Administrator
user_password: Mysupersecretpass
Der folgende Befehl würde das Playbook ausführen:
ansible-Playbook-VVV install_ts. yml
Ansible kommt mit einem Tool, das als Ansible Vault (Link) bezeichnet wird, um Geheimnisse zu verschlüsseln. Diese Geheimnisse können dann in Aufgaben eingesetzt werden.
Erstellen Sie eine geheime. yml-Datei.
---
MySecret: Mysupersecretpass
Verschlüsseln Sie die geheime. yml-Datei
# ansible-Vault verschlüsseln Secret. yml
Neues Vault-Passwort: Enterasupersecretpass
bestätigen neues Vault-Passwort: Enterasupersecretpass-
Verschlüsselung erfolgreich
Der Inhalt der geheimen. yml-Datei wird verschlüsselt und wird wie unten dargestellt aussehen (der Inhalt wird in Ihrer Umgebung unterschiedlich sein)
Cat Secret. yml
$ANSIBLE _vault; 1.1; AES256
63303662393262633865366536333531383362633838316462313739306431656130383730303036
6433623639316439313565393430333430643930623266350a353533666432613438626331396636
32326366386361363363383335333135386364346466636533353434323261373739363533626238
3635613765383762380a306439383961336261316432376266386338643765313064376264633535
35616534613264353739333564633534353230623630653762373632323766643838
Die Variable (zum Beispiel: MySecret), die im geheimen definiert ist. yml könnte nun in den Spielbüchern wie folgt verwendet werden:
-Hosts: Windows-
Aufgaben:
-Name: Secret
include_vars: Secret. yml
-Name: Installation TS Agent
Win_package:
Path: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: Pan Terminal Server-Agent-
Zustand: anwesende
user_name: Palab\administrator
user_password: "{{MySecret }}"
Um das obige Playbook auszuführen, würden Sie den erreichen-Befehl eingeben:
Root @ Kali:/etc/ansible# ansible-Playbook--Ask-Vault-Pass Install_ts_vault. yml
Vault Passwort: enterasupersecretpass
Weitere Informationen zu Vault finden Sie http://docs.ansible.com/ansible/Latest/playbooks_vault.html.
(Optional)
Um SSL-Verbindungen zwischen Firewall und TS-Agent zu authentifizieren, können Administratoren auf dem TS-Agent individuelle Zertifikate hochladen.
Um eine gegenseitige Authentifizierung zwischen Firewall und TS-Agenten zu ermöglichen, führen Sie die folgenden Schritte auf einem Master-Windows-Server durch und nutzen die Konfigurationen und Zertifikate von diesem Server und schieben Sie aus der Ferne auf andere Server.
- TS Agent auf einem Windows-Server installieren
- Laden Sie auf diesem Server individuelle Zertifikate hoch.
- Starten Sie nicht den Terminal Services Agent Service
- Kopieren Sie die Registry-Werte vom Windows-Server und kopieren Sie auch das benutzerdefinierte Zertifikat (Custom-cert. PEM) aus dem TS-Agent-Installationsverzeichnis des Servers
TS Agent verschlüsselt die Passphrase des Zertifikats und erstellt einen Registry-Eintrag (Tsagentssl). Wenn der Dienst des TS Agent neu gestartet wird, wird der Registry-Eintrag gelöscht und die verschlüsselte Passphrase wird in den Bescheinigung Store geschrieben. Das Custom-Zertifikat (Custom-cert. PEM) wird geladen und wird für die Kommunikation mit der Firewall verwendet.
Im folgenden Schritt werden wir das "Custom-cert. PEM" von einem Master-Windows-Server, auf dem TS Agent installiert wurde (siehe vorherige Schritte), auf entfernte TS-Agent-Server kopieren.
"win_copy" (Link) wird verwendet, um die Custom-cert. PEM-Datei in den TS-Agent-installationsORDNER auf den entfernten TS-Agent-Servern zu kopieren. Zum Beispiel werden Sie den Befehl "ansible-Playbook-VVV copy_ts_cert. yml" verwenden, um die folgende Aufgabe auszuführen.
-Hosts: Windows-
Aufgaben:
-Name: Kopieren Sie eine einzelne Datei, die den Dateinamen
win_copy:
src: Custom-cert. PEM
dest: C:\Programm Files\palo Alto networks\terminal Server Agent \
In der obigen Aufgabe wurde die Custom-cert. PEM-Datei vom Master-Windows-Server auf den ansible Controller und vom ansible Controller hochgeladen, Sie wird auf entfernte TS-Agent-Server kopiert.
Root @ myans:/etc/ansible# ls files/Custom-cert. PEM
Files/Custom-cert. PEM
Auf den entfernten TS-Agent-Windows-Servern werden wir die Registry-Schlüssel aktualisieren. Aus den vorangegangenen Schritten haben wir folgende Registy Keys zur Kenntnis genommen:
- TSAgentCNEXPIRY
- TSAgentCNISSUER
- TSAgentCNNAME
- Tsagentcnsubjekt
- TSAgentSSL
Mit demModul "win_regedit" (Link) werden die Registrierungsschlüssel auf den entfernten Servern aktualisiert
-Hosts: Windows-
Aufgaben:
-Name: CN-Ablauf
win_regedit:
Path: HKLM: \ Software\palo Alto Networks\ts Agent\conf
Name: Tsagentcnexpiry
Data: Mar 14 20:15: 47 2019 GMT
-Typ: String
-Name: CN-Emittent
win_regedit:
Path: HKLM: \ Software\palo Alto Networks\ts Agent\conf
Name: tsagentcnissuer
Data:/CN = FW16. PALAB. lokaler
Typ: String
-Name: CN Name
win_ regedit:
Path: HKLM: \ Software\palo Alto Networks\ts Agent\conf
Name: Tsagentcnname
Data: cert_TS12Cert. PEM
Type: String
-Name: CN SUBJEKT
win_regedit:
Path: HKLM: \ Software\palo Alto Networks\ts agent\conf
Name: Tsagentcnbetreff
Data:/CN = 192.168.75.12
Type: String
-Name: passpphrase
WIN_REGEDIT:
Path: HKLM: \ Software\palo Alto Networks\ts Agent\conf
Name: Tsagentssl
Data: ro6lSTTRERERERERTRRRR
Type: String
Mit demModul "win_service" (Link) können wir den Terminal Server Agent-Service neu starten. Sobald der Dienst wieder gestartet ist, wird der TS-Agent das Custom-Zertifikat verwenden und die Passphrase von der Registry in den Bescheinigung Store verschieben. Sobald der Registrierungsschlüssel (TSAgentSSL) verschoben ist, wird er nicht mehr für die Anzeige in der Registry sichtbar.
-Hosts: Windows-
Aufgaben:
-Name: Neustart-Service
win_service:
Name: Pan-Terminal-Server-Agent-
Zustand: neu gestartet
Auf der Firewall können Sie beachten, dass die VerbindungsSicherheit unter (Gerät > BenutzerIdentifikation > VerbindungsSicherheit) konfiguriert wurde. In diesem Schritt prüft die Firewall das CA-Zertifikat, das die Zertifikate des Terminal Service Agent unterzeichnet hat.
Es wird davon ausgegangen, dass auf dem TS Agent Windows-Server die CA-Zertifikate installiert sind. Die CA-Zertifikate können über die Windows Group Policy (Link) installiert werden.
Man kann Änderungen an den Terminal-Service-Agenten-Konfigurationen vornehmen, indem man Änderungen an der Registry vornimmt. Der folgende Live-Artikel (Link) diskutiert, wie man TS Agent Registry für eine bessere Hafen Zuweisung und-Handhabung einstimmt.
Die folgenden Bildschirmaufnahmen zeigen verschiedene Registry-Einträge, die modifiziert werden können, was die TS-Agenten intern neu konfiguriert.
Mit demModul "win_regedit" können wir die TS-Agenten-Registrierungen ändern. Die folgenden Aufgaben zeigen wenige Modifikationen, die an TS Agent durchgeführt wurden.
Registry-Werte für folgende Schlüssel geändert:
- StartSize
- Maxsize
- StartPort
- EndPort
- FreePortBlockDelay
- EnableTws
- TSAgentDomain
- OverrideDomainEnable
- ReservedPorts