пятница, 10 декабря 2010 г.
different links
http://www.onlinecomputertips.com/networking/terminology.html
http://delphi.about.com/od/adptips2005/qt/udpvstcp.htm
пятница, 1 августа 2008 г.
security: СредстваДистанционногоАдминистрирования
Проблема решается с помощью инструментов дистанционного управления. Они незаменимы для работы с серверами в удаленных филиалах и для решения вопросов, возникающих в неурочные часы, из удобного домашнего офиса. В наше неспокойное время они позволят запереть серверы в безопасном помещении и управлять ими на расстоянии.
Дистанционное управление против дистанционного администрирования
Инструменты дистанционного управления входят в более обширную категорию инструментов дистанционного администрирования. Последние, как видно из их названия, обеспечивают выполнение административных задач на удаленных серверах. Например, с помощью утилиты Shutdown (shutdown.exe) из комплекта Microsoft Windows NT Server 4.0 Resource Kit можно остановить и перезапустить сетевые серверы, а утилита rkill.exe позволяет завершить процессы, выполняемые на удаленном сервере. Получив с помощью инструментов управления контроль над рабочим столом сервера через сеть, можно выполнять административные задачи дистанционно. Вместо того чтобы воздействовать на сервер с помощью команд, запускаемых на собственной рабочей станции, администратор выполняет команды на самом сервере, даже находясь на расстоянии многих километров от его монитора и клавиатуры.
С помощью нескольких полезных инструментов дистанционного управления, многие из которых распространяются бесплатно или за небольшую плату, можно выполнять различные задачи администрирования сервера, не покидая своего рабочего места. Я делю эти инструменты на две категории:
- графические инструменты дистанционного управления, такие, как Windows 2000 Server Terminal Services и Virtual Network Computing (VNC), которые переносят рабочий стол удаленного сервера на локальный компьютер;
- инструменты дистанционного управления, запускаемые из командной строки, такие, как Remote Command, telnet, Remote Shell и Remote Console, которые обеспечивают выполнение текстовых команд на удаленном сервере.
Terminal Services
Первая встроенная технология дистанционного управления от Microsoft, Terminal Services, появилась в Windows 2000 Server. В прошлом Terminal Services можно было получить только в специальной редакции NT под названием NT Server 4.0, Terminal Server Edition (WTS). Terminal Services предполагалось использовать в основном в качестве технологии сервера приложений (как и продукт Citrix WinFrame, предшественник Terminal Services). Кроме того, в Terminal Services реализован режим дистанционного администрирования, который позволяет двум администраторам одновременно управлять консолью сервера через сетевое соединение.
По умолчанию Terminal Services не устанавливается вместе с Windows 2000 Server, но владельцы базовой лицензии на продукт могут инсталлировать и использовать службу в режиме дистанционного администрирования (режим дистанционного администрирования - стандартный компонент установки версии Windows .NET Server, ранее известной как Whistler). Со времени появления Windows 2000 я рекомендовал администраторам запускать Terminal Services в режиме дистанционного администрирования на каждой машине Windows 2000, за исключением случаев, о которых будет рассказано ниже, когда лучше применить VNC. Установить Terminal Services просто. Достаточно открыть приложение Add/Remove Programs панели управления и щелкнуть на закладке Add/Remove Windows Components. Затем нужно установить флажок Terminal Services и щелкнуть на кнопке Next. В ответ на запрос мастера Windows Components Wizard о том, какой режим Terminal Services следует использовать, необходимо выбрать вариант Remote administration mode.
Однажды воспользовавшись Terminal Services, от этой службы трудно отказаться. С помощью клиента Terminal Services можно запустить несколько окон и одновременно удаленно администрировать несколько серверов. Клиентская программа Terminal Services совместима с большинством версий Windows, в том числе с NT 3.51 и Windows 95. Независимые поставщики (например, Citrix) предлагают клиентские программы для платформ, отличных от Windows. Клиентскую программу можно развернуть на весь экран, и настольный компьютер будет выглядеть как консоль сервера.
Virtual Network Computing (VNC)
VNC - один из малоизвестных, но эффективных инструментов администратора: одни специалисты знают и широко применяют его, другие никогда не слышали о VNC и не понимают причины ажиотажа. В целом, VNC - кросс-платформенный инструмент дистанционного администрирования, с помощью которого рабочий стол сервера можно отобразить на дисплее своего компьютера, независимо от серверной операционной системы. На Экране 1 показано соединение VNC с удаленной машиной Windows 2000 Server.
Экран 1. Соединение VNC с удаленной машиной Windows 2000 Server.
VNC разработан в лаборатории AT&T Laboratories Cambridge, распространяется бесплатно при условиях соблюдения лицензии GNU General Public License (информация о лицензии GNU General Public License опубликована по адресу: http://www.gnu.org/copyleft/gpl.html). Загрузить VNC можно по адресу: http://www.uk.research.att.com/vnc/index.html. На сайте имеется документация, исходные тексты и другая информация. При распаковывании загруженного дистрибутивного файла формируется две папки:
- для программы просмотра VNC - единственного исполняемого файла размером менее 175 Кбайт;
- для VNC-сервера - полного пакета установки.
Запустить программу просмотра просто: нужно дважды щелкнуть на ней и ввести имя сервера, с которым необходимо установить связь. Если на удаленном сервере уже работает серверная программа VNC, то через несколько секунд все будет готово для дистанционного управления сервером.
Процедура инсталляции VNC-сервера тоже не намного сложнее. Достаточно дважды щелкнуть на файле setup.exe и следовать приглашениям мастера установки, чтобы инсталлировать как сервер, так и программу просмотра. На данном этапе сервер доступен только в интерактивном режиме, т. е. его можно запустить лишь вручную. Ручной запуск для администрирования удаленного сервера неудобен: VNC-сервер лучше запускать автоматически. Для этого достаточно щелкнуть на значке Start Menu программы VNC и настроить VNC for Windows (WinVNC) на работу в качестве службы, с учетной записью Windows 2000 или NT 4.0 LocalSystem, автоматически запускаемой при старте сервера (автоматический запуск - функция операционной системы; она работает не на всех машинах: например, на Macintosh такой функции нет). После перезапуска или (если служба используется в первый раз) ручного запуска, служба VNC просит назначить пароль сеанса и другие параметры конфигурации (см. Экран 2).
Экран 2. Параметры конфигурирования службы WinVNC.
После этого новый сервер VNC готов к работе. Нужно открыть программу просмотра VNC на рабочей станции, ввести имя VNC-сервера и пароль сеанса и можно приступать к дистанционному администрированию. По умолчанию разрешается установить лишь одно удаленное соединение VNC с каждым сервером. Если поступает запрос на новое соединение, VNC-сервер автоматически разрывает текущий сеанс и организует новый. Это может вызвать существенные неудобства, если администратор подключается к серверу в середине сеанса, установленного другим администратором. Кроме того, при разрыве соединения VNC не выполняет процедуру выхода для первого администратора, и второй администратор видит все, что делал его коллега. В документации VNC объясняется, как настроить VNC-сервер на совместное использование соединений. В результате несколько администраторов смогут одновременно подключиться к серверу, и всем им будет представлен одинаковый удаленный рабочий стол.
В этой особенности состоит главное различие между VNC и Terminal Services. С помощью Terminal Services два администратора могут одновременно установить соединение с одним сервером, и каждый из них будет работать с уникальным рабочим столом. VNC обеспечивает одновременное подключение двух администраторов, но им придется совместно пользоваться мышью и клавиатурой одного рабочего стола.
Terminal Services или VNC?
Учитывая, что технология Terminal Services встроена в Windows 2000, нуждаются ли администраторы сетей Windows 2000 в VNC? Безусловно, да. По-видимому, в однородной сети Windows 2000 лучше всего использовать Terminal Services. Это бесплатный продукт, поставляемый на одном компакт-диске с Windows 2000 Server, достаточно удобный для дистанционного администрирования. Но в настоящее время лишь в очень немногих средах применяется единственная операционная система. Главное преимущество VNC - кросс-платформенная совместимость, благодаря которой с одного удаленного клиента можно администрировать серверы, работающие на Windows 2000, NT, Linux и многочисленных разновидностях Unix. Такой многофункциональный и в то же время бесплатный продукт трудно превзойти.
Применение VNC и Terminal Services не приводит к значительному снижению производительности. Как правило, эти инструменты потребляют лишь небольшую долю ресурсов процессора, очень мало памяти и почти не увеличивают нагрузку на дисковую подсистему ввода/вывода. В этом отношении они на голову выше решений, в большей степени ориентированных на настольные компьютеры (например, pcAnywhere компании Symantec). VNC обеспечивает надежную информационную защиту благодаря использованию протокола аутентификации с квитированием, имеющего много общего с Microsoft Challenge Handshake Authentication Protocol (MSCHAP), собственным протоколом аутентификации NT. Кроме того, как VNC, так и Terminal Services располагают клиентом на базе Windows CE, предоставляющим возможности истинно дистанционного администрирования.
Тем не менее между VNC и Terminal Services существует несколько важных различий. Эти различия относятся к управлению удаленным рабочим столом, технической поддержке продуктов, ограничениям операционной системы и быстродействию.
Управление удаленным рабочим столом. Как отмечалось выше, VNC предоставляет лишь один дистанционно управляемый рабочий стол, независимо от числа разрешенных соединений. Terminal Services позволяет двум администраторам одновременно подключиться к серверу и предоставляет каждому из них собственный рабочий стол.
Техническая поддержка. В отличие от производителя Terminal Services, пользователи которой получают поддержку от Microsoft, ни одна компания технологию VNC не поддерживает. Однако пользователи могут загрузить исходный текст VNC и настроить инструмент на конкретное применение. Получить исходный текст Terminal Services значительно труднее.
Ограничения операционной системы. Серверная программа Terminal Services поставляется только в составе Windows 2000 Server и более поздних версий. Но клиентские программы работают почти на любой 16- и 32-разрядной платформе. Программа просмотра и сервер VNC совместимы почти со всеми 32-разрядными операционными системами Windows, в том числе NT Server 4.0, NT Workstation 4.0 и Windows 9.x. Программа просмотра и сервер работают и на NT 3.51 (в режиме с ограниченной функциональностью). Мне удалось успешно запустить сервер VNC даже на третьей бета-версии .NET Server. Программа просмотра и сервер VNC также работают на системах Linux и Unix.
Скорость. Процедуры дистанционного администрирования VNC чуть медленнее, чем Terminal Services. Иногда приходится ждать, когда VNC обновит удаленный дисплей.
Remote Command
Некоторое время назад разработчики Microsoft дополнили набор ресурсов Windows Server программой Remote Command (rcmd.exe). Утилиту Remote Command можно рассматривать как вариант Terminal Services или VNC, запускаемый из командной строки: она позволяет выполнять команды на удаленном сервере. Remote Command, несомненно, понравится тем администраторам, которые предпочитают пользоваться командой Net Use вместо графического интерфейса, чтобы подключиться к удаленному диску. Кроме того, небольшие операции, запускаемые из командной строки, гораздо быстрее выполняются с помощью Remote Command, нежели с использованием графического интерфейса.
Remote Command состоит из двух компонентов: rcmd.exe (клиентский компонент) и rcmdsvc.exe (серверный компонент). С помощью этих двух компонентов администратор может получить доступ к командной строке удаленного сервера, выполнить команды и завершить сеанс. Он также может инициировать однокомандный сеанс с автоматической регистрацией, выполнением одной команды и завершением связи. Например, команда
rcmd.exe \server1 net share maryj$=d:usersmaryjобеспечивает регистрацию на Server1 и предоставляет в общее пользование каталог D:usersmaryj под именем MaryJ$. Remote Command можно использовать в сценариях. С помощью сценариев, запускаемых на рабочей станции, можно администрировать один или несколько серверов. В большинстве продуктов Microsoft наряду с графическим интерфейсом предусмотрена и командная строка, поэтому основные задачи можно выполнить с помощью Remote Command.
Механизм защиты Remote Command довольно прост. Чтобы зарегистрироваться на удаленной машине, пользователи вводят те же учетные данные, что и для регистрации на локальном компьютере. Пользователи должны иметь право интерактивной регистрации на удаленной машине, и все действия производятся в соответствии с их полномочиями. По умолчанию Remote Command работает на сервере от имени учетной записи LocalSystem. Remote Command обслуживает 10 соединений одновременно, обеспечивая уникальную и независимую оболочку командной строки для каждого соединения.
Remote Command работает на сервере под учетной записью LocalSystem, поэтому с помощью данной утилиты сложно выполнить команды, требующие подключения к другому серверу. Например, чтобы корректно выполнить команду Net Use и сделать диск общим сетевым ресурсом, необходимо указать для Net Use альтернативные учетные данные.
Telnet
Корни telnet - в мире Unix, где утилита считается стандартным административным инструментом. По принципу работы telnet очень похожа на Remote Command, она также обеспечивает доступ к удаленному серверу из командной строки. Но в отличие от утилиты Remote Command, ориентированной на сети Microsoft, telnet основана на открытых стандартах. Существуют клиенты telnet для Palm PDA, устройств Windows CE и почти любых TCP/IP-совместимых машин; Remote Command работает только с Windows XP, Windows 2000 и NT.
Администраторы сетей с маршрутизаторами и коммутаторами, вероятно, знакомы с telnet, поскольку данная утилита - основной инструмент управления такими устройствами (хотя многие изготовители начинают встраивать в свои сетевые устройства административные интерфейсы на базе Web). Администраторам, которые привыкли работать с telnet, будет приятно узнать, что эту службу можно запустить и на серверах Windows. В действительности, Windows 2000 располагает встроенной службой telnet. В целях безопасности службу требуется запускать вручную. Систему можно настроить на автоматический запуск службы или запускать вручную в случае необходимости.
Служба telnet Windows 2000 обеспечивает работу двух соединений. Как правило, для дистанционного администрирования этого достаточно. Для дополнительных соединений можно использовать продукт Microsoft Windows Services for UNIX (SFU), который располагает более мощной службой telnet и может быть лицензирован для обслуживания большего числа соединений. Microsoft также выпустила утилиту командной строки telnet Server Administration для настройки режима аутентификации службы, порта TCP и других параметров. Значок утилиты расположен в разделе Administrative Tools панели управления. Microsoft не выпускает серверной программы telnet для NT, но в Internet нетрудно найти бесплатные и недорогие NT-совместимые серверы telnet. Telnet - почти идеальный инструмент для смешанной операционной среды, так как, скорее всего, служба уже работает на серверах, отличных от Windows. Но следует помнить, что telnet была разработана на ранних стадиях развития Internet, когда проблема безопасности не была столь актуальной. В telnet нет механизма шифрования - все данные пересылаются в текстовом формате.
По умолчанию в службе Microsoft telnet используется достаточно надежный метод аутентификации MSCHAP. Но его можно настроить на прием чисто текстовых паролей - совершенно незащищенный, но необходимый способ при обращении к telnet с компьютера, не совместимого с MSCHAP, например с настольной машины Unix. Telnet подходит для внутренних серверов, но мало кто рискнет использовать данную службу для серверов, подключенных к Internet. Это связано, прежде всего, с тем, что стандартный TCP-порт telnet (23) - первый порт, который атакует большинство взломщиков.
Remote Shell
Remote Shell - инструмент удаленного управления, запускаемый из командной строки, очень похожий на Remote Command и telnet. Remote Shell состоит из двух компонентов: серверного (rshsvc.exe) и клиентского (rsh.exe). Оба компонента входят в состав Microsoft Windows 2000 Server Resource Kit и набор ресурсов NT Server 4.0. Remote Shell - кросс-платформенный инструмент. Многие серверы Unix совместимы с Remote Shell, а большинство операционных систем с поддержкой TCP/IP располагает клиентом Remote Shell. Благодаря такой поддержке Remote Shell может быть альтернативой для Remote Command в гетерогенных средах. Однако Remote Shell защищена хуже, чем Remote Command и telnet.
В папке %systemroot%system32driversetc необходимо создать файл с именем RHOSTS для хранения списка компьютеров, на которых может работать rsh.exe, и имен пользователей, имеющих право запускать rsh.exe на конкретной машине. При попытке пользователя установить связь Rshsvc.exe выполняет поиск в этом файле в обратном порядке. Программа разрешит соединение только после того, как обнаружит имя компьютера и пользователя. Для обращения к Remote Shell пароля не требуется. Из-за слабых встроенных функций защиты Remote Shell многие администраторы предпочитают более надежные варианты инструмента производства независимых компаний. В частности, широко распространен пакет Secure Shell компании SSH Communications.
Remote Console
Функционально близкая к telnet утилита Remote Console отличается тем, что она не просто перенаправляет командную строку с сервера на компьютер, а позволяет управлять видеопамятью удаленного сервера и запускать такие полноэкранные приложения командной строки, как MS-DOS Edit. По умолчанию, утилитой могут пользоваться только члены группы Administrators сервера. Это ограничение можно снять, разрешив и другим пользователям подключаться к службе. Программное обеспечение и документацию Remote Console можно получить вместе с комплектом ресурсов Windows 2000 Server или NT Server 4.0.
Как выбрать инструмент?
Подбирая подходящий инструмент, следует тщательно взвесить потребности компании, а если вычислительная среда состоит из нескольких серверных операционных систем, отличных от Windows или дополняющих Windows 2000 и NT, необходимо учесть и возможность кросс-платформенного дистанционного администрирования. Рекомендуется использовать по крайней мере один графический инструмент дистанционного администрирования, такой, как Terminal Services или VNC. Во врезке "Большой выбор" приведена информация об особенностях других графических решений.
Кроме того, следует выбрать один из инструментов дистанционного администрирования с командной строкой. В средах Unix повсюду применяется telnet. Выбор telnet оправдан в тех организациях, где уже работают с Unix. С помощью Remote Command можно выполнять команды администрирования по одной. Эта утилита удобна для использования в сценариях и автоматических процедурах. Remote Shell совместима с различными платформами, хотя настройка режима безопасности на отдельных серверах может отнимать много времени. Remote Console позволяет дистанционно запускать приложения MS-DOS на полном экране.
Независимо от выбранного решения, необходимо проверить, подходит ли клиентское программное обеспечение, установив клиенты на управляющей рабочей станции как дома, так и в офисе. Записав программы установки различных клиентов на компакт-диск, их можно распространить среди администраторов предприятия или взять с собой в командировку (на всякий случай). Правильно подобранный набор инструментов дистанционного администрирования поможет в любое время устранить неполадки и обслуживать сервер из любого места, где бы ни находился администратор.
Большой выбор
В распоряжении администраторов Windows всегда был богатый набор графических инструментов дистанционного администрирования. Прошло немало времени с момента появления Virtual Network Computing (VNC), а многие организации по-прежнему используют программу pcAnywhere компании Symantec вместо встроенных терминальных служб Windows 2000 Server. Эффективность дистанционного администрирования очевидна, но выбрать оптимальный инструмент нелегко. Вот несколько советов.
- Избегайте решений, связанных с высокой нагрузкой на процессор. В частности, во время сеанса pcAnywhere нагрузка на процессор может возрасти на 20%.
- Выбирайте клиентскую программу дистанционного администрирования, с помощью которой можно одновременно управлять несколькими серверами с настольного компьютера. Такая возможность предусмотрена как в службе VNC, так и в Terminal Services.
- Выбирайте компактную клиентскую программу. Клиент VNC, как и Terminal Services, легко умещается на дискете.
- Выбирайте решение, которое позволяет администрировать все серверы с помощью одного клиента. В смешанной операционной среде предпочтительна кросс-платформенная служба VNC.
vmstat
ИМЯ
vmstat - выдает страницы по требованию и системную статистику.
СИНТАКСИС
vmstat [-fs] [-n namelist] [-l lines] [interval [count]]
ОПИСАНИЕ
Команда vmstat выдает некоторую статистику, хранимую системой в процессах, страницы по требованию и активность процессора и схем прерывания. Доступны три типа отчетов:
| (по умолчанию) | Суммарная инфрмация о ряде процессов в различных состояниях, активность листания, системная активность, эффективность цикла процессора. |
|---|---|
| -f | Выполняет ряд команд fork(2). |
| -s | Многословный листинг по активности листания памяти и схем прерывания. |
Если аргументы interval и count не заданы, то выдается полный список статистики с момента системной загрузки.
Если аргумент interval задан, то показывается ряд событий, имевших место за последние (interval)-секунд. Если count не определен, то выше описанный вывод повторяется для каждого интервала interval. Иначе, когда также определен аргумент count, информация высвечивается (count)-раз.
Среди других флагов, доступных для определения, имеются следующие:
| -c corefile | Использовать файл c именем corefile по адресу /dev/kmem. |
|---|---|
| -n namelist | Использовать файл с именем namelist как альтернативную таблицу символов вместо /xenix. |
| -l lines | Для дисплея, используемого по умолчанию, вставляет в отчет заголовок через каждые (lines)-строк (по умолчанию - 20). |
В отчете, выдаваемом по умолчанию, имеются следующие поля:
| procs | Число процессов, которые: r - находятся в очереди на выполнение; b - заблокированы в ожидании ресурсов; w - выключены из обмена. Эти значения всегда отражают текущую ситуацию, если даже высвечивается полная информация с момента загрузки. |
|---|---|
| paging | Сообщает о производительности системы при выполнении замещения страниц по требованию. Пока не будет высвечена полная информация с момента загрузки, эта информация усредняется по производительности на интервале в (interval)-секунд. |
| si | Число загруженных процессов. |
| so | Число выгруженных процессов. |
| ch | Совпадает кэш страницы. |
| cm | Отсутствует кэш страницы. |
| ffr | Читается страница системного файла. |
| swr | Читается страница области подкачки. |
| sww | Записывается страница области подкачки. |
| rec | Число страниц, восстановленных из свободного списка. |
| shf | Число страниц, коллективного пользования как "копия по записи" после команды fork. |
| shc | Число страниц, коллективного пользования согласно факту совпадения кэш. |
| cpy | Число скопированных страниц коллективного пользования. |
| pf | Число страниц, на которые был выдан отказ. |
| system | Сообщает об активности основной системы. Пока не будет высвечена суммарная информация с момента загрузки, эти позиции показывают средние значения за последние (interval)-секунд. |
| in | Число прерываний устройств (несинхронных). |
| sy | Число системных вызовов. |
| cs | Число переключений контекста. |
| cpu | Процент цикла процессора, затрачиваемый на различные режимы: us - Пользователь; su - Система; id - Ожидание. |
В некоторых системах эта информация не может быть показана.
Отчеты по опциям -f и -s представляют собой ряд строк, каждая из которых представлена в форме:
number description
(число описание),
которая обозначает, что (number)-элементов, описанных параметром description, имеет место (или с момента загрузки, или за последние (interval)-секунд)). Эти отчеты должны быть самодостаточными.
ФАЙЛЫ
/xenix Список имен по умолчанию.
/dev/kmem Источник статистики, принятый по умолчанию.
ЗАМЕЧАНИЯ
Эта утилита используется только в машинах на базе процессора 80386 и может быть не включена в вашу систему.
Структура AD
Объекты
Active Directory (AD) имеет иерархическую структуру, состоящую из объектов. Объекты разделяются на три основные категории: ресурсы (например принтеры), службы (например, электронная почта) и люди (учётные записи пользователей и групп пользователей). Active Directory предоставляет информацию об объектах, позволяет организовывать объекты, управлять доступом к ним, а также устанавливает правила безопасности.
Каждый объект представляет отдельную сущность — пользователя, компьютер, принтер, приложение или общую сетевую папку — и его атрибуты. Объекты могут также быть контейнерами для других объектов. Объект уникально идентифицируется своим именем и имеет набор атрибутов — характеристик и данных, которые объект может содержать, — которые зависят от типа объекта. Атрибуты являются составляющей базовой структуры объекта и определяются в схеме. Схема определяет, какие типы объектов могут существовать в AD.
Сама схема состоит из двух типов объектов: объекты классов схемы и объекты атрибутов схемы. Один объект класса схемы определяет один тип объекта Active Directory (например, объект «Пользователь»), а один объект атрибута схемы определяет атрибут, который объект может иметь.
Каждый объект атрибута может быть использован в нескольких разных объектах классов схемы. Эти объекты называются объектами схемы (или метаданными) и позволяют изменять и дополнять схему, когда это необходимо. Однако каждый объект схемы является частью определений объектов Active Directory, поэтому деактивация или изменение этих объектов может иметь серьёзные последствия, так как в результате этих действий будет изменена структура AD. Изменение объекта схемы автоматически распространяется в Active Directory. Будучи однажды созданным объект схемы не может быть удалён, он может быть только деактивирован. Обычно все изменения схемы тщательно планируются.
Леса, деревья и домены
Верхним уровнем структуры является лес — совокупность всех объектов, атрибутов объектов и правил (синтаксиса атрибутов) в Active Directory. Лес содержит одно или несколько деревьев, связанных транзитивными отношениями доверия. Дерево содержит один или несколько доменов, также связанных в иерархию транзитивными отношениями доверия. Домены идентифицируются своими структурами имён DNS — пространствами имён.
Объекты в домене могут быть сгруппированы в контейнеры — подразделения. Подразделения позволяют создавать иерархию внутри домена, упрощают его администрирование и позволяют моделировать организационную и/или географическую структуры компании в Active Directory. Подразделения могут содержать другие подразделения. Корпорация Майкрософт рекомендует использовать как можно меньше доменов в Active Directory, а для структурирования AD и политик использовать подразделения. Часто групповые политики применяются именно к подразделениям. Групповые политики сами являются объектами. Подразделение является самым низким уровнем, на котором могут делегироваться административные полномочия.
Другим способом деления AD являются «сайты», которые являются способом физической (а не логической) группировки на основе подсетей IP. Сайты подразделяются на имеющие подключения по низкоскоростным каналам (например по каналам глобальных сетей, с помощью виртуальных частных сетей) и по высокоскоростным каналам (например через локальную сеть). Сайт может содержать один или несколько доменов, а домен может содержать один или несколько сайтов. При проектировании Active Directory важно учитывать сетевой трафик, создающийся при синхронизации данных AD между сайтами.
Ключевым решением при проектировании AD является решение о разделении информационной инфраструктуры на иерархические домены и подразделения верхнего уровня. Типичными моделями, используемыми для такого разделения, являются модели разделения по функциональным подразделениям компании, по географическому положению и по ролям в информационной инфраструктуре компании. Часто используются комбинации этих моделей.
Физическая структура и репликация
Физически информация AD хранится на одном или нескольких равнозначных контроллерах доменов, заменивших использовавшиеся в Windows NT основной и резервные контроллеры домена (хотя для выполнения некоторых операций сохраняется и так называемый сервер «операций с одним главным сервером», который может эмулировать главный контроллер домена). Каждый контроллер домена хранит копию данных AD, предназначенную для чтения и записи. Изменения, сделанные на одном контроллере, синхронизируются на все контроллеры домена при репликации. Серверы, на которых сама служба Active Directory не установлена, но которые при этом входят в домен AD, называются рядовыми серверами.
Репликация AD выполняется по запросу. Служба KCC создаёт топологию репликации, которая использует сайты, определённые в системе, для управления трафиком. Внутрисайтовая репликация выполняется часто и автоматически с помощью средства проверки согласованности (уведомлением партеров по репликации об изменениях). Репликация между сайтами может быть настроена для каждого канала сайта (в зависимости от качества канала) — различная «оценка» (или «стоимость») может быть назначена каждому каналу (например DS3, T1, ISDN и т. д.), и трафик репликации будет ограничен, передаваться по расписанию и маршрутизироваться в соответствии с назначенной оценкой канала. Данные репликации могут транзитивно передаваться через несколько сайтов через мосты связи сайтов, если «оценка» низка, хотя AD автоматически назначает более низкую оценку для связей «сайт-сайт», чем для транзитивных соединений. Репликация сайт-сайт выполняется серверами-плацдармами в каждом сайте, которые затем реплицируют изменения на каждый контроллер домена своего сайта. Внутридоменная репликация проходит по протоколу RPC по IP, междоменная — может использовать также протокол SMTP.
Если структура Active Directory содержит несколько доменов, для решения задачи поиска объектов используется глобальный каталог: контроллер домена, содержащий все объекты леса, но с ограниченным набором атрибутов (неполная реплика). Каталог хранится на указанных серверах глобального каталога и обслуживает междоменные запросы.
Возможность операций с одним главным компьютером позволяет обрабатывать запросы, когда репликация с несколькими главными компьютерами недопустима. Есть пять типов таких операций: эмуляция главного контроллера домена (PDC-эмулятор), главный компьютер относительного идентификатора (мастер относительных идентификаторов или RID-мастер), главный компьютер инфраструктуры (мастер инфраструктуры), главный компьютер схемы (мастер схемы) и главный компьютер именования домена (мастер именования доменов). Первые три роли уникальны в рамках домена, последние две — уникальны в рамках всего леса.
Базу AD можно разделить на три логические хранилища или «раздела». «Схема» является шаблоном для AD и определяет все типы объектов, их классы и атрибуты, синтаксис атрибутов (все деревья находятся в одном лесу, потому что у них одна схема). «Конфигурация» является структурой леса и деревьев AD. «Домен» хранит всю информацию об объектах, созданных в этом домене. Первые два хранилища реплицируются на все контроллеры доменов в лесу, третий раздел полностью реплицируется между репликами контроллеров в рамках каждого домена и частично — на сервера глобального каталога.
База данных AD (хранилище каталогов) в Windows 2000 использует расширяемую подсистему хранения Microsoft Jet Blue, которая позволяет для каждого контроллера домена иметь базу размером до 16 терабайт и 1 миллиард объектов (теоретическое ограничение, практические тесты выполнялись только с приблизительно 100 миллионами объектов). Файл базы называется NTDS.DIT и имеет две основные таблицы — таблицу данных и таблицу связей. В Windows Server 2003 добавлена ещё одна таблица для обеспечения уникальности экземпляров дескрипторов безопасности.
Active Directory
Active Directory является LDAP-совместимой реализацией службы каталогов корпорации Майкрософт для операционных систем семейства Windows NT. Active Directory позволяет администраторам использовать групповые политики (GPO) для обеспечения единообразия настройки пользовательской рабочей среды, развёртывать ПО на множестве компьютеров (через групповые политики или посредством Microsoft Systems Management Server 2003 (или System Center Configuration Manager)), устанавливать обновления ОС, прикладного и серверного ПО на всех компьютерах в сети (с использованием Windows Server Update Services (WSUS); Software Update Services (SUS) ранее). Active Directory хранит данные и настройки среды в централизованной базе данных. Сети Active Directory могут быть различного размера: от нескольких сотен до нескольких миллионов объектов.
Представление Active Directory состоялось в 1996 году, продукт был впервые выпущен с Windows 2000 Server, а затем был модифицирован и улучшен при выпуске сначала Windows Server 2003, затем Windows Server 2003 R2.
В отличие от версий Windows до Windows 2000, которые использовали в основном протокол NetBIOS для сетевого взаимодействия, служба Active Directory интегрирована с DNS и TCP/IP. DNS-сервер, обслуживающий Active Directory, должен быть совместим c BIND версии 8.1.2 или более поздней, сервер должен поддерживать записи типа SRV (RFC 2052) и протокол динамических обновлений (RFC 2136).
LDAP
LDAP (англ. Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам») — это сетевой протокол для доступа к службе каталогов X.500, разработанный IETF как облегчённый вариант разработанного ITU-T протокола DAP. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей. Обычно LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Для LDAP-сеансов, инкапсулированных в SSL, обычно используется порт 636.
Всякая запись в каталоге LDAP состоит из одного или нескольких атрибутов и обладает уникальным именем (DN — англ. Distinguished Name). Уникальное имя может выглядеть, например, следующим образом: «cn=Иван Петров, ou=Сотрудники, dc=example, dc=com». Уникальное имя состоит из одного или нескольких относительных уникальных имен (RDN — англ. Relative Distinguished Name), разделённых запятой. Относительное уникальное имя имеет вид ИмяАтрибута=значение. На одном уровне каталога не может существовать двух записей с одинаковыми относительными уникальными именами. В силу такой структуры уникального имени записи в каталоге LDAP можно легко представить в виде дерева.
Запись может состоять только из тех атрибутов, которые определены в описании класса записи (object class), которые, в свою очередь, объединены в схемы (schema). В схеме определено, какие атрибуты являются для данного класса обязательными, а какие — опциональными. Также схема определяет тип и правила сравнения атрибутов. Каждый атрибут записи может хранить несколько значений.
Стандарты
Протокол LDAP определён в следующих RFC:
- RFC 4510 — Lightweight Directory Access Protocol (LDAP) Technical Specification Roadmap (заменяет RFC 3377)
- RFC 4511 — Lightweight Directory Access Protocol (LDAP): The Protocol
- RFC 4512 — Lightweight Directory Access Protocol (LDAP): Directory Information Models
- RFC 4513 — Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms
- RFC 4514 — Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names
- RFC 4515 — Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters
- RFC 4516 — Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator
- RFC 4517 — Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules
- RFC 4518 — Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation
- RFC 4519 — Lightweight Directory Access Protocol (LDAP): Schema for User Applications
- RFC 4520 (aka BCP 64) — Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP) (заменяет RFC 3383)
- RFC 4521 (aka BCP 118) — Considerations for Lightweight Directory Access Protocol (LDAP) Extension
Серверная часть
LDAP является широко используемым стандартом. Одной из наиболее популярных его реализаций является Active Directory — служба от компании Microsoft, предназначенная для централизации управления сетями Windows. Свои реализации служб каталогов на основе LDAP предлагают и другие крупные компании, например, Novell и Sun. Существуют также свободно распространяемые открытые реализации LDAP, например, OpenLDAP.
Клиентская часть
В качестве клиентов LDAP выступают как адресные книги почтовых клиентов, так и back-end'ы различных сетевых служб (серверы DNS, SMTP, Samba, UTS и т. д.).
