AIX® предоставляет простые способы проконтролировать время последнего доступа к файлу. Пример — команда
ls. Но иногда нужно знать, кто (или какой процесс) получал доступ к файлу. Такая информация может понадобиться для отладки или контролирования важных файлов. Отслеживать сведения, связанные с операциями чтения и записи для файла, возможно с помощью аудита.
В AIX системы аудита предназначены для записи сведений, связанных с безопасностью и для предупреждения администраторов о дырах в безопасности. Вы можете настроить конфигурацию и файлы данных об объекте, которые используются подсистемой аудита, для контроля за любым интересующим вас файлом. Также можно использовать одну из возможностей аудита, а именно мониторинг в режиме реального времени, для отслеживания определённых процессов и файлов, которые произвольно изменяются неопознанными процессами.
Всё, что нужно для контроля файлов — это обычная система AIX с правами администратора (root). Для команды audit разрешён доступ на исполнение для администратора (root) и пользователей группы audit. Пользователи должны входить в группу audit, чтобы иметь разрешение выполнять аудит в системе.
Обобщённая последовательность шагов для контролирования файлов:
Настройка подсистемы аудита требует создания специальных записей в файлах данных об объекте и в файлах настроек, которые подсистема аудита использует, чтобы генерировать результаты.
В этом сценарии мы следим за файлом /home/test.txt. Чтобы настроить подсистему аудита, выполним следующие операции:
- В файле /etc/security/audit/objects создадим запись для /home/test.txt, используя следующий формат:
/home/test.txt: r = "S_NOTAUTH_READ" w = "S_NOTAUTH_WRITE"
S_NOTAUTH_READиS_NOTAUTH_WRITE— это ключевые слова для контроля чтения и записи соответственно. Эти ключевые слова могут быть заменены любым другим ключевым словом, в зависимости от ваших требований.Также возможен контроль более чем одного файла с помощью того же ключевого слова, с помощью индивидуальных записей в файле /etc/security/audit/objects для каждого файла, который вы хотите контролировать, в таком же формате.
- В файле /etc/security/audit/config сделаем следующую запись в подсекции классов:
classes: abusers = S_NOTAUTH_READ, S_NOTAUTH_WRITE
- В файле /etc/security/audit/config добавим записи для всех пользователей:
users: root = general, abusers user1=abusers user2=abusers . . . userN=abusers
Этот набор записей в файле гарантирует, что любая операция чтения или записи, применённая к файлу /home/test.txt любым пользователем из этого списка, будет проконтролирована и зафиксирована подсистемой аудита. Если запись для пользователя уже существует, то можно добавить запись для abusers, отделив ее от предыдущей с помощью запятой.
- 1.Аудит обеспечивает мониторинг данных в двух режимах:
- Режим BIN: пишет события аудита в два периодически изменяющихся временных файла BIN и затем дописывает их в один файл контрольного журнала аудита.
- Режим STREAM: пишет записи аудита в кольцевой буфер, который может быть прочитан файлом устройства /dev/audit.
В нашем сценарии нет значительной разницы между двумя режимами, за исключением формата вывода. Для сбора данных возможно включить любой или сразу оба режима. Режимы могут быть включены и выключены изменением соответствующих записей в файле etc/security/audit/config. Пример ниже включает режим STREAM.
start: bin mode = off stream mode = on
Указанные выше шаги гарантируют, что файл /home/test.txt состоит под наблюдением подсистемы аудита.
Чтобы производить мониторинг вывода, сначала запускаем подсистему аудита, выполнив команду:
# audit start |
Так как сбор данных включен в режиме STREAM, то можно начать сбор данных, выполнив команду:
# cat /etc/security/audit/streamcmds |
Эта команда обеспечивает следующую информацию:
/usr/sbin/auditstream | auditpr > /audit/stream.out & |
Результаты аудита записываются в файл /audit/stream.out, который может наблюдаться в реальном времени для контролирования операций чтения и записи.
Типичный вывод выглядит так, как показано в листинге 1.
Листинг 1. Файл вывода — сбор данных в режиме STREAM
# tail -f /audit/stream.out event login status time command --------------- -------- -------- --------- --------- S_NOTAUTH_READ root OK Thu May 24 14:07:05 2007 cat S_NOTAUTH_READ root OK Thu May 24 14:07:05 2007 cat FILE_Unlink root OK Thu May 24 14:07:09 2007 vi S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi S_NOTAUTH_WRITE root OK Thu May 24 14:07:13 2007 vi FILE_Unlink root OK Thu May 24 14:07:13 2007 vi FILE_Unlink root OK Thu May 24 14:07:20 2007 vi S_NOTAUTH_READ ash OK Thu May 24 14:09:39 2007 cat S_NOTAUTH_READ ash OK Thu May 24 14:09:39 2007 cat |
Интерпретация выходного файла простая. Например, следующая строка
S_NOTAUTH_WRITE root OK Thu May 24 14:07:13 2007 vi |
показывает, что операция записи в файл была осуществлена администратором (root) во вторник 24 мая 2007 года в 14:07:13.
Если включен сбор данных в режиме BIN, то можно начать сбор данных, выполнив следующую команду:
# /usr/sbin/auditpr -v < /audit/trail > /audit.out |
Эта команда записывает результаты аудита в файл /audit.out, который также может наблюдаться в реальном времени.
Типичный вывод выглядит так, как показано в листинге 2.
Листинг 2. Файл вывода — сбор данных в двоичном режиме
# vi /audit.out
"/audit.out" 30 lines, 2012 characters
event login status time command
-------- -------- ----------- ------------- --------------
S_NOTAUTH_READ root OK Thu May 24 15:07:27 2007 cat
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:27 2007 cat
<tail format undefined>
FILE_Unlink root OK Thu May 24 15:07:32 2007 vi
filename /var/tmp/Ex21778
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_WRITE root OK Thu May 24 15:07:37 2007 vi
<ail format undefined>
FILE_Unlink root OK Thu May 24 15:07:37 2007 vi
|
Мы можем наблюдать за файлами вывода и следить за операциями чтения и записи в наших файлах.
- Примите участие в обсуждении материала на форуме.
- IBM
Redbooks:
прочитайте документ "Отчётность и аудит в AIX 5L" и узнайте, как настроить, обслуживать и диагностировать продвинутые функции для ведения аудита и отчётности в системах AIX 5L™.
- Оригинал статьи
Use auditing to track reads and writes in a file.(EN)
- AIX и
UNIX:(EN)
зона разработчиков AIX и UNIX (developerWorks) предоставляет море информации о всех аспектах администрирования AIX-систем и расширяет горизонты ваших знаний о UNIX.
- New to AIX and UNIX?:
посетите страничку «New to AIX and UNIX» чтобы узнать больше о AIX и UNIX.
- AIX Wiki:
откройте для себя среду сотрудничества для обмена технической информацией по AIX.
- developerWorks technical events and webcasts:
будьте в курсе текущих технических событий и онлайн-конференций developerWorks.
- Podcasts: настройтесь и идите в ногу с техническими экспертами IBM.(EN)
Ашиш Найнвал — специалист технической поддержки AIX по вопросам безопасности и системный администратор в IBM India Systems and Technology Lab. Два последних года он был одной из ключевых фигур в системе безопасности AIX. Ашиш также много занимался администрированием System p™ и имеет разнообразный опыт общения с клиентами. Связаться с ним можно по адресу anainwal@in.ibm.com.