У меня по умолчанию на рабочих станциях (OS: Windows 10 Pro)
выключена возможность удаленного подключения по RDP
, а включена лишь возможность использования "Удаленный помощник"
. Вот только теперь задумка, как через Ansible
отключить "Удаленный помощик"
, включить подключение к системе через "Удаленный рабочий стол"
+ использовать проверку подлинности на уровне сети.
Вот все задуманное я и реализую через PlayBook:
Шаг №1:
У Вас предварительно в домене должна быть система Ubuntu 22.04 Server + Ansible
и настроена аутентификация через Kerberos
, см. заметку "Через Ansible с доменными Windows системами на Ubuntu 22.04 Server"
Шаг №2:
На рабочие системы под управлением Windows
через групповые политики распространен скрипт, делающий возможность взаимодействовать с ними через Ansible
, см заметку "Выполнить ConfigureRemotingForAnsible.ps1 через GPO"
Шаг №3:
Создаю Playbook
и именую его по имени функционала, который он будет делать, к примеру winrdp.yml:
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/playbook/winrdp.yml - name: RDP Windows Workstation hosts: windows tasks: - name: Disable Remote Assistant win_regedit: path: HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance name: fAllowToGetHelp data: 0 type: dword - name: RDP on Windows 10 Enable win_regedit: path: HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server name: '{{ item.name }}' data: '{{ item.data }}' type: dword with_items: - { name: fDenyTSConnections, data: 0 } - { name: fSingleSessionPerUser, data: 0 } tags: registry - name: Set RDP/tcp settings win_regedit: path: HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp name: '{{ item.name }}' data: '{{ item.data }}' type: dword with_items: - { name: PortNumber, data: 3389 } #1 - enable NLA, 0 - disable NLA - { name: SecurityLayer, data: 1 } - { name: UserAuthentication, data: 1 } - { name: Shadow, data: 1 } tags: registry
Шаг №4:
Запускаю созданный PlayBook
применительно к двум системам: wrkst0003 & wrkst0002
ekzorchik@srv-ansible:~$ sudo ansible-playbook -i /etc/ansible/windows/hosts /etc/ansible/playbook/winrdp.yml PLAY [RDP Windows Workstation] ***************************************************************************************** TASK [Gathering Facts] ************************************************************************************************* ok: [wrkst0003.polygon.local] ok: [wrkst0002.polygon.local] TASK [Disable Remote Assistant] **************************************************************************************** changed: [wrkst0003.polygon.local] ok: [wrkst0002.polygon.local] TASK [RDP on Windows 10 Enable] **************************************************************************************** changed: [wrkst0003.polygon.local] => (item={'name': 'fDenyTSConnections', 'data': 0}) changed: [wrkst0002.polygon.local] => (item={'name': 'fDenyTSConnections', 'data': 0}) ok: [wrkst0003.polygon.local] => (item={'name': 'fSingleSessionPerUser', 'data': 0}) ok: [wrkst0002.polygon.local] => (item={'name': 'fSingleSessionPerUser', 'data': 0}) TASK [Set RDP/tcp settings] ******************************************************************************************** ok: [wrkst0003.polygon.local] => (item={'name': 'PortNumber', 'data': 3389}) ok: [wrkst0002.polygon.local] => (item={'name': 'PortNumber', 'data': 3389}) ok: [wrkst0003.polygon.local] => (item={'name': 'SecurityLayer', 'data': 1}) ok: [wrkst0002.polygon.local] => (item={'name': 'SecurityLayer', 'data': 1}) ok: [wrkst0003.polygon.local] => (item={'name': 'UserAuthentication', 'data': 1}) ok: [wrkst0002.polygon.local] => (item={'name': 'UserAuthentication', 'data': 1}) ok: [wrkst0003.polygon.local] => (item={'name': 'Shadow', 'data': 1}) ok: [wrkst0002.polygon.local] => (item={'name': 'Shadow', 'data': 1}) PLAY RECAP ************************************************************************************************************* wrkst0002.polygon.local : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 wrkst0003.polygon.local : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ekzorchik@srv-ansible:~$
Шаг №5:
Результат работы созданного Playbook
под задумку, которую я реализовал:
Разрешить подключения удаленного помощника к этому компьютеру: отключено
Разрешить удаленные подключения к этому компьютеру: включено
Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети (рекомендуется): включено
Готово, что мне и нужно было. Блин, это крутой инструмент, вот так ставя себе задачи, для этого я даже завел файл tips_theme_ansible_v1.txt
в котором под каждым пунктом создаю задачу, которую мне бы хотелось разобрать дабы через Ansible
делать, так я учусь что меня интересует и так разбираю чтобы после применить на боевом, когда все действия отработаны.
На этом задумка завершена, с уважением автор блога Олло Александр aka ekzorchik.