Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Стандартне використання скриптів і групової політики в IIS Lockdown

  1. Загальний сценарій
  2. додаткові сценарії

Microsoft Active Directory і Group Policy містять багатий набір інструментальних засобів і процедур, покликаних зберегти час і сили адміністратора в підтримці захисту домену. Блокування сервера вимагає виконання багатьох кроків, і, в залежності від ступеня блокування, це може зайняти кілька годин. Дана стаття насамперед написана для системних адміністраторів, які хочуть спростити управління IIS web сервером, використовуючи сценарії з Active Directory і Group Policy.

Microsoft Active Directory і Group Policy містять багатий набір інструментальних засобів і процедур, покликаних зберегти час і сили адміністратора в підтримці захисту домену. Блокування сервера вимагає виконання багатьох кроків, і, в залежності від ступеня блокування, це може зайняти кілька годин. Дана стаття насамперед написана для системних адміністраторів, які хочуть спростити управління IIS web сервером, використовуючи сценарії з Active Directory і Group Policy.

Загальний сценарій

Припустимо, що ваша компанія просить вас встановити IIS сервер, можливо в DMZ. Проводячи захист, ви хочете виконати всі рекомендовані процедури, сформульовані Мікрософт. Також вам потрібен недавно створений сервер. А як же бути інакше, адже бізнес розвивається на великих швидкостях. Через брак часу ми не досить часто замислюємося про захист. Це як раз той випадок, коли може стати в нагоді Active Directory.

Наприклад ...

У Group Policy є хороша особливість, з якою ви добре ознайомитеся, прочитавши цю статтю. Ця особливість - скрипти Startup і Shutdown. Вони не дуже відрізняються від сценаріїв використовуваних в NT, за винятком того, що Ви можете змусити ці політики звертатися до тих груп комп'ютерів, які ви вибрали.

Сценарії Startup налаштовується в Group Policy так, як ви хочете уявити собі директиви виконуються під час запуску. Ці сценарії виконуються перш, ніж користувач отримує ctrl-alt-del вікно реєстрації в системі, тому вони виконуються з привілеями локальний системний обліковий запис.

При всьому тому, що можна зробити в Group Policy існує багато того, що не можна зробити. Для всього того, що не можна робити існує VBScript! VBScript хороший тим, що розроблявся для допомоги адміністратору в автоматизації багатьох стандартних завдань адміністрування систем, включаючи (як в нашому випадку) блокування сервера. Наприклад, наступний код:

Dim Site Dim ServerName Dim SiteIndex ServerName = "LocalHost" SiteIndex = "1" Set Site = GetObject ( "IIS: //" & ServerName & "/ W3SVC /" & SiteIndex) Site.LogExtFileDate = True Site.LogExtFileTime = True Site. LogExtFileClientIp = True Site.LogExtFileUserName = True Site.LogExtFileSiteName = False Site.LogExtFileComputerName = False Site.LogExtFileServerIp = True Site.LogExtFileServerPort = True Site.LogExtFileMethod = True Site.LogExtFileUriStem = True Site.LogExtFileUriQuery = False Site.LogExtFileHttpStatus = False Site. LogExtFileWin32Status = False Site.LogExtFileBytesSent = False Site.LogExtFileBytesRecv = False Site.LogExtFileTimeTaken = False Site.LogExtFileProtocolVersion = False Site.LogExtFileUserAgent = True Site.LogExtFileCookie = False Site.LogExtFileReferer = False Site.SetInfo

Цей сценарій наказує IIS встановити реєстрацію. Зміна цього також же просто як зміна значень True і False. Скопіюйте та вставте цей код в записник, а потім збережіть його як "logging.vbs". Переконайтеся, що при збереженні ви змінили тип файлу на "Усі файли (*. *)", Щоб блокнот не додав до кінець розширення .txt.

Тепер, зайдіть в розглянутий web - сервер, і перегляньте в IISAdmin ваші параметри налаштування реєстрації. Потім, знайдіть спосіб отримати сценарій з web-сервера, (я рекомендую робочий стіл), клікніть на ньому і дивуйтеся. Ви можете сказати: "Нічого ж не сталося". Але це не так. Закрийте IISAdmin, а потім знову його відкрийте і перевірте параметри налаштування реєстрації. Клас! Тепер встановлено нові параметри налаштування, і все це Ви зробили, всього лише за допомогою клацання мишки на одному маленькому сценарії.

Застосування цього прикладу

Тепер за допомогою простого клацання мишки, ви здатні повністю автоматизувати процес відкриття IISAdmin, замість клацання мишкою по дереву, вкладках, кнопок і. т.п. Можете вірити чи не вірити, але для того, щоб змінити один або два параметри налаштування, потрібно чимало клацання мишкою, коли у вас купа роботи, яку необхідно зробити. Навіщо продовжувати робити те ж саме багато разів, якщо можна без цього обійтися. Автоматизуйте систему, щоб робити вашу роботу для вас.

Якби ви мали цілу армію таких сценаріїв, ии могли б автоматизувати практично всі що потрібно зробити на комп'ютері після установки операційної системи. Це обмежена тільки вашою уявою і вашої хитрістю при роботі з VBScript. При роботі з VBScript не потрібно особливої геніальності. Спершу, багато цікавого можна просто знайти на Google, надіславши запит "vbs". Друге це телеконференції із знаючими людьми. Третє це те, що я збираюся забезпечити Вас масою сценаріїв, які допоможуть вам виконати найбільш важливі процедури блокування, сформульовані Microsoft для IIS 5.0 і Windows 2000 і які не були охоплені в груповій політиці групи або в будь-яких шаблонах захисту.

Для початку, змініть параметри налаштування реєстрації вручну в IISAdmin так, щоб вони були повністю різні з встановленими нами (не має значення які ті параметри налаштування, необхідно тільки переконатися, що вони різні, і що Ви їх записали). Для чого все це, ми побачимо пізніше. Ви ще пам'ятаєте ті сценарії запуску в Group Policy, який ми згадали раніше? Ми збираємося використовувати ці установки для того, щоб наказати Windows виконати, описані вище сценарії, використовуючи сценарії запуску в Group Policy. Далі скопіюйте цей сценарій на який-небудь ресурс в мережі.

Тепер необхідно зробити доступним каталог з вашим сценарієм. Переконайтеся, що ви записали його мережевий шлях. Давайте увійдемо в Group Policy. Start -> Programs -> Administrative Tools -> Active Directory Users and Computers і Ви побачите на екрані щось на зразок цього:

Майте на увазі, що я приховав ім'я домену та додав доменні комп'ютери як Organizational Unit (OU). Ви не побачите це на вашому моніторі. Створіть новий OU і назвіть його "Bob". Добре, можливо "Lockdown" був би більш відповідним. Тепер клацніть правою кнопкою миші на "Lockdown" OU, виберіть пункт властивості, а у вікні виберіть вкладку Group Policy.

Натисніть кнопку NEW, яка створює нову групову політику, потім змініть ім'я цієї політики на "Lockdown". Відредагуйте нову політику, що викличе наступне вікно:

Виберіть "Computer Configuration", щоб розгорнути "Windows Settings", після натисніть на Scripts (Startup / Shutdown), а потім почекайте і зробіть подвійне клацання на Startup. Ці дії викличуть наступне вікно:

Додайте новий сценарій. В даному випадку ви не повинні хвилюватися про передачу чогось в параметри сценарію, т.к параметрів просто немає. Так натиснувши на кнопці Browse, і виконавши огляд мережевого ресурсу, ви зберегли ваш сценарій, а вибравши його, натиснули на кнопку ОК. Тепер це має з'явитися в полі "Script Name". Далі закрийте всі вікна, включаючи вікно Group Policy, а потім додайте ім'я web-сервера в "Lockdown" organizational unit. Одного разу виконайте примусовий відповідь від ваших контролерів домену (передбачається, що їх більше одного), потім перезавантажте web-сервер. Коли він перезавантажиться, Ви зможете побачити, як виконується сценарій Startup. Увійдіть в систему, і перевірте ваші параметри налаштування реєстрації. Супер! Вони були автоматично встановлені для вас! Кожен раз при завантаженні, ці сценарії змінюють параметри налаштування, і таким чином здійснюватимуть політику. Навіть якщо інший адміністратор пізніше змінить їх, то це не буде мати значення тому, після перезавантаження, політика поверне всі налаштування до свого попереднього стану. Запам'ятайте все це, щоб не шукати відповіді на запитання, чому після перезавантаження не збереглися ті параметри, яке ви міняли.

додаткові сценарії

Це тільки одна процедура, рекомендована компанією Мікрософт, для блокування вашого сервера, але якщо у вас виконана установка Windows по умовчання, то можна зробити набагато більше. Я включив деякі сценарії , Окремо виконують більшість процедур, описаних в документації компанії Microsoft, а також кілька додаткових. Нижче описаний один з найбільш цікавих сценаріїв:

Const HKEY_CLASSES_ROOT = & H80000000 Const HKEY_CURRENT_USER = & H80000001 Const HKEY_LOCAL_MACHINE = & H80000002 Const HKEY_USERS = & H80000003 Const HKEY_CURRENT_CONFIG = & H80000005 Const HKEY_DYN_DATA = & H80000006 Const REG_SZ = 1 Const REG_EXPAND_SZ = 2 Const REG_BINARY = 3 Const REG_DWORD = 4 Const REG_MULTI_SZ = 7 Set objRegNT = GetObject ( " winmgmts: // localhost / root / default: StdRegProv ") Set WshShell = WScript.CreateObject (" WScript.Shell ") Set objRegistry = GetObject (" winmgmts: "& Computer &" root \ default: StdRegProv ") sNetworkCards =" Software \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards "RC = objRegistry.EnumKey (HKEY_LOCAL_MACHINE, sNetworkCards, sCardNumbers) If (RC = 0) And (Err.Number = 0) Then for q = lbound (sCardNumbers) to ubound (sCardNumbers) sNetCard = "Software \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards \" & sCardNumbers (q) RCB = objRegistry.GetStringValue (HKEY_LOCAL_MACHINE, sNetCard, "ServiceName", sService) If (RCB> 0) then msgbox "Error Number:" & err .number & VbCrLf & "Description:" & err.description ,, "Error" Else myCardObj = sService SubKey = "SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces \" & myCardObj 'This sets the ports that are allowed to be open. You can totally modify these values. 3389 is for Terminal Server. TCPports = Array ( "3389", "80") RawIPAllowed = Array ( "53", "") ChangeTCPValues ​​= objRegNT.SetMultiStringValue (HKEY_LOCAL_MACHINE, Subkey, "TCPAllowedPorts", TCPports) ChangeProtoValues ​​= objRegNT.SetMultiStringValue (HKEY_LOCAL_MACHINE, Subkey, " RawIPAllowedProtocols ", RawIPAllowed) End If next End if WshShell.RegWrite" HKLM \ SYSTEM \ CurrentControlSet \ Services \ NetBT \ Parameters \ Interface s \ Tcpip_ "& myCardObj &" \ NetbiosOptions "," 2 "," REG_DWORD "WshShell.RegWrite" HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ EnableSec urityFilters "," 1 "," REG_DWORD "

Цей сценарій в основному використовує масив портів (3389, 80, 53), і наказує Windows NT, або 2000, дозволити трафік тільки цим портам, блокуючи всі інші. У Windows 2000 є редактор IPSecurity, який виконує більш детальний контроль над цими портами, однак цей механізм не доступний в NT, а вищезгадані механізми працюють на обох системах. Це можна вважати самої стандартної централізованої міжмережевий захистом. Мікрософт рекомендує, щоб сервери були розміщені в захищеному DMZ, однак, ці пропозиції є іншим рівнем захисту. Але все ж будьте обережні. Як тільки ви це застосуєте, домен з'єднається з сервером, і заблокується, тому що заблоковані всі необхідні порти. Очевидно, що для того щоб виправити це, ви можете в міру необхідності додавати або видаляти порти.

Нижче описаний ще один не менш цікавий сценарій:

On Error Resume Next Set objNetwork = WScript.CreateObject ( "WScript.Network") strComputerName = objNetwork.ComputerName 'This part changes the OS user name strNewUser = "IUSR_ACCT" strOldUser = ( "IUSR_" & strComputerName)' This part tells IIS what that new username is so it does not get confused Set oComputer = GetObject ( "WinNT: //" & strComputerName) Set oUser = GetObject ( "WinNT: //" & strComputerName & "/" & strOldUser & ", user") Set NewUser = oComputer.MoveHere (oUser.ADsPath, strNewUser) Dim WebServerObj Set WebServerObj = GetObject ( "IIS: // localhost / W3SVC") WebServerObj.Put "AnonymousUserName", "IUSR_ACCT" WebServerObj.Put "AnonymousPasswordSync", TRUE WebServerObj. SetInfo

Цей сценарій виконує пару різних дій, але спочатку необхідна невелика вхідна інформація. IIS використовує обліковий запис IUSR_, де - ім'я вашого комп'ютера. Це ім'я користувача вельми імовірно, якщо Ви здатні отримати ім'я хоста машини. Це також означає, що якщо нападник запитував пароль, то він просто міг використовувати обліковий запис (IUSR _ machinename>) і неодноразово вводити неправильні паролі, поки заблокована обліковий запис. При деяких умовах і в залежності від вашої політики блокування це може привести до відмови в обслуговуванні. Для усунення цього Ви повинні змінити на машині значення облікового запису IUSR _ machinename>, а потім змінити ім'я користувача в утиліті IISAdmin. Все це вимагає дуже багато часу, особливо якщо ви повинні налаштувати декілька серверів. Однак цей сценарій і групова політика роблять все це за один крок.

Ви можете додавати більшу кількість сценаріїв і інших параметрів настройки Group Policy, щоб далі блокувати сервер. Ви помітили, що все описане тут розбите на окремі сценарії? Це більш модульний шлях. Ви можете вибирати процедури, які були додані в сценарій / політику. Я віддаю належне Руссу Куперу і Кулленом Джонсону за їх роботу з VBScript і IIS. Вони створили сценарій, який повністю блокує IIS. У моїх сценаріях, я тільки розбив його на частини, і додав деякі процедури, специфічні для операційної системи. Ви можете побачити ці сценарії тут .

висновки

Ви могли б запитати, чому хтось залишає незахищеним Internet facing machine і передає ці зв'язки домену? Є дві відповіді на це питання. Перш за все, ви можете тимчасово приєднатися до цього домену, що б збереглися зміни, а потім від'єднатися. Але якщо ви маєте окремий домен для DMZ, то ви можете тільки остававаться приєднаними там. У першому сценарії, ви повинні були б переконатися тільки в тому, що ніякі інші домени не залишені на сервері, і усвідомити, що не існує механізм, який наказував би політику. Другий сценарій більш прийнятний з цієї причини, тому що при кожному перезавантаженні сервера, застосовується політика. Якщо ви сильно стурбовані зв'язками домену, ви можете просто послідовно виконувати кожен із сценаріїв на вашому локальному комп'ютері. Звичайно, це не повністю автоматизує процес, але досить ефективно і споживає набагато менше часу, ніж виконання операцій вручну. Також, ви можете створювати локальну політику, яка буде приводити в дію ці зміни, використовуючи MMC, і вибираючи вбудований Group Policy. Також як, зазначено раніше, ці сценарії не будуть охоплювати всі рекомендовані процедури. Наприклад, Мікрософт рекомендує, щоб дані для вашого сайту були поміщені в окремий сектор системного розділу. Наші сценарії не будуть перевіряти / коригувати цю проблему. Також, цими сценаріями не встановлюється аудит та інші функції. Вони краще виконуються, використовуючи шаблони захисту і / або групову політику для Windows 2000. Нарешті, ви можете знайти, що ці параметри налаштування порушують роботу деяких додатків, або завдають ще якісь проблеми. Ніколи не бійтеся. Ви можете відновити задану за замовчуванням конфігурацію, використовуючи ті ж самі методи. Зверніть увагу, я не кажу, що ви можете відновлювати попередні параметри налаштування. Дані сценарії не будуть робити цього. Сценарії для скасування змін, внесених сценаріями блокування, також включені в сценарії, описані в цій статті. Також як і з чим-небудь іншим, спершу перевірте їх в ізольованого програмного середовища Ви зможете побачити, що блокування сервера, так само проста як установка операційної системи, додавання цього до відповідного OU, а потім перезавантаження.

Ви помітили, що все описане тут розбите на окремі сценарії?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.