книги хакеры / журнал хакер / 135_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
|
- |
|
|
|
|
|
d |
|
|||||||
|
F |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
F |
|
|
|
|
|
|
|
i |
|
||
|
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
t |
|
||||
P |
D |
|
|
|
|
|
|
|
|
|
o |
|
|
|
P |
D |
|
|
|
|
|
|
|
|
o |
||
|
|
|
|
NOW! |
r |
|
|
|
|
|
|
|
NOW! |
r |
|||||||||||||
|
|
|
|
|
BUY |
|
SYN/ACK |
|
|
|
|
|
|
|
|
BUY |
|
|
|||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
w |
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
w |
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|
o |
|
|
|
w Click |
|
|
|
|
|
|
o |
||||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
|
|
.c |
|
|
|
|
|
. |
|
|
|
|
|
|
.c |
|
||||
|
|
p |
df |
|
|
|
|
e |
|
|
|
|
|
|
p |
df |
|
|
|
|
e |
|
|||||
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
g |
|
|
|
|||||||
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
update.conf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfservd.conf |
|
|
cfrun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfagent |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Client |
|
Policy server |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
(cfservd |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(cfservd) |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
cfexecd) |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfagent |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfrun |
cfagent.conf |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
update.conf |
cfrun.hosts |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfservd.conf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfservd.conf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Client |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(cfservd |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfexecd) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПРАВИЛАУправление поведением агента CFEngine производится с |
|
Форматописанияблоковконфигурационногофайла |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
помощью правил, описанных в конфигурационных файлах. Модифи- |
|
действие: |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
цируя их, администратор может изменять многие аспекты состояния |
|
class1:: |
# 'class1' — условие |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
системы, включая: |
|
|
объявление |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
• Проверка и изменение прав доступа и владельцев файлов. |
|
|
объявление |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
• Редактирование файлов. |
|
|
class2|class3:: |
# 'class2|class3' — условие |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
• Компрессия, удаление и другие манипуляции с файлами. |
|
|
объявление |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
• Удаленный запуск команд. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
• Перезапуск упавших демонов. |
|
Перваястроказадаеттипдействия,которыйнеобходимовыполнить. |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
• Установка ПО, включая обновления безопасности. |
|
CFEngineвторойверсииподдерживаетболее20различныхтипов |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
• Конфигурирование сетевых интерфейсов и таблиц маршрутизации. |
действий,средикоторыхестьтипfiles,которыйпозволяетпроверять |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
Конфигурационные файлы представляют собой своего рода скрипт на |
иисправлятьправаивладельцевфайлов,editfilesдляредактирования |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
языке высокого уровня, читая который, агент получает информацию |
файлов,packagesдляустановкипакетовидругие.Условие,какможно |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
о том, какие действия ему необходимо выполнить для конфигурации |
догадатьсяизназвания,задаетусловие,прикоторомдействиебудетвы- |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
целевой машины. Ключевая особенность этого скрипта заключается |
полнено.Этоможетбытьвремянасистемныхчасах,типоперационной |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
в том, что он ориентирован на получение одинаковых результатов |
системыиличто-тодругое.Чтобыдействиебыловыполненовлюбомслу- |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
на всех конфигурируемых машинах без необходимости составления |
чае,условиеможноопустить.Объявлениепредставляетсобойописание |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
отдельного скрипта для каждой из них. Чтобы добиться этого, язык |
того,чтонеобходимопроделатьврамкахзаданногодействия.Дляраз- |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
конфигурационного файла требует задать набор действий, которые |
личныхтиповдействийформаихописаниябудетотличаться,поэтому |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
приведут целевую систему к желаемому состоянию. Все это похоже |
призаданиинеиспользуемыхранеедействийтебепридетсяобращаться |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
на управление группой администраторов-эникейщиков, за каждым |
кдокументации.Кроме"обычных"действий,CFEngineпозволяетзада- |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
из которых закреплена определенная машина. Вместо того, чтобы |
ватьтакжемета-действия,которыепредназначенынедлямодификации |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
давать задание по установке и настройке apache каждому из них по |
состояниясистемы,адлявыполненияразличныхвспомогательных |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
отдельности, ты собираешь их всех и говоришь, что на подчиненных |
функций.Наиболееважныммета-действиемявляетсяcontrol,которое |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
машинах необходимо выполнить команду «apt-get install apache2», а |
позволяетконфигурироватьагента,скажем,задатьсписокдействийиих |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
затем изменить определенные строки файла httpd.conf. Таким образом |
очередностьвпеременнойactionsequence.Приведупример: |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
можно получить идентичные настройки индейца на всех машинах без |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
лишней головной боли. Конфигурационные файлы CFEngine разделе- |
|
$ sudo vi /tmp/sample.conf |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
ны на блоки, каждый из которых включает действие, условие и объяв- |
|
control: |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
ление. Описание этих блоков имеют следующую форму: |
|
|
actionsequence = ( files ) |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
|
|
XÀÊÅÐ 04 /135/ 10 |
|
|
|
|
|
|
|
|
|