Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
16.48 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Типичноеправилоfirewall

выводятся данные логов Squid. Тут есть суммарный отчет за месяц «директору на стол», только почему-то он перебрасывает в «Монитор» — как-то это нелогично. Хотя сам отчет вполне ничего себе, с картинками, а директорам, как известно, картинки нравятся :).

БЕЗОПАСНОСТЬВНУТРЕННЕЙСЕТИ

Несмотря на пафосные обещания, безопасность, в общем-то, основана на стандартном наборе подходов: chroot основных сервисов и проверка контрольных сумм системных файлов. С другой стороны, аналогичная связка используется и в дистрибутиве Linux МСВС для российских военных (в нем, правда, есть еще ACL-листы и различные роли для пользователей), да и мы знаем, что им можно доверять. Настройки всех компонентов, отвечающих за защиту ресурсов внутренней сети, собраны в меню «Безопасность» и состоят из 10 подпунктов. Чтобы разрешить доступ по SSH, надо установить соответствующий флажок в «Общих настройках». Здесь же устанавливаются ограничения на количество сессий и блокировка сканеров портов, указывается IP системы админа. Далее идут две группы правил firewall: системные (то есть общие для всех) и пользовательские, которые затем можно назначить пользователям. Все это сделано для того, чтобы самому не копаться в iptables.

Âрезультате все задается в интуитивно понятной среде: IPадреса источника и назначения, протокол, порт, время действия, направление, интерфейс, скорость, действие. Список последних очень большой, от стандартных «Запретить/ Разрешить» до использования шейпера и фильтров. Чтобы просмотреть список фильтров, идем в подменю «Ключевые слова», где уже есть заготовки для 15 категорий. Причем никто не мешает тебе создать свой фильтр — достаточно взять за основу любой из уже имеющихся.

Âцелях повышения безопасности все встроенные сервисы по умолчанию отключены. Админ самостоятельно выбирает и активирует в разделе «Сервер» то, что ему действительно необходимо. Каждый раз, подключая новый сервис с помощью подобной сборки, я опасаюсь, что сейчас выйдет какой-нибудь сплойт, и придется заниматься обновлением вручную. В случае с Ideco все выполняется автоматически. Есть интересный момент. В разделе «Сервер -> Авт. Обновление», где администратору предлагаются расширенные настройки обновления сервера по расписанию, есть возможность «задержки установки обновления». Наверное, для ожидания обновления для обновления :). Рядышком находятся настройки резервного копирования. Но если выбрать «Сервер -> Резервное копирование -> На CD» и нажать на ссылку «Записать на CD сейчас», выдается сообщение «Данная опция доступна только через локальную консоль сервера».

Настраиваемтарифныйплан

INFO

Просмотрграфиковзагруженности системыIdeco ICS

ТАКЗАЧТОПЛАТИТЬ?

Конечно, есть недоделки. Но если посмотреть на тот же самый eBox и Ideco ICS, сразу видна разница между бесплатным решением и коммерческим продуктом. eBox — удачная сборка от энтузиастов, но местами собрана на коленке. На деле это, к сожалению, всплывает в самый неподходящий момент. Я до сих пор помню, как у меня отвалился подсчет трафика для некоторых пользователей, а любые действия в админке ни к чему не приводили. С грехом пополам, при помощи комьюнити баг все-таки удалось починить, но сколько времени я на это убил? В случае с платным продук-

том я бы просто обратился в саппорт, причем в случае с Ideco

— русскоязычный. Когда продукт платный, чувствуется, что кто-то ответственен за то, чтобы у тебя все работало, и есть с кого спросить. Можно еще, конечно, поставить в плюс гибкость, стабильность, простоту внедрения, но пусть это делает официальный сайт. Я вижу только три вещи, за которые здесь можно платить: первое — все работает с полтычка и без напильника, второе — есть оперативный суппорт, третье — гарантированные обновления самого продукта, антивирусных баз и контентного фильтра. Возможно, плюсом будет также и то, что решение тиражное и используется во многих организациях. Не скажу, что я в восторге от коммерческой реализации интернет-шлюза — ничего сверхъестественного я не увидел. Но решением доволен: Ideco ICS закрывает много задач, и если кому-то нужна надежность, уверенность и поддержка от производителя, а начальство готово за это платить, то почему бы и нет. Ideco ICS будет для них хорошим выбором. В маленькой же локалке его вообще можно использовать бесплатно.z

info

Орешенияхдляорганизациисовместного доступаизащиты сетичитайвстатье «Привратникдля локальнойсети» в][ 07.2009.

Оспециализированныхдистрибутивах Linux читайвстатье «Сетевыерегулировщики», опубликованнойвянварском][ за

2010 год.

DVD

dvd

Наприлагаемомк журналудискеты найдешьвидеоролик, которыйпознакомит тебяспроцессом установкиIdeco ICS иосновныминастройкамиинтерфейса.

HTTP://WWW

links

Официальныйсайт проектаIdecoICS— ideco-software.ru

XÀÊÅÐ 06 /137/ 10

119

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

w Click

to

 

 

 

 

 

 

SYN/ACK

 

 

 

 

 

 

 

m

Сергей «grinder» Яремчук grinder@synack.ru

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Ставимнаучет железоисофт

КАКПРОВЕСТИИНВЕНТАРИЗАЦИЮОБОРУДОВАНИЯИПРОГРАММНОГООБЕСПЕЧЕНИЯ, ОБОЙДЯСЬМАЛОЙКРОВЬЮ

IT-парклюбойорганизациичастонасчитываетнеодиндесятоксистем самойразнойконфигурации. Ивсегданайдетсяпарочкавольнодумцев, которыезахотятразвестиначальствонавнеочереднойапгрейдилиустановитьПОдляличныхцелей. Безсистемыучетаиконтроляадминрискует, какминимум, своейпремией. Рассмотримрешения, позволяющие упроститьэтузадачу.

WMIИPOWERSHELL

ÂWinNT 4.0SP4 администраторы получили новый инструмент для централизованного управления и слежения за работой различ- ных частей операционной системы — WMI (Windows Management Instrumentation, Инструментарий для Управления Windows). Правда, в первых версиях заложенных компонентов было немного (всего 15). Но в последующих Win2k+ их количество увели- чивалось вместе с возможностями. Сегодня WMI доступен для всех версий ОС Windows, включая Se7en. Опрашивая различные WMIклассы локальной и удаленных систем, мы можем получить всю необходимую информацию по имеющемуся в компании программному обеспечению и оборудованию.

Âпримерах предлагаю не использовать VBScript, JScript или другие скриптовые языки, уж слишком они громоздки и неудобны, тем более у нас уже есть роскошный PowerShell, способный выполнить за нас львиную долю работы (подробнее о PS читай в ][ 09.2009 и 05.2010).

ДляначалаполучимсписокBIOSнаподчиненныхкомпьютерах:

PS> Get-WMIObject Win32_BIOS -computerName synack.ru

Кактыпонимаешь,после'-computerName'ука- зываетсяимяхоста.Хотяприопроселокальной системыэтотпараметрможноопускать,чтомы ибудемделатьвдальнейшемдлякраткости.

Написавпростенькийскрипт,легкопередать

Get-WMIObjectсписоксистем,скоторых будетсобиратьсяинформация.Результатпри

необходимостисохраняемвтекстовыйфайлдля дальнейшегоанализа.

Аналогичнопроводимопросостальныхпараметров.Например,запрашиваеминформацию оCPU:

PS> Get-WMIObject Win32_Processor

Полныйсписокданных,какправило,ненужен, поэтомуотбираемтольконеобходимыепараметры:

PS> Get-WmiObject Win32_

ComputerSystem | Select

Manufacturer, Model

Посмотрим,какаяунасматеринскаяплата:

PS> Win32_Baseboard | Select Manufacturer, Name, Product | ft -a

КлассыWin32_ComputerSystem, Win32_ComputerSystemProductиWin32_ OperatingSystemпозволятсобратьобщие данныепокомпьютеруисистеме:

PS> "127.0.0.1", "synack.ru", "pc01" | Check-Online | Foreach-Object { Get-WMIObject Win32_ComputerSystem -computerName $_ }

ЗапрашиваемверсиюОС:

PS> Get-WmiObject Win32_ OperatingSystem | Select CSName,Buil dNumber,ServicePackMajorVersion

Прижеланиирезультатможносохранитьв файл,например«Export-CliXMLC:\check.xml»,а затемотфильтроватьилиобработать:

PS> Import-CliXML C:\check.xml |

Out-GridView

ПолныйсписокWin32_*классовисвойствдоступенвдокументацииMSDN«Win32_Classes» (http://msdn.microsoft.com/en-us/library/ aa394084%28v=VS.85%29.aspx).Альтернатив- ныйвариант—воспользоватьсяфункциейпо- иска.Кпримеру,просмотримсписокобъектов,в именахкоторыхприсутствуетсловоdisk:

PS> Get-WmiObject -List | where {$_. name -match "disk"}

ГОТОВЫЕУТИЛИТЫИПРИЛОЖЕНИЯ

Еслихорошопоискатьвинтернете,можно найтинеодиндесятокготовыхWMI-скриптов насамыхразныхязыкахпрограммирования, которыелегкоадаптируютсяподтвоинужды. МоевниманиепривлеклоHTA-приложение HardwareInventory(www.robvanderwoude.com/ hardware.php)свеб-оболочкой.Простовводим имякомпьютераиполучаемданныеобустановленномоборудовании.Принеобходимости можноотредактироватьсырецвтекстовомредакторе,дополнивегонужнымипараметрами (опросWMI-объектовреализованнаVBScript).

120

XÀÊÅÐ 06 /137/ 10

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Стороннимиразработчикамисозданрядспециальныхкомандлетов, упрощающихнаписаниескриптов.СкриптComputerInventoryScript (CompInv),которыйдоступеннасайтеpowershellpro.com,позволяет получитьинформациюожелезе,ОСисохранитьвсесобранныеданныев Excel'евскийфайлдлядальнейшегоанализа.Послезапускаскриптзадаст нескольковопросов,отвечаянакоторые,админвыбираетрежимсбора данных.Списоккомпьютеровдляпроверкиопределяетсяприпомощи специальноготекстовогофайла,такжескриптможетавтоматически проверитьвсесистемыилисерверы,входящиевдомен.Каквариант— имякомпьютеразадаетсявручную.Поумолчаниюиспользуетсятекущая учетнаязапись,но,ответив«Yes»навопрос«Wouldyouliketousean alternativecredential?»,можноуказатьтребуемуюучетнуюзапись.

Чтобызатемнезапускатьсозданныйскриптсамостоятельно,поручимэто SchTasks.Например:

> SchTasks /CREATE /TN CheckScript /TR "powershell.exe ` -noprofile -executionpolicy Unrestricted `

-file check.ps1" /IT /RL HIGHEST /SC DAILY

ВрезультатесоздаетсязаданиесназваниемCheckScript,котороебудет ежедневновыполнятьPS-скриптcheck.ps1,причемснаивысшимприори- тетом.

Вместессистемойинвентаризацииоборудованияиустановленныхпри- ложенийNetPoint(www.neutex.net)предлагаетсянаборPS-скриптов(Get- Net*),предназначенныхкакраздлясбораопределенноготипаданных

оподчиненныхсистемах.Например,просмотримналичиесвободного местанахарде:

PS> Get-NetLogicalDisk -DriveType "Local Disk" | where { $_.FreeSpace / $_.Size -lt .10 } | % { $_.ComputerSystemName }

Теперьпопробуемсобратьинформациюобустановленныхпрограммах:

PS> Get-NetProgram -System synack.ru -Uninstalled $False

| % { $_.DisplayName } | sort -unique

Всеговпоставкувходит20командлетов.

ДоступнабесплатнаяверсияNetPointExpressEdition,котораяработаетв 32/64-битныхWinXP/2k3/2k8/Vista/Se7en,ееможноприменятьвсетях любогоразмера.ДляустановкиNetPointпонадобитсяналичиеPS2.0,IISи SQL-сервера(достаточноExpressEdition).

Кстати,списокустановленныхпрограммможнополучить,простопрочи- тавнужнуюветкуреестра:

PS> Get-ItemProperty HKLM:\SOFTWARE\Microsoft\

Windows\CurrentVersion\Uninstall\* | Format-Table

DisplayName,Publisher | Out-GridView

КомандлетOut-GridViewвыводитданныевотдельномокнесвозмож- ностьюпоискаисортировки.

МИНУСЫИСПОЛЬЗОВАНИЯСКРИПТОВ

ЕслисборданныхприпомощиWMI/PowerShellдовольнопрост,товсе отчетыиизменениявконфигурацияхприходитсяконтролировать вручную.Конечно,можноусложнятьсвоискрипты,пытаясьавтоматизироватьпроцесс,нонекаждыйзахочеттратитьнаэтовремя.Здесьстоит напомнить,чтоMicrosoftпредлагаетнеобходимуюфункциональность

âSCCM(SystemCenterConfigurationManager),окотороммыужеписали

âномерах08.2009,09.2009и01-02.2010.Новтехслучаях,когдавраспоря- женииадминанаходятсятакже*nixсистемы,всевозможныероутеры

ипрочееоборудование,котороенеобходимоучитывать,WMI—ужене помощник.Крометого,остаетсяпроблемавизуальногопредставления данныхиотчетов.Здесьпридетсяприбегнутькстороннимпрограммам(в томчислераспространяемымподсвободнымилицензиями),благо,есть изчеговыбирать.

СИСТЕМАИНВЕНТАРИЗАЦИИMYZCI

Многие,ктопробовалсистемуинвентаризацииzCI(zci.sf.net),находили еедовольноудачнымрешением,ноейнехваталовозможностизаносить

XÀÊÅÐ 06 /137/ 10

121

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

w Click

to

 

 

 

 

SYN/ACK

 

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПолучаемсписокWMI-объектов

данныевручнуюилокализованногоинтерфейса.Конечно,этонекритическиемоменты,но естьидругиемелочи.Например,нельзяудалить устройствочерезвеб-интерфейс—необходи- мовручнуюсоставитьSQL-запроснаочистку данныхизтаблиц.Системаинвентаризации MyZCI(sf.net/projects/myzci)являетсяфорком zCI.РазработкойзанимаетсяЮрийВинник,

ондовелzCIдонужныхкондиций:интерфейс переведеннарусскийиукраинскийязыки, добавленыновыеполявтаблицы(например,

размещениекомпьютера)иупрощеноуправление.ДляработыMyZCIпотребуетсялюбойвебсерверсподдержкойPHP(сPECL,PHPExtension CommunityLibrary)иMySQL.

Распаковываемархивmyzci-1.2.1.zipвкорневой каталогвеб-сервераивфайлеzciconfig.php указываемпараметрыдоступакMySQL:

$ sudo nano zciconfig.php

return dbx_connect(DBX_MYSQL,"local host","zci","zci","passwd");

Проект GLPI

GLPI(GestionLibredeParcInformatique,glpi-project.org)—ещеодинпроект,ко- торыйпользуетсязаслуженнойпопулярностьюуадминов.Кромезадачпоучету компьютеровикомплектующих,онпозволяетхранитьданныепоостальному «хозяйству»,включаярасходныематериалы.ВотличиеотOCSNG,администратор самостоятельнонаполняетбазуустройств,используялокализованныйвеб-ин- терфейс.Нопроблемаэтарешаетсязасчетиспользованияплагина,интегрирующегоGLPIсOCSNG.Поэтомуихчастоустанавливаютвместе.Длявключения поддержкинеобходимоперейтив«Установки-Общие»ипереключить«Активиро- ватьрежимOCSNG»взначение«Да».Послеэтоговменюпоявитсяноваявкладка «РежимOCSNG»,вкоторойможносинхронизироватьданные.

НаосновеGLPIлегкоорганизоватьслужбутехническойподдержкипользователей,чтооченьудобно,ведьвместозвонкаюзероставляетзаявку,котораярегис- трируетсясистемой.ЗатемIT-подразделениеееобрабатывает.Этодисциплини- руетпользователей—ониперестаютзвонитьпомелочам,ауадминовпоявляется базаобращенийдляотчетаопроделаннойработе.НовозможностиGLPIэтимне ограничиваются.Онпозволяетсоздатьбазузнаний,состоящуюизстатей,вести учетпоставщиков,договоров.Системаснабженабольшимколичествомсамых разныхотчетовсвозможностьюэкспортарезультатавфайлформатаPDF,CSV илиSLK.ПоддерживаетсясинхронизациякалендаряпопротоколамiCal,Webcal. Функциональностьлегкорасширяетсязасчетплагинов,доступныхнасайте проекта(plugins.glpi-project.org).КромеOCSNGможноимпортироватьданныес сервераCactiилиNagios.

ПакетGLPIимеетсяврепозитарияхосновных*nixдистрибутивов.Установкапри помощиисходныхтекстовстандартнадляприложений,написанныхнаPHPи требующихналичиявеб-сервераиMySQL.

Смотримсписокустановленных программсиспользованиемOutGridView

ЧтобысоздатьтаблицывБД,используемскрипт mysqlscript.sql,находящийсявкаталогеengine. Записивнутринужнопривестивсоответствие сданными:

$ sudo nano mysqlscript.sql

create database zci;

...

grant all on zci.* to 'zci'@'localhost' identified by 'passwd';

#Если не планируется доступ к БД с других систем, последнюю строку комментируем

#grant select,delete,insert,update on zci.* to 'zci'@'%' identified by 'zci';

Локализацияинтерфейсапроизводитсяустановкойпеременной“$Lang”взначение“ru”в файлеlangconfig.php.

ДлясбораинформациивWindows-системе используетсяWindowsScriptHost,вLinux— lshwclientнаJava.Всекомпонентынаходятсяв подкаталогеadd-onsиengine.ЗдесьжележатMS WindowsScriptingHost5.6иMSWMICore1.5, которыенеобходимыдляработыклиентской частивWin95/98/NT4.Передразвертыванием вфайлахtakedata.jsиlshwclient.javaследует изменитьзначениепеременнойMyZCIpathи MyZCIserver,чтобыонауказывалаURLсервера. Процесснастройкиклиентскойчастинаконеч- ныхсистемахупрощен.Так,скриптinstall.sh, используемыйприустановкевLinux,проверяет наличиепакетовlshw,jdkиread-edid(инфао мониторе)иприихотсутствиивыдаетпояснительноесообщение.Далеепроисходитсборка Java-клиентаиустановказаданияcron.После развертыванияMyZCIнужноподключиться

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

MyZCI.Скачиваемсглавнойстраницыархивс клиентскойчастьюизапускаемустановщик. Послечегоскриптыначнутотсылатьданныена сервер.

Интерфейспредельнопростипозволяетвыводитьдетальнуюинформациюожелезе,вносить иредактироватьданныеокомпьютерах,

122

XÀÊÅÐ 06 /137/ 10

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DVD

ПриложениеHardware Inventory

группировать,искатьсистемыпоопределенномукритерию (например,типвидеокартыимонитор),отслеживатьизменения.Менюадминистраторапозволяетопределятьстатус (закреплен,аренда)иместонахождениесистемы.

СИСТЕМАOCSINVENTORYNG

РешениеOCSInventoryNG(OCSNG,OpenComputersand SoftwareInventoryNewGeneration,ocsinventory-ng.org) позволяетпроизвестиинвентаризациюкомплектующихи программногообеспечения,установленныхнакомпьютерах влокальнойсети,иотслеживатьихизменения,периодическиполучаяданныеоконфигурациисистем.Ещеоднойполезнойфункциейявляетсявозможностьудаленнойустановки программивыполнениякоманд.Длясбораинформациина клиентскиекомпьютерыустанавливаетсяпрограмма-агент. АгентдоступенпрактическидлявсехверсийWindowsот95

Локализация

OCSNG/GLPI

ИнтерфейсOCSNGлокализован,новсежеесть небольшиепроблемы,приводящиектому,что русскоязычныеназванияпрограмм,установленныхвWindows,отображаютсянекорректно. Деловтом,чтовOCSNGизначальноиспользу- етсякодировкаISO-8859-1(дляотображенияCP- 1251),вGLPI—UTF8.ПриимпортеданныхOCSNG ->GLPIтакжевозникаютпроблемыскодиров- ками.Известнодвапутирешения:

1.Налетуприэкспортеменятьданныеииспользуемыешрифты.Чтобысделатьэто,нужно поправитьфайлexport.function.phpипри помощипакетаttf2pt1создатьновыешрифты, поддерживающиеUTF8.

2.ИзначальнонаучитьOCSNGработатьсUTF8. Дляэтогопредложеныпатчиипересобранные установочныефайлыдляWindows.Скачатьих можносftp://linvinus.ru/ocs.Здесьженаходят- сяготовыеdeb-пакетыдляUbuntu/Debian.

Крометого,вфайлеinc/ocsng.class.phpследует изменитьстроку«$this->dbenc="latin1";»на «$this->dbenc="utf8";»ив/etc/php5/apache2/ php.iniпроверитьустановку«default_charset= "utf-8"».

Информацияобоборудовании, собранная

OCSNG

до2k8R2,Linux,MacOSX,*BSD,Solaris,IBMAIXиHP-UX.Все собранныеданныеагентыотправляютнасерверуправления (managementserver)ввидеXML-потока,сжатогоприпомощи библиотекиZlib.Дляпередачииспользуетсястандартный протоколHTTP/HTTPS,поэтомупроблемсfirewall'омобыч- ноневозникает.Припомощиагентовреализованафункция "IPdiscovery",котораяпомогаетнаходитьвсесетевыеипериферийныеустройства,работающиевлокалке,втомчисле те,накоторыенельзяустановитьагента(свитчи,принте- ры,web-камерыит.д.)Агентысканируютсетьвпоисках подобныхустройствиотправляютсведенияонихнасервер дляанализа.

ВерсиядляWindowsнаписананаC++,*nixвариант—на PerlиС.

СервернаячастьOCSNGвключаетвсебячетырекомпонента, которыенеобязательнодолжныбытьустановленынаодном сервере.ЭтоСУБД(MySQL)длясбораданных,атакжевебсервер,которыйможетигратьоднуизтрехролей:

Службасвязи—обеспечиваетсвязьпопротоколуHTTP междусерверомбазыданныхипрограммами-агентами (Apache1.3.X/2.XсинтегрированнымPerl,вDebian/Ubuntu пакетlibapache-dbi-perl);

Службаразвертывания—хранениеустановочныхфайлов программ-агентов(любойвеб-серверсподдержкойSSL);

Консольуправления—просмотрсобранныхданныхвбрау- зере(веб-серверсподдержкойPHPсZIPиGD).

СервернаячастьOCSNGможетбытьустановленанакомпьютер,работающийподуправлениемWin2k/XP/2k3,Linux, *BSD,Solaris,IBMAIXиMacOSX.

dvd

Наприлагаемом кжурналудиске

тынайдешьвидеоролик, вкоторомпоказано, какустановить инастроитьсвязку

OCSNG + GLPI.

HTTP://WWW

links

Полныйсписок

Win32_*классов можнонайтив документацииMSDN «Win32_Classes»— msdn.microsoft.com

Сайтпроекта

NetPoint—neutex.net

СайтпроектаMyZCI

sf.net/projects/myzci

СайтпроектаzCI— zci.sf.net

СайтпроектаOCSNG

ocsinventory-ng.org

УСТАНОВКАOCSNG

Нужныйпакетимеетсяврепозиторияхбольшинствадистрибутивов,хотяобычноэтонесамаяактуальнаяверсия. Самостоятельнаясборкаизисходныхтекстовпривнимательномподходенедолжнавызватьтрудностей.Установоч- ныйскриптsetup.sh,находящийсявнутриархива,проверит наличиетребуемыхкомпонентовивыдастрекомендациипо устранениюпроблем,есливэтомбудетнеобходимость.

ВDebian/Ubuntuдляручнойсборкинужнонакатитьпакеты:

$ sudo apt-get install libapache2-mod-perl2 libdbi-perl libapache-dbi-perl libdbd-mysql- perl libsoap-lite-perl libxml-simple-perl libnet-ip-perl libcompress-zlib-perl php5-gd

ИXML::EntitiesизхранилищаCPAN:

INFO

info

Многиеутилиты, выпускаемыепод коммерческимилицензиями, используютдлясбораданных именноWMI — это удобно, таккакне требуетсяустановка агентовнаудаленные системы.

XÀÊÅÐ 06 /137/ 10

123

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

w Click

to

 

 

 

 

 

SYN/ACK

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-

 

 

n

e

 

 

 

 

 

x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СписокустановленныхпакетоввOCSNG

СвязываемGLPI сOCSNG

$ sudo cpan -i XML::Entities

Впроцессеустановкибудутсозданывсенеобходимыеконфигурационные файлыиалиасыдлявеб-сервера.Таккакфайлы,которыемогутраспро- странятьсяприпомощиOCSNG,частоимеютбольшойразмер,следует установитьнужныезначенияпеременныхpost_max_sizeиupload_max_ filesizeвфайлах/etc/php5/apache2/php.ini(поумолчанию—8и2Мб)

иocsinventory-reports.conf.Послевсехнастроеквызываембраузери запускаемустановочныйскриптhttp://localhost/ocsreports/install.php, гдеуказываемпараметрыдоступакБД.Впроцессеустановкидлядоступа кбазеocswebбудетсозданаучетнаязапись«ocs»спаролем«ocs».Если доступкбазенеограниченлокальнойсистемой,вцеляхбезопасности дефолтныйпарольследуетизменить.ДляустановкиагентавLinuxпотребуетсяналичиенекоторыхмодулейPerl(XMLиZlib)иdmidecode.

$ sudo apt-get install libcompress-zlib-perl libnet-ip- perl libnet-ssleay-perl libwww-perl libxml-simple-perl po-debconf ucf dmidecode pciutils

ПослечегоагентустанавливаетсястандартнымдляPerl'овыхприложений способом:

$ tar xzvf Ocsinventory-Agent-1.1.2.tar.gz $ cd Ocsinventory-Agent-1.1.2

$ perl Makefile.PL $ make

$ sudo make install

Далеескриптначнетзадаватьрядвопросовпоразмещениюконфигурационныхфайлов.Вводимданныесервера,создаемтэг(длягруппировки систем),активируемзадачудляcron.Поокончаниинастройкисобранные данныеоконфигурациикомпьютераотправляютсянасервер.Еслисвязь установленаиполучаемответ«Success!»,установкуагентаможносчитать законченной.Егоданныепоявятсяввеб-консоли,вразделе«Всекомпью- теры».Вкаталоге/var/lib/ocsinventory-agentбудетсозданXML-файл, содержащийтекущуюконфигурациюкомпьютера.Еслижесоединения непроизошло,запустиагентврежимеотладки:

$ ocsinventory-agent -l /tmp –debug --server http:// ocsng-server/ocsinventory

Обычнополученнойинформациихватаетдлядиагностикиошибок. АгентдляWindowsможетбытьустановленнесколькимиспособами.Са- мыйпростой—вручнуюилиспомощьюприлагающегосяlogonскрипта.

ПослеинсталляциисервераустановочныйфайлагентаможноимпортироватьвбазуOCSNG.Простовыбираемвкладку«Агент»иуказываем месторасположениефайла,послечегоонбудетдоступенслюбогокомпьютерасети.Установкастандартна:напоследнемэтапесообщаемимя илиIP-адресOCSNGсервера,и,чтобысразужесформироватьиотправить отчет,устанавливаемфлажок«Immediatelylaunchinventory».Далееагент прописываетсявавтозагрузкуистартуетвкачествесервиса.

РАБОТАСИНТЕРФЕЙСОМOCSNG

Интерфейслокализован,поэтому,чтобыразобратьсясегоиспользованием,многовременинепонадобится.Поумолчаниюнавкладке«Всекомпьютеры»показанысемьосновныххарактеристикклиентскихмашин. Список«Addcolumn»позволяетлегкодобавитьещедо23полей.Очень удобно,чтоданныеподдаютсяручномуредактированию.Такжеследует отметитьлегкийпоискиудалениедубликатовсистем.

Какужеговорилосьранее,вOCSNGзаложенавозможностьустановки приложенийизапускаскриптов(bat,vbsит.п.)Такаяфункциональность сильновыручает.СоздаемпакетвDeployment—Buildизаполняемполя Newpackagebuilding:название,Priority(порядокустановки)идействиев Action.Предусмотренотриварианта:

-Store — копировать на целевую систему;

-Execute — копировать и выполнить с командой;

-Launch — копировать и запустить.

ПараметрывUsernotificationsпозволяютвывестипредупреждениепользователюиразрешитьемуотменятьзадачу.

ПослесозданияпакетаегоследуетактивироватьвDeployment—Activate. ВводимURLсервераинажимаем«Отправить».Выбираемкомпьютер, накоторыйбудемустанавливатьпакет,переходимвменюCustomization инажимаемссылкуAddpackage.Указываемпакетизапускаемпроцесс нажатиемAffect.СостояниезадачивыводитсявCustomization,общая статистикадоступнавтаблицеActivate.

ВOCSNGинициаторомсоединениявыступаетагент,которыйподклю- чаетсяксерверуразвсутки,отправляетинформациюосостояниии получаетзадания.Еслисозданныйпакетнеобходимоустановитьраньше, наклиентеследуетпринудительнозапуститькомандуocsinventory-agent.

ЗАКЛЮЧЕНИЕ

Посленастройкиизаполнениябазыданныхвсистемеинвентаризации тыбудешьпостоянноиметьподрукойактуальнуюинформациюотекущемсостояниикомповисможешьотслеживатьизменения.Отчеты,которыеонагенерирует,даютвозможностьбыстроопределитьконфигурациютиповогокомпьютера,используемоговорганизации,чтосослужит хорошуюслужбуприпланируемомапгрейдеилисменеОС.z

124

XÀÊÅÐ 06 /137/ 10

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Евгений Зобнин j1m@synack.ru

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Огненнаядуга

ЗАЩИЩАЕМСЯОТВЗЛОМЩИКОВСПОМОЩЬЮIPTABLES, IPFW ИPF

Брандмауэр— перваялиниязащитылюбогосервера, иотегоправильнойнастройкизависит, сможетлизлоумышленникпродвинутьсядальшевсвоихпопыткахпроникновениявсистему. Современныефайеры предлагаютмножествомеханизмовобеспечениябезопасности, используякоторыетыможешьоставить«неудел» 99% атакующих. Ивсеэтобез необходимостипокупкидорогостоящегооборудованияикоммерческого софта.

Главнаяцельвсехвзломщиков—получение доступаккомандномуинтерпретаторусервера дляиспользованияеговозможностейвсвоих интересах.Наиболеечастопроникновениев «святаясвятых»осуществляетсяспомощьюдыр всервисахилижечерезподборпароля(брутфорс)кодномуизних(например,ssh).

СКАНИРОВАНИЕПОРТОВ

Чтобывыявитьналичиеуязвимыхсервисов намашине,атакующийпроизводитразведкус помощьюсканерапортовиразличныхсистем обнаруженияуязвимостей.Обычновкачестве сканерапортовиспользуетсяnmap,который

способеносуществлятьсканированиедесятком различныхспособовивнекоторыхслучаяхумеетвыявлятьверсииОСисервисов.Вотсписок особеннопопулярныхфлаговnmap,которые обычноиспользуютвзломщики:

Флагиnmap, используемые присканировании

-sT — обычное TCP-сканирование с помощью открытия соединения на указанный порт и его завершения;

-sS — SYN/ACK-сканирование, связь разрывается сразу после ответа на запрос открытия соединения;

-sU — UDP-сканирование;

-sF — сканирование пакетами с установленным флагом FIN;

-sX — сканирование пакетами с установленными флагами FIN, PSH и URG; -sN — сканирование пакетами без установленных флагов.

Методзащитыотсканированияпрости известенлюбомусистемномуадминистрато-

ру.Заключаетсяонвпростомзакрытиивсех сервисов,которыенедолжныбытьвидныиз внешнейсети.Например,еслинамашинеработаютсервисыssh,sambaиapache,аизвнешнего мирадолженбытьвидентольковеб-серверс корпоративнойвеб-страницей,томежсетевой экранможетбытьнастроентак:

Начальнаянастройкаiptables

outif="eth1" iptables -F

iptables -i $outif -A INPUT \ -m conntrack \

--ctstate ESTABLISHED,RELATED \ -j ACCEPT

iptables -i $outif -A INPUT -p tcp \ --dport 80 -j ACCEPT

iptables -i $outif -P INPUT DROP iptables -i $outif -P OUTPUT ACCEPT

Начальнаянастройкаipfw

outif="rl0"

ipfw add allow ip from any to any \ via lo0

ipfw add allow ip from me to any \ via $outif

ipfw add allow tcp from any to me \ established via $outif

ipfw add allow tcp from any 80 \ to me via $outif

ipfw add deny ip from any to any \ via $outif

Начальнаянастройкаpf

outif="rl0" set skip on lo0 block all

pass out on $outif from $outif \

to any keep state

pass in on $outif proto from any \ to $outif port 80

Всетринабораправилделаютодноитоже

—разрешаютпрохождениелюбоготрафика поинтерфейсуобратнойпетли(loopback), разрешаютприниматьпакетыужеустановленныхсоединений(чтобы,например,браузер могполучитьответназапроскудаленному серверу),разрешаютобращенияна80-йпорт, блокируявсеостальные,иразрешаютлюбые коннектынаружу.Обративнимание,чтоеслив

примерахiptablesиipfwмыявнозадалиправила дляразрешенияприемапакетовужеустановленныхсоединений(established),товслучаесpf дляэтогодостаточнобылоуказать«keepstate»

âрулесете,разрешающемлюбыеисходящие соединения.

Вобщем-то,такаясхемазащитысетевых сервисовотсканированияипроникновения отличноработает, номыможемпойтидальше инастроитьфайертак,чтобынекоторыевиды сканированиявообщенемоглибыбытьвыполнены.Техническимынеможемсделатьэто

âотношенииобычногосканирования(флаги nmap'-sT','-sS'и'-sU')простопотому,чтовнем нетничегокриминального,однаконестандарт- ныетипысканирования,такиекак'-sN','-sF'

и'-sX',порождаютпакеты,которыеникакне моглибытьсозданылегальнымиприложениями.Поэтомубезтенисомненияотбрасываем подобныесоединения.

Методыборьбысэкзотическими видамисканирования

# Запрет FIN-сканирования Linux> iptables -A INPUT –p tcp \

XÀÊÅÐ 06 /137/ 10

125

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY

 

 

 

 

 

SYN/ACK

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

–m tcp \

–-tcp-flags FIN,ACK FIN -j DROP

FreeBSD> ipfw add reject tcp from any to any \ not established tcpflags fin

# Запрет X-сканирования

Linux> iptables -A INPUT –p tcp –m tcp \ --tcp-flags FIN,SYN,RST,PSH,ACK,URG

FIN,SYN,RST,PSH,ACK,URG \ –j DROP

FreeBSD> ipfw add reject tcp from any to any \ tcpflags fin, syn, rst, psh, ack, urg

# Запрет N-сканирования

Linux> iptables -A INPUT –p tcp –m tcp \ –-tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP

FreeBSD> ipfw add reject tcp from any to any \ tcpflags !fin, !syn, !rst, !psh, !ack, !urg

ВOpenBSDвсеэтистрокиможнозаменитьпростойзаписьювначале /etc/pf.conf:

scrub in all

Директиваscrubактивируетмеханизмнормализациипакетов,при которомфрагментированныепакетывоссоединяются,апакетыснедопустимойкомбинациейфлаговотбрасываются.Кромеэкзотических видовсканированияscrubпозволяетзащититьсяиотобманасистем обнаружениявторжений(посылкасильнофрагментированныхпакетов) инекоторыхвидовDoS-атак.

ДлязащитыотSYN/ACK-сканирования,инициируемогоспомощью nmap-флага'-sS',мыможемиспользоватьметодпассивногоопределения ОС(OSFingerprint),доступныйвбрандмауэрахpfиiptables/netfilter (начинаясверсии1.4.6).Вовремяпроведенияобычногосканирования (флаг'-sT')nmapиспользуетстандартныйинтерфейссокетовоперацион- нойсистемы,поэтомутакойсканпочтиничемнеотличаетсяотпотока обычныхпакетов(нижемырассмотримнекоторыеегоотличия),однако приSYN/ACK-сканированииnmapформируетпакетысамостоятельно, поэтомуониимеютнекоторыечерты,которыевыдаютихисточник.Ме-

тодпассивногоопределенияОСпозволяетидентифицироватьэтипакеты иотброситьихспомощьюстандартныхправилфайервола:

OpenBSD> block in quick from any os NMAP

Linux> iptables -I INPUT -p tcp -m osf --genre NMAP \ -j DROP

Модульosfбрандмауэраiptables/netfilterиспользуетбазу«отпечатков», собраннуюиобновляемуюразработчикамиOpenBSD(/etc/pf.os), поэтомуобаэтихправиладолжныпривестикодинаковымрезультатам. Интереснотакжеито,чтоонипозволяютэффективнопротиводейство- ватьфункцииопределенияОСутилитыnmap(флаг'-O').

Теперь мы защищены почти от всех видов сканирования, кроме стандартного и тупого '-sT'. Как быть с ним? На самом деле все просто. Факт сканирования портов легко заметить, просто проанализировав логи файервола. Если за короткий промежуток времени происходило множество коннектов на различные порты — зна- чит, нас сканировали. Осталось только переложить эту идею на правила брандмауэра. Для iptables есть отличный рецепт, который блокирует всех, кто слишком настойчиво стучится в нерабочие порты:

Борьбасосканированиемспомощьюiptables

#Проверка на стук в нерабочие порты (10 в час) iptables -A INPUT -m recent --rcheck \

--seconds 3600 --hitcount 10 --rttl -j RETURN

#Вторая проверка на стук в нерабочие порты (2 в минуту) iptables -A INPUT -m recent --rcheck \

--seconds 60 --hitcount 2 --rttl -j RETURN

#Заносим адреса стучащихся в список

iptables -A INPUT -m recent --set

# Отбрасываем пакеты всех, кто превысил лимит на количество подключений

iptables -P INPUT -j DROP

Установивпакетxtables-addons,содержащийнаработкипроектаpatch-o- matic,мыполучимдоступкмодулюPSD(PortScanDetect),реализованномупообразуиподобиюдемонаscanlogd.Всепредыдущиестрокимогут бытьлегкозамененыпростымправилом:

126

XÀÊÅÐ 06 /137/ 10

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Файерволкаконесть

#iptables -A INPUT -m psd -j DROP

Êсожалению,впакетныхфильтрахipfwиpf ничегоподобногонет,ноэтонебеда,потомукак сканированиюпортовхорошопротиводействуетдемонPortSentryитотсамыйscanlogd.

ЗАПРЕТICMP-СООБЩЕНИЙ

Хорошейпрактикойтакжеявляетсязапрет ICMP-сообщений,которыемогутвыдать дополнительнуюинформациюохостеили бытьиспользованыдлявыполненияразличных злонамеренныхдействий(например,модификациитаблицымаршрутизации).Нижеприведенатаблицасоспискомвозможныхтипов ICMP-сообщений:

ТипыICMP-сообщений

0 — echo reply (echo-ответ, пинг)

3 — destination unreachable (адресат недосягаем)

4 — source quench (подавление источника, просьба посылать пакеты медленнее)

5 — redirect (редирект)

8 — echo request (echo-запрос, пинг)

9 — router advertisement (объявление маршрутизатора)

10 — router solicitation (ходатайство маршрутизатора)

11 — time-to-live exceeded (истече- ние срока жизни пакета)

12 — IP header bad (неправильный IPзаголовок пакета)

13 — timestamp request (запрос зна- чения счетчика времени)

14 — timestamp reply (ответ на запрос значения счетчика времени)

15 — information request (запрос информации)

16 — information reply (ответ на запрос информации)

17 — address mask request (запрос маски сети)

18 — address mask reply (ответ на запрос маски сети)

Каквидишь,ответнанекоторыеICMP-сообще- нияможетпривестикразглашениюнекоторой информацииохосте,втовремякакдругие

—привестикмодификациитаблицымаршру- тизации,поэтомуихнеобходимозапретить. Обычновыходвовнешниймирразрешают ICMP-сообщениям0,3,4,11и12,втовремякак навходпринимаюттолько3,8и12.Воткакэто реализуетсявразличныхбрандмауэрах:

ЗапретопасныхICMP-сообщений

Linux> iptables -A INPUT -p icmp \ -icmp-type 3,8,12 -j ACCEPT

Linux> iptables -A OUTPUT -p icmp \ -icmp-type 0,3,4,11,12 -j ACCEPT

FreeBSD> ipfw add allow icmp \ from any to $outif in \

via $outif icmptype 3,8,12 FreeBSD> ipfw add allow icmp \ from $outif to any out \

via $outif icmptype 0,3,4,11,12

OpenBSD> pass in inet proto icmp \ from any to $outif \

Борьба с утечкой ресурсов

ПрииспользованиидействияTARPITобязательнодобавляйвконфигследующее правило,иначе«провисшие»соединениябудутсъедатьресурсыприобработке подсистемойconntrack:

#iptables-traw-IPREROUTING-ptcp--dport25-jNOTRACK

FWBuilder: универсальныйGUI длянастройкиiptables, ipfw, pf и ipf

icmp-type { 3, 8, 12 } keep state OpenBSD> pass out inet proto icmp \

from $outif to any \ icmp-type { 0, 3, 4, 11, 12 } \ keep state

ПрижеланиитыможешьзапретитьвесьICMP- трафик,включаяпинг-запросы,ноэтоможет повлиятьнакорректностьработысети.

БРУТФОРС

Разведавинформациюоботкрытыхпортахи ОС,взломщикпредпринимаетпопыткипроникновениявсистему,которыемогутбытьоснованынаэксплуатациидырвсервисах,либона подборепаролей.Предотвратитьвозможность взломасервисовбрандмауэрнамнепоможет, однакозатормозитьпроцесспереборапаролей

—легко.Дляэтогоприменяютсявозможности поограничениюколичествапакетов,пришед- шихнамашинусодногоIP-адреса.Воткакэто можносделатьспомощьюiptables:

Защитаотбрутфорса спомощьюiptables

#Цепочка для проверки соединений iptables -N brute_check

#Блокировка адреса, если за 60 секунд он инициировал более 2-х соединений

iptables -A brute_check -m recent \ --update --seconds 60 \ --hitcount 3 -j DROP

#Если нет — разрешаем соединение и заносим адрес в список

iptables -A brute_check -m recent \ --set -j ACCEPT

#Очищаем цепочку INPUT

iptables -F INPUT

# Отправляем в цепочку brute_check всех, кто пытается подключиться к 22-му порту

iptables -A INPUT -m conntrack \ --ctstate NEW -p tcp \ --dport 22 -j brute_check

iptables -P INPUT DROP

Тожесамоеможнопроделатьисиспользованиемpf:

XÀÊÅÐ 06 /137/ 10

127

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

w Click

to

 

 

 

 

 

SYN/ACK

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-

 

 

n

e

 

 

 

 

 

x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Настраиваемiptables

WARNING

warning

Явноблокируяпакеты nmapспомощьюosf,

тырискуешьотсечь пакетылегальныхОС, имеющихсходную сигнатуру:SunOS4.1.x, Tru646.1,TOPS-20 version7,ExtremeWare 4.x,SymbianOS6048, SegaDreamcast Dreamkey3.0.

Защитаотбрутфорсаспомощьюpf

#Создаем таблицу для брутфорсеров table <bruteforcers> persist

#Блокируем всех, кто в нее попадает block in quick from <bruteforcers>

#Помещаем в таблицу bruteforcers всех, кто инициирует более двух соединений на 22-ой порт в минуту

pass in on $ext_if inet proto tcp to $outif \ port 22 flags S/SA keep state \ (max-src-conn-rate 60/2, \

overload <bruteforcers> flush)

Брандмауэрipfwнеобладаетдостаточнойфункциональностьюдляэффективногопротиводействиябрутфорсерам, поэтомуегопользователидолжныиспользоватьинструментыболеевысокогоуровня,такиекакспециальныемодули PAM,системыобнаружениявторженийипрограммывроде sshguard.

HTTP://WWW

links

sf.net/projects/ sentrytools— PortSentry www.openwall.com/ scanlogd—scanlogd

INFO

info

Способызащитыот атактипаDoS/DDoS подробноописаны

вмоейстатье«Устоятьлюбойценой», опубликованной

всентябрьскомномере][ за2009 год.

СПУФИНГ

Спуфинг (подмена адреса отправителя пакета) может быть использован для осуществления DoS-атак или обхода брандмауэра. В первом случае спуфинг дает огромное преимущество атакующему, так как существенно затрудняет реакцию на атаку (пакеты, приходящие с совершенно разными адресами отправителя, не так просто классифицировать и заблокировать) и затягивает процесс закрытия новых соединений (обычно поддельный адрес недостижим, поэ-

тому закрытие соединения происходит лишь по истечению таймаута). Спуфинг, осуществляемый для обхода системы защиты, менее опасен и в большинстве случаев поддается контролю.

Достаточночасто,блокируявнешниесетевыесервисыхоста, системныеадминистраторыоставляютихоткрытымидля определенногодиапазонаадресов(например,дляподклю- чениясосвоейдомашнеймашины).Вычисливодинизэтих адресов,взломщикможетсформироватьпакет,указавэтот адресвкачествеобратного,итакимобразом«проскользнуть»черезбрандмауэр.Далееонможетугадатьномера последовательностиTCP-пакетовисделатьтак,чтобы доверяющийобратномуадресусервисвыполнилнужноеему действие.Этооченьтруднаявреализацииатака,которая, темнеменее,можетбытьвыполненаграмотнымспециалистом,аеслиречьидетопротоколеUDP,тоэтоподсилуи кулхацкеру.

Схемапрохожденияпакетачерезпод-

системуnetfilter ядраLinux

Ксчастью,защититьсяотподобныхатаклегко.Достаточно неоткрыватьпортынезащищенныхсервисоввовнешний мир,авслучаерезкойнеобходимостииспользоватьзащитныесистемысамихсервисов(например,сертификатыssh) илимеханизм«стукавпорты»(онемрассказановконце статьи).

Ситуация становится более сложной, когда дело касается сетевого моста, разделяющего внутреннюю и внешнюю сети (или две локальных сети). Доверительные отношения внутри локальной сети — обычное дело. Сервисы доступны всем, никакой аутентификации, шифрования и т.д. — просто лакомый кусочек для взломщика. Находясь во внешней сети, он может узнать сетевую маску внутренней сети и сформировать пакеты с соответствующим ей обратным адресом, что приведет к получению доступа ко всем ресурсам локалки. Это действительно опасная ситуация, но ее легко предотвратить с помощью правильной настройки брандмауэра или ОС. Для этого достаточно запретить прохождение пакетов, обратные адреса которых соответствуют используемым во внутренней сети, с внешнего интерфейса:

Linux> iptables -A INPUT -i $outif \ -s 192.168.1.0/24 -j DENY

FreeBSD> ipfw add deny ip from \ 192.168.1.0/24 to any via $outif

OpenBSD> block in on $outif from \ 192.168.1.0/24 to any

128

XÀÊÅÐ 06 /137/ 10

Соседние файлы в папке журнал хакер