Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 116, АВГУСТ 2008 г.

Без окон, без дверей

Сергей «grinder» Яремчук (grinder@ua.fm, tux.in.ua)

Хакер, номер #116, стр. 116-116-1

Windows 2008 Server Core: Windows без графической оболочки

Почти с момента своего появления Windows прочно связывают с графическим интерфейсом. Окна – неотъемлемая часть рабочего окружения, ядра и имиджа этой ОС. Но с выходом Win2k8 все изменилось. Теперь стало возможным установить и использовать сервер без графики.

А смысл?

Если на десктопах графический интерфейс упрощает работу пользователям, делая систему более дружелюбной, что весьма радует новичков, то на серверах все обстоит с точностью до наоборот. Администраторы Windows вынуждены мириться с присутствием компонентов, которые на порядок завышали системные требования к оборудованию, занимали место на системном диске, но при этом не приносили какой-либо существенной пользы. Наличие лишних приложений и служб на серверных ОС, выполняющих критические задачи, увеличивало количество потенциальных уязвимостей и упрощало задачу взломщику. Между тем, администратор Unix мог самостоятельно выбрать все необходимые компоненты, получая в результате полностью оптимизированную под конкретные нужды систему.

Появление в Win2k8 режима Server Core все изменило. Теперь, если при установке сервера выбрать Server Core Installation, мы получим систему без графического интерфейса и с минимальным набором компонентов. Такой сервер априори будет иметь большую защищенность по сравнению с полным вариантом. И для установки он потребует всего 1 Гб места на харде, плюс место для повседневной эксплуатации в выбранной роли.

На сайте Microsoft вариант Server Core обозвали «с ограниченным функциональным назначением». Дело в том, что пока в этом режиме можно реализовать не все роли. И, в зависимости от версии сервера, некоторые роли будут иметь лимитированное количество функций. На сегодняшний день в Server Core реализовано только семь ролей:

  • Службы домена Active Directory (AD);
  • Службы Active Directory Lightweight Directory Services (AD LDS);
  • Сервер DHCP;
  • Сервер DNS;
  • Файловый сервер (File Server);
  • Сервер печати (Print Server);
  • Службы потокового мультимедиа (Media Services).

В ограниченной функциональности доступна и роль веб-сервера – Web Services (IIS). Отсутствие ASP.NET не позволит использовать динамический контент, но сценарии на ASP работать будут. Это единственный режим, реализованный в Server Core для Win2k8 Web Server. В Itanium-Based Systems вариант Server Core отсутствует вообще. Полный список доступных ролей, в зависимости от версии Win2k8, смотри в документе «Compare Server Core Installation Options», который расположен по адресу www.microsoft.com/windowsserver2008/en/us/compare-core-installation.aspx.

Кроме того, для Server Core доступен и ряд компонентов (Features) – Network Load Balancing, Windows Backup, Windows Bitlocker Drive Encryption, WINS и некоторые другие. Список ролей в Server Core уже вызывает споры. С одной стороны доносится мнение, что список не мешает и расширить, но находятся и сторонники оставить все, как есть. Мол, увеличение доступных ролей может испортить неплохую задумку и еще более запутает ситуацию с настройками.

Впрочем, несмотря на кажущиеся ограничения, в списке ролей охвачен основной функционал, ради которого чаще всего и устанавливают Windows Server.

Установка в режиме Server Core практически не отличается от обычной установки Win2k8 и не требует никаких специальных действий. Учитывая, что размеры инсталлируемой системы меньше, весь процесс занимает от силы минут десять (ход установки был подробно рассмотрен в ][ 05.2008). В самом первом окне при выборе клавиатурной раскладки следует оставить EN, так как после загрузки у тебя ничего не будет, кроме строки терминала. Активировать систему можно как во время установки (в третьем окне мастера), так и уже в рабочей системе. Если не произвести активацию, то через 14 дней большая часть функций будет недоступна. Для этого заменяем, если нужно, введенный при установке или автоматически полученный ключ:

> slmgr.vbs -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

И активируем сервер:

> slmgr.vbs -ato

С некоторой задержкой появится окно с результатом. В случае успеха в самом низу должна появиться строка «Product Activated successfully». Чтобы узнать все параметры slmgr.vbs, используй ключ «/?».

Перед установкой следует четко определиться с необходимыми ролями и компонентами. Обновить предыдущую версию до Server Core нельзя, систему необходимо устанавливать «вчистую». Нельзя и преобразовать систему до полного варианта (или наоборот). Поэтому если в будущем понадобится некоторая функциональность, отсутствующая в Server Core, систему придется переустанавливать.

Первоначальные настройки

После установки нажимаем <Ctrl+Alt+Del> и видим только один значок «Other User». Первую регистрацию нужно выполнять под учетной записью «Administrator» с пустым паролем (на следующем шаге его предложат сменить). Так как защита сервера зависит, в том числе, и от устойчивости пароля админа, простые пароли запрещены политиками. Пароль должен содержать буквы, цифры или специальные символы – иначе он не будет принят.

Первоначальная конфигурация задается с помощью командной строки; затем сервером можно управлять удаленно, используя подключение к серверу терминалов, консоль управления MMC или другие инструменты.

После регистрации ты увидишь строгую консоль без рюшечек-кружавчиков. Непривычно, – но не этого ли мы добивались? Если одной консоли недостаточно, просто набери «start» и получишь еще одну. Хотя несколько графических приложений в Server Core все-таки имеются. Например, нажав <Ctrl+Shift+Esc> или <Ctrl+Alt+Del> -> Start Task Manager, ты вызовешь привычный Диспетчер задач (Task Manager) со всеми надлежащими ему функциями. Но в Server Core от него есть еще одна польза. Если по ошибке будут закрыты все окна терминалов, то открыть новое можно, выбрав в Диспетчере задач File -> New Task и в появившемся окне введя «cmd.exe». А набрав в консоли команду «notepad», ты сможешь делать пометки в Блокноте.

Драйвера большинства устройств уже включены в поставку Win2k8. Если какое-то устройство не работает, то драйвер устанавливается при помощи команды pnputil:

> pnputil -i –a file.inf

И по запросу перегружаемся.

Список модулей и драйверов можно получить, введя команду «driverquery» или «sc query type= driver» (пробел перед driver обязателен).

При загрузке мы уже установили пароль администратора, но его периодически следует менять. Это можно сделать так:

> net user administrator *

Звездочка использована, чтобы вывод пароля не показывался на экране. Если через плечо никто не подглядывает, то можно ввести «net user administrator P@sSw0rd». Или просто нажать <Ctrl+Alt+Del> и выбрать в появившемся окне пункт «Change a password».

После установки сетевые интерфейсы настраиваются автоматически при помощи DCHP, а если такового сервера в Сети не обнаруживается, – машина произвольно инициализирует имя и IP-адрес в диапазоне 169.254.x.x. Текущие настройки сети можно просмотреть, введя «ipconfig /all».

Если в Сети используются статические IP-адреса, то назначить адрес компьютеру можно при помощи netsh. Эта утилита была доступна и в предыдущих версиях Windows, но теперь, в виду отсутствия графических альтернатив, ее полномочия, да и возможности шире.

Сначала посмотрим, как в системе определились сетевые интерфейсы:

> netsh interface ipv4 show interfaces

IdxMetMTUStateName

-----------------------------------------

1504294967295connectedLoopback Pseudo-Interface 1

2201500connectedLocal Area Connection

В таблице нас интересует первый столбик Idx, который указывает на номер сетевого адаптера. В моем случае это «2». Теперь задаем адрес. Формат команды такой:

netsh interface ipv4 set address name="Idx" source=static \

address=StaticIP mask=SubnetMask gateway=DefaultGateway

Для примера зададим серверу IP-адрес 192.168.1.2; адрес шлюза пусть будет 192.168.1.1. Вводим:

> netsh interface ipv4 set address name="2" source=static \

address=192.168.1.2 mask=255.255.255.0 gateway=192.168.1.1

Настройки для IPv6 задаются аналогично. Учитывая важность службы DNS, особенно для работы в среде AD, следует обязательно указать и DNS сервер:

> netsh interface ipv4 add dnsserver name=2 \

address=192.168.1.158 index=1

Повторяем этот шаг для других DNS серверов, увеличивая на единицу значение index. Теперь проверяем его работу при помощи команды ping:

> ping www.ru

Команда «hostname» после установки покажет произвольно сгенерированное имя, вроде WIN-FA8GKHJPG53. Естественно, оно нам не подходит, поэтому переименовываем:

> netdom renamecomputer WIN-FA8GKHJPG53 /NewName:CORESRV

Как видишь, при переименовании потребуется ввести старое имя, полученное при помощи «hostname». Альтернативным вариантом будет использование WMI:

> wmic computersystem where name="WIN-FA8GKHJPG53" \

rename name="WINSRV1"

После этой операции потребуется перезагрузка:

> shutdown –r –t 0

Теперь осталось присоединить компьютер к домену и добавить доменного пользователя в локальную группу администраторов:

> netdom join CORESRV /domain:TESTDOMAIN /userd:SysAdmin \

/password:P@sSw0rd

> net localgroup administrators /add TESTDOMAIN\User

Опять перезагружаемся и приступаем к настройкам.

Настройки окружения

Некоторые настройки в Core Server производятся путем запуска команды «control», в качестве аргумента которой следует передать файл с расширением .cpl (Control Panel Library). Команда «dir *.cpl | more», введенная в каталоге Windows\System32, показала наличие всего двух таких файлов.

Некоторые сервисы зависят от точности хода часов компьютера. Особенно чувствителен к этому Kerberos, используемый AD. Для настройки даты и времени следует ввести команду:

> control timedate.cpl

После чего увидишь знакомое окно. Теперь переходим к изменению региональных установок:

> control intl.cpl

Здесь четыре вкладки, где можно установить формат времени, цифр и так далее, указать расположение, установить раскладку клавиатуры и системную локаль. Чтобы добавить русскую раскладку, выбираем Keyboards and Languages и, нажав кнопку Change keyboards, выбираем в списке нужную. Обрати внимание на вкладку Language Bar. Здесь можно указать расположение индикатора переключения раскладки. Еще одна кнопка («Install/Uninstall Languages») позволяет загрузить файлы для локализации меню и диалоговых окон.

В каталоге System32 находится полезный скрипт – scregedit.wsf, который позволяет настроить автоматическое обновление системы, Remote Desktop, IPSec, приоритеты DNS. Все параметры запуска скрипта можно просмотреть, введя «cscript scregedit.wsf /?». Эту команду следует выполнять в каталоге System32, иначе придется указывать абсолютный путь. Например, чтобы просмотреть текущие настройки автоматического обновления, используем:

> cscript scregedit.wsf /AU /v

Value not set

По умолчанию автоматическое обновление отключено. Использовав ключи «/au /?», узнаем доступные параметры. Для активации автоматического обновления следует ввести:

> cscript scregedit.wsf /AU 4

Отключить его также просто:

> cscript scregedit.wsf /AU 1

К сожалению, отсутствие GUI и каких-либо файлов настроек означает, что обновление будет производиться по принципу «все или ничего». Указать на отдельный компонент нет никакой возможности. Вероятно, выходом из ситуации является обновление через WSUS.

Разрешить подключения по протоколу Remote Desktop Protocol (RDP) для удаленного управления сервером нетрудно:

> cscript scregedit.wsf /AR 0

По умолчанию Windows Firewall (WF) активен и на всех интерфейсах блокирует входящие соединения. Поэтому нам нужно разрешить RDP-подключения. Для управления используем netsh с ключом 'advfirewall' (Advanced Firewall):

> netsh advfirewall firewall add rule name="TS Admin" \

protocol=TCP dir=in localport=3389 action=allow

Используем небезопасные подключения терминального сервиса:

> cscript scregedit.wsf /CS 0

Если вместо 0 указать 1, то для аутентификации будет задействован безопасный протокол CredSSP (Credential Security Service Provider), который кроме Win2k8 поддерживают Vista и WinXP SP3.

По умолчанию скринсейвер включен и активируется через 10 минут бездействия. При первых настройках, когда часто смотришь в мануал, это мешает. Чтобы его отключить, следует запустить программу regedt32 (именно без i) и установить значение ключа HKCU\ControlPanel\Desktop\ScreenSaveActive в 0.

Управление ролями и компонентами

Мы выполнили базовую установку и настроили общие параметры сервера. В режиме Server Core нет ролей и компонентов, установленных по умолчанию. Поэтому об этом необходимо позаботиться самостоятельно. Для настройки каждой применяются свои команды (что неудобно). Кроме того, нормальной документации для Server Core пока недостаточно.

Для просмотра списка доступных ролей и дополнительных компонентов, используемых программой установки Ocsetup.exe, набери следующую команду:

> oclist

Начнем с критической для работы многих сервисов роли DNS-сервера. Для установки вводим:

> start /w ocsetup DNS-Server-Core-Role

Учти, что название роли и компонента чувствительно к регистру.

Дополнительный ключ '/w' задерживает появление приглашения командной строки до тех пор, пока выполнение команды не завершится (пока установка не закончится). Чтобы удалить роль или компонент, просто добавь к команде ключ '/uninstall'. Дальнейшая настройка DNS производится удаленно при помощи консоли MMC или команды «dnscmd», все параметры которой можно узнать, введя «dnscmd /info». Добавим DNS зону с именем domain как primary зону:

> dnscmd /zoneadd "domain.local" /Primary \

/file "domain.local.dns"

Чтобы добавить запись A для узла comp1 с IP-адресом 192.168.1.5 к зоне domain.local, вводим:

> dnscmd /recordadd domain.local comp1 A 192.168.1.5

Использовав ключ '/zoneprint', можно просмотреть список зон, а для удаления записи вместо '/recordadd' пишем '/recorddelete'. Также следует разрешить автоматический запуск для установленной роли:

> sc config dns start= auto

Для развертывания DCHP-сервера набираем:

> start /w ocsetup DHCPServerCore

Для настройки параметров работы после его установки используем MMC на удаленной системе или локально, с помощью утилиты netsh.

Аналогично устанавливаются другие роли и компоненты. Исключения составляют только две роли. Первую – Streaming Media Services – необходимо предварительно скачать с сайта Microsoft (support.microsoft.com/kb/934518, вариант для Core) и затем установить msu-файл:

> start /w wusa /quiet Windows6.0-KB934518-x86-ServerCore.msu

После чего вывод oclist покажет наличие новой роли. Ставим и запускаем:

> start /w ocsetup MediaServer

> net start wmserver

Для удаленного управления Media Services рекомендуется использовать MMC-консоль, которую можно скачать на этой же странице.

И вторая роль – DCPromo – за неимением графического интерфейса требует наличия заранее подготовленного файла ответов. Формат файла будет отличаться, в зависимости от того, создается новый домен или контроллер подключается к уже имеющемуся. Узнать все параметры файла можно, запустив «dcpromo» с ключом '/?'. Для создания нового домена создадим файл unattend.txt такого содержания:

[DCInstall]

# Пароль админа, иначе пустой

AdministratorPassword = password

# Первый домен

ReplicaOrNewDomain = Domain

NewDomain=Forest

DomainNetBiosName = domain

# Имя

NewDomainDNSName = domain.local

AutoConfigDNS=Yes

DNSDelegation=Yes

DNSDelegationUserName=dnsuser

DNSDelegationPassword=Passw0rd

# Перезагрузка вручную

RebootOnSuccess = No

# Пароль для режима восстановления

SafeModeAdminPassword = P@ssw0rd

Теперь выполняем:

> dcpromo /unattend:C:\unattend.txt

Теперь контроллер домена установлен.

Выбор за тобой

Режим Server Core, появившийся в Win2k8, – новшество из разряда ожидаемых. Администраторы с небольшим опытом могут не принять такой режим, так как операции, которые раньше производились двумя щелчками мышки, теперь требуют погружения в документацию. Приведение сервера в рабочее состояние может занять заметно больше времени, чем в обычном варианте. Но, с другой стороны, ты получишь более безопасную и стабильно работающую систему. Поэтому – взвесь все pro и contra и действуй.

Полезные команды

В процессе эксплуатации сервера обычно приходится выполнять ряд административных задач. Приведу несколько полезных команд для повседневной работы. Например, запуск сервиса можно произвести, введя команду «sc start имя_сервиса» или «net start имя_сервиса». Для остановки используем вместо start – stop.

Чтобы убить зависшее приложение, сначала при помощи «tasklist» следует узнать его PID (уникальный идентификатор процесса), а затем ввести:

> taskkill /PID <process ID>

Отсутствие графического Event Viewer еще не означает невозможность контроля событий. Для этого используем утилиту «wevtutil». Просмотреть список доступных событий можно, введя «wevtutil el». А информацию о конкретном типе события смотрим, использовав ключ 'qe':

> wevtutil qe Security /f:text

Ключ '/f:text' позволяет отформатировать вывод в текстовом формате (а не в XML). Очистить список событий Application можно такой командой:

> wevtutil cl Application

INFO

Если при установке сервера выбрать Server Core Installation, то мы получим систему без графического интерфейса и с минимальным набором компонентов.

После установки сетевые интерфейсы настраиваются автоматически при помощи DCHP, а если такового сервера в сети не обнаруживается, то машина произвольно инициализирует имя и IP-адрес в диапазоне 169.254.x.x.

Для установки IIS понадобится ввести 923 символа (информация с сайта Microsoft).

WWW

Полный список доступных ролей, в зависимости от версии Win2k8, смотри в документе «Compare Server Core Installation Options» на сайте Microsoft (www.microsoft.com).

Роль Streaming Media Services доступна для закачки по адресу – support.microsoft.com/kb/934518.

WARNING

Преобразовать систему, установленную в режиме Server Core, до полного варианта нельзя (как и наоборот), – в таком случае Win2k8 придется полностью переустанавливать.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001