Создание общего протокола контроля

Ниже приведено несколько примеров общего протокола контроля.

В этом примере предполагается, что системный администратор хочет воспользоваться подсистемой контроля для мониторинга работы большого многопользовательского сервера. Средства интеграции с IDS не применяются, просмотр контрольных записей с целью обнаружения несанкционированных операций выполняется вручную. Для того чтобы избежать неоправданного увеличения объема сохраняемых данных, записываются лишь сведения о некоторых основных событиях.

Решено сохранять и анализировать следующие события:
FILE_Write
Необходимо собирать информацию об операциях записи в файлы конфигурации, поэтому данное событие будет применяться для всех файлов из каталога /etc.
PROC_SetUserIDs
Изменения ИД пользователей
AUD_Bin_Def
Контроль конфигурации
USER_SU
Команда su
PASSWORD_Change
Команда passwd
AUD_Lost_Rec
Уведомление об утерянных записях
CRON_JobAdd
новые задания cron
AT_JobAdd
новые задания at
USER_Login
Все события входа в систему
PORT_Locked
Все блокировки терминалов из-за превышения числа неудачных попыток

Ниже приведен пример создания общего протокола контроля:

  1. Выберите критические важные файлы, изменения которых необходимо отслеживать, например, все файлы в подкаталоге /etc, и перечислите эти файлы в событии FILE_Write в файле objects:
    find /etc -type f | awk '{printf("%s:\n\tw = FILE_Write\n\n",$1)}' >> /etc/security/audit/objects
  2. С помощью команды auditcat настройте контроль в режиме лотка. Файл /etc/security/audit/bincmds выглядит примерно следующим образом:
    /usr/sbin/auditcat -p -o $trail $bin
  3. Измените файл /etc/security/audit/config, добавив в него класс, соответствующий интересующим нас событиям. Перечислите всех существующих пользователей и укажите для них класс custom.
    start:
            binmode = on
            streammode = off
    
    bin:
            cmds = /etc/security/audit/bincmds
            trail = /audit/trail
            bin1 = /audit/bin1
            bin2 = /audit/bin2
            binsize = 100000
            freespace = 100000
    
    classes:
            custom = FILE_Write,PROC_SetUser,AUD_Bin_Def,AUD_Lost_Rec,USER_SU, \
                     PASSWORD_Change,CRON_JobAdd,AT_JobAdd,USER_Login,PORT_Locked
    
    users:
            root = custom
            afx = custom
            ...
  4. Добавьте контрольный класс custom в файл /usr/lib/security/mkuser.default, чтобы с вновь создаваемыми ИД пользователей автоматически связывались необходимые вызовы контроля:
    user:
        auditclasses = custom
        pgrp = staff
        groups = staff
        shell = /usr/bin/ksh
        home = /home/$USER
  5. С помощью SMIT или команды crfs создайте новую файловую систему с именем /audit. Она должна быть достаточно большой для размещения двух приемных лотков и контрольного журнала необходимого размера.
  6. Введите команду audit start и проверьте файл /audit. Первоначально вы должны обнаружить два файла приемных лотков и пустой файл trail. После того, как система поработает в течение некоторого времени, в файл trail будут добавлены контрольные записи, которые можно будет просмотреть с помощью команды:
    auditpr  -hhelpPRtTc -v | more
В данном примере обрабатывается лишь несколько событий. Для просмотра всех событий необходимо указать класс ALL для всех пользователей. При этом будет создаваться огромный объем данных. Вы также можете добавить в класс custom события, относящиеся к изменению пользователей и прав доступа.