Основні загрози
Давайте почнемо з розгляду деяких основних загроз.
На додаток до цього, якщо використовується слабка політика для паролів, зловмисник може скористатися таким інструментом, як TScrack 2.0, для підбору пароля для серверів, на яких включені термінальні служби Windows Terminal Services. Цей інструмент між іншим, також дозволяє здійснити згадану вище атаку DoS (відмова в обслуговуванні).
Загроза стає ще небезпечніше, якщо сервер, на якому запущені термінальні служби MicrosoftWindowsTerminalServicesдоступен з інтернет по RDP з'єднанню по порту 3389, навіть якщо ви використовуєте для захисту такий потужний брандмауер (firewall), як ISA Server. Цей сценарій найбільш часто зустрічається для користувачів серверів для малого бізнесу Microsoft Small Business Server.
Однак, є і хороша новина, яка полягає в тому, що ви можете уникнути ці атаки. Рішення полягає в використанні комп'ютерної аутентифікації, заснованої на сертифікатах (certificate based computer authentication). Якщо комп'ютер не може пройти аутентифікацію при наданні правильного сертифіката термінального сервера (terminal server), до якого він намагається підключиться, то з'єднання RDP буде припинено до того, як у користувача буде можливість увійти.
Як підключити аутентифікацію TLS / SSL
Перед тим, як почати, є кілька попередніх умов, про які ви повинні дізнатися.
% Systemroot% \ system32 \ clients \ tsclient \ win32 \ msrdpcli.msi- Останнє важливе вимога полягає в тому, що клієнт повинен довіряти кореневого CA, який випустив сертифікат для комп'ютера, розташованого на термінальному сервері (terminal server). Це дозволить гарантувати встановлення з'єднання TLS / SSL.
Тепер, коли ви знаєте, що це таке, прийшов час подивитися, як все це працює.
Запит сертифіката TLS / SSL
Перше, що нам необхідно зробити, це встановити сертифікат TLS / SSL, пов'язаний з комп'ютером на термінальний сервер. Сертифікат можна отримати двома способами:- Ви можете використовувати більш простий і менш безпечний спосіб, для якого не потрібно PKI або значення сертифікату (certificate authority). Для цього можна використовувати інструмент під назвою SelfSSL.exe, який входить до складу IIS 6.0 resource kit. Ви можете завантажити resource kit звідси.
- Або ви можете отримати сертифікат SSL certificate від CA сторонніх виробників
- Ще один спосіб полягає у використанні вашого власного сертифіката з вашої PKI розташованої в Microsoft Certificate Services.
У цій статті, ми створимо сертифікат SSL certificate, випущений PKI розташованої в Microsoft Certificate Services. І на це є причини. Завдяки використанню вашого власного Microsoft PKI, ви отримуєте чіткий контроль над клієнтами, які повинні довіряти кореневого CA, відповідальному за випуск сертифіката TLS / SSL. В результаті цього ми забезпечимо те, що тільки перевіреним комп'ютерів буде дозволено пройти аутентифікацію на вашому термінальному сервері.
Припустимо, що ви вже встановили службу сертифікатів Microsoft Certificate Services десь у вашій інфраструктурі. Процес, який ви повинні використовувати для запиту сертифіката TLS / SSL, залежить від того, запитуєте ви сертифікат з корпоративної (enterprise) CA (інтегрованої в Active Directory), або з окремою CA. У цій статті ми припускаємо, що використовується корпоративний CA.- З меню StartMenu (пуск) на термінальному сервері, виберіть Run (виконати). наберіть mmc, а потім натисніть на кнопку OK.
- З меню File Menu виберіть Add / Remove Snap-in.
- Виберіть Local computer (the computer this console is running on) і натисніть на кнопку Finish (завершити).
- У вікні Add Standalone Snap-in натисніть на кнопку Close (закрити). а потім натисніть на кнопку OK в вікні Add / Remove Snap-in.
- В консолі MMC виберіть Certificates (Local Computer)
- Виберіть ViewMenu. і натисніть на Options (настройки).
- У діалоговому вікні View Options виберіть Certificatepurpose (призначення сертифіката). а потім натисніть на кнопку OK.
- Перейдіть до Server Authentication (аутентифікація сервера) в правому вікні, виберіть All Tasks (всезадачі). і натисніть на кнопку
Request New Certificate (запросітьновийсертіфікат). - Відкриється помічник Certificate Request Wizard. Натисніть на кнопку Next.
- У списку типів сертифікатів Certificate types list. виберіть Server Authentication або Computer в залежності від вашої установки служб сертифікатів Certificates Services, поставте галочку в поле Advanced (додатково), і натисніть на кнопку Next.
- (Цей етап і его параметри можуть змінюватися в залежності від типу сертифіката).
У наступному вікні ви побачите CryptographicServiceProviderslist (список криптографічних постачальників). З нього виберіть постачальника MicrosoftRSASChannelCryptographicProvider. Якщо можливо, то залиште значення KeyLength (довжина ключа) рівним 1024. І знову, якщо можливо, поставте галочку в поле Markthiskeyasexportable, що дозволить вам скопіювати сертифікат в разі необхідності на інший комп'ютер. Натисніть на кнопку Next. - Знайдіть назву вашої Certification Authority у вікні CA і натисніть на кнопку Next. Наберіть назву для сертифіката в поле Friendly name. Натисніть на кнопку Next. а потім натисніть на кнопку Finish (завершити).
Налаштування термінальних служб Terminal Services
Давайте продовжимо і підключимо TLS / SSL в термінальних службах на сервері.
З меню AdministrativeTools (адміністрування) запустіть інструмент під назвою TerminalServicesConfigurationTools. Виберіть в лівому вікні Connections (підключення). У правому вікні клацніть правою кнопкою миші на RDP-Tcp. і виберіть Properties (властивості).
Спершу ми повинні вибрати сертифікат, який ми створили в попередньому розділі.
- В закладці General (загальні) натисніть на кнопку Edit (редагувати).
- Виберіть сертифікат і натисніть на кнопку OK.
- У тій же закладці General виберіть SSL в якості рівня безпеки (security layer) і встановити рівень шифрування (encryption level) на High (високий). після чого натисніть на кнопку OK.
Тепер сервер готовий, тому давайте перейдемо до робочої станції (workstation).
Налаштування робочої станції
Перше, що ми повинні зробити - це налаштувати клієнта, щоб він довіряв CA, відповідальному за випуск сертифіката на термінальному сервері. Кращий спосіб для цього полягає в використанні політики груп, але для спрощення ми встановимо перевірений кореневої CA на нашого клієнта за допомогою web браузера.- У браузері (browser) вашого клієнта введете наступний URL:
де server необхідно замінити назвою комп'ютера з CA.
- Натисніть на посилання Download a CA certificate, certificate chain, or CRL (завантажити сертифікат).
- Нагорі екрану натисніть на лінк Install this CA certificate chain (установітьетуцепочкусертіфікатов).
- У вас можуть запросити підтвердження - чи довіряєте ви web сайту чи ні. Виберіть Yes і знову натисніть на кнопку Yes для того, щоб встановити сертифікат.
- Зі списку аутентифікації Authentication list виберіть або Attempt Authentication (рекомендується), або Require Authentication.
- Тепер ви можете підключиться і увійти на термінальний сервер, задавши FQDN назву термінального сервера (terminal server). Зверніть увагу на маленький символ ключа у верхньому лівій розі, якщо ви працюєте в повноекранному режимі.
- Якщо ви захочете, то можете протестувати роботу з клієнта, який не довіряє Certificate Authority у вашій інфраструктурі і побачити відмінності. Якщо ви правильно налаштували термінальний сервер, то від неперевіреної комп'ютера вам не вдасться підключиться до сервера.
Перед тим, як ви приступите
Етапи, описані в цій статті, мають на увазі, що ваші термінальні служби працюють в середовищі домену Active Directory, а також використовують ваш власний Microsoft PKI. Однак варто зауважити, що це необов'язково, до тих пір, поки ви не фокусуєтесь на безпеки, коли комп'ютери повинні довіряти ієрархії CA.
У нашому прикладі ми використовували вбудований mmc для запиту сертифіката. Ви також можете виконати розширений запит сертифіката з браузера і вказати сертифікат за замовчуванням для веб сайту на CA, що випускає сертифікати. Ще один спосіб полягає у використанні помічника за запитами сертифікатів Certificate Request Wizard, який знаходиться в IIS, і який зазвичай використовується для запиту SSL сертифікатів.
Якщо ви вже встановили SSL сертифікат на сервері для інших цілей, то продовжуйте і використовуйте цей сертифікат для ваших термінальних служб Microsoft Terminal Services. Просто переконайтеся, що ви як і раніше контролюєте, хто може довіряти вашої ієрархії CA, а також перевірте, що URL, пов'язаний з існуючим сертифікатом SSL certificate, також є FQDN, яке можна використовувати для встановлення RDP з'єднання до термінального сервера (terminal server), як з внутрішньої мережі, так і з інтернет.