Настройка аудита
Все факты начала и окончания работы пользователя фиксируется в журнале /var/log/auth.log на клиентской машине. Например:
Feb 19 12:32:48 nd-nout fly-dm: :0[3421]: pam_unix(fly-dm:session): session opened for user ivanov by (uid=0)
Указанная запись содержит информацию о начале сессии для пользователя с учетной записью « ivanov ».
Указанная запись содержит информацию о завершении сессии для пользователя с учетной записью « petrovich ».
Кроме того, информация о начале и завершении работы пользователя попадает в журнал подсистемы безопасности parsec: /var/log/parsec/user.mlog , доступный для просмотра при помощи утилиты « userlog ». В журнале регистрируются события с типами « auth » (вход), « exit » (выход).
[u] ‘Tue Feb 19 12:50:00 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 12:57:59 2013’ ‘/usr/bin/fly-dm’ [s] exit(«fly-dm»,»root»)
[u] ‘Tue Feb 19 13:14:52 2013’ ‘/bin/login’ [s] auth(«login»,»root»)
[u] ‘Tue Feb 19 13:15:33 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:15:39 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:19:53 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:20:13 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:20:23 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:20:31 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:27:48 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:27:54 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:33:51 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:33:55 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/login’ [s] auth(«login»,»petrovich»)
[u] ‘Tue Feb 19 13:39:53 2013’ ‘/bin/login’ [s] exit(«login»,»petrovich»)
Описание системы регистрации событий приведено в разделе 10 документа «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1». Дополнительная информация приведена на страницах справочного руководства « man » для расширенной системы протоколирования, доступной по команде « man parselog ». В операционной системе специального назначения «Astra Linux Special Edition» обеспечивается регистрация всех событий в соответствии с требованиями документа «Руководящий документ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации» ФСТЭК России, предъявляемых к средствам вычислительной техники третьего класса защищенности. Регистрация событий может быть проверена следующим образом: устанавливаем для пользователя (доменного) все возможные флаги аудита:
Audit policy user:petrovich
Audit success rules: ocxudntligarmphew
Cron не стартует logrotate
Всем привет. Появилась необходимость, создать ротацию лог файла, так как уж больно аудит забивает логи. конфиг /etc/logrotate.d/parsec выглядит следующим образом:
/var/log/parsec/kernel.mlog < daily missingok rotate 6 size 2k nocompress notifyempty prerotate /etc/init.d/parlogd restart >/dev/null endscript >
Сам скрипт logrotate находится в папке /etc/cron.daily , но cron отказывается его стартовать. Если же запускать в ручную, командой
То ротация, лог файла происходит, создается файл kernel.mlog1. А файл kernel.mlog остается пустым 0б. Подскажите, кто сталкивался?
Что-то у вас много нестыковок. Сейчас скрипты из /etc/cron.daily запускаются anacron’ом. Потом если файл большого размера и вы ограничиваете его размер, то тогда нужно запускать не раз в день, а чаще. И обычно пишущему процессу посылают сигнал, а не restart, и в любом случае, после ротации файла, а не до (то есть postrotate).
Извиняюсь, напутал с конфигом. На деле он следующего вида.
/var/log/parsec/kernel.mlog < daily missingok rotate 6 size 2k nocompress notifempty postrotate /etc/init.d/parlogd restart >/dev/null endscript >
т.е нужно оставлять либо daily если хочу ежедневно, либо по размеру файла? И вопрос как запускается anacron? в планировщике идет следующая строка:
25 6 * * * test-x /usr/sbin/anacron || (cd / && run-parts --report /etc/cron.daily
Не совсем. Просто проверка размера файла происходит только в момент вызова logrotate. Если запускать logrotate раз в сутки, то указание размера смысла не имеет, будет срабатывать ″daily″.
Если данных в лог пишется много и хочется как-то ограничить размер, то нужно вызывать logrotate чаще. Хотя 2к это совсем мало — один экран текста.
Прочитайте что-нибудь про команды sh (bash). Эта строка проверяет наличие исполняемого файла anacron и если он есть ничего не делает. То есть, если anacron есть, то он запускает задачи из /etc/cron.daily, при условии, что не редактировался дефолтный конфиг в /etc/anacrontab и не удалялся файл /etc/cron.hourly/0anacron.
И anacron не запускает задание прямо в 6:25, он запускает у указанный в конфиге промежуток времени.
Можете поместить скрипт logrotate в /etc/cron.hourly или отредактировать /etc/crontab, чтобы logrotate запускался раз в час.
Допустим в конфиге ротации у меня указан параметр daily. Если перенести его в cron.hourly, то будет ли происходить ротация каждый час, если указан параметр daily?
Нет, часовой ротации не будет. Будет ротация по размеру файла (если он указан).
Linux var log parsec
Очищаем журнал событий на ЭВМ:
Выполняем вход в систему пользователем «AstraLinux». Смотрим журнал событий командой kernlog с фильтрацией по имени пользователя «AstraLinux»:
ac-old:~# kernlog | grep «AstraLinux*»
[p] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/bash’ [f] open(«/ald_home/AstraLinux/.bash_profile»,O_RDONLY) = -2 ENOENT (Нет такого файла иликаталога)
[p] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/bash’ [f] open(«/ald_home/AstraLinux/.bash_login»,O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/bash’ [f] open(«/ald_home/AstraLinux/.profile»,O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/bash’ [s] open(«/ald_home/AstraLinux/.bash_history»,O_RDONLY) = 3
[p] ‘Tue Feb 19 13:39:49 2013’ ‘/bin/bash’ [s] open(«/ald_home/AstraLinux/.bash_history»,O_RDONLY) = 3
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/bash’ [f] open(«/ald_home/AstraLinux/.bash_logout»,O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/bash’ [s] open(«/ald_home/AstraLinux/.bash_history»,O_WRONLY | O_APPEND) = 3
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/bash’ [s] open(«/ald_home/AstraLinux/.bash_history»,O_RDONLY) = 3
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/login’ [s] umount(«/ald_home/AstraLinux/mac/0/0») = 0
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/login’ [s] umount(«/ald_home/AstraLinux/mac») = 0
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/login’ [s] umount(«/ald_home/AstraLinux») = 0
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/login’ [s] umount(«/var/private/mac/AstraLinux/0/0») = 0
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/bin/login’ [s] umount(«/var/private/mac/AstraLinux») = 0
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/usr/sbin/pmvarrun’ [s] create(«/var/run/pam_mount/AstraLinux»,O_RDWR | O_CREAT,-rw——-) = 7
[p] ‘Tue Feb 19 13:39:52 2013’ ‘/usr/sbin/pmvarrun’ [s] chown(«/var/run/pam_mount/AstraLinux»,2500,0) = 0
[p] ‘Tue Feb 19 13:39:53 2013’ ‘/sbin/umount.cifs’ [s] umount(«/ald_home/AstraLinux») = 0
Имеется множество событий «open» (открытие файла), «mount» (монтирование и размонтирование), «create» (создание объекта), «chown» (изменение прав доступа пользователя). В домашнем каталоге пользователя «AstraLinux» создаем каталог «testdir» и в нем файл «testfile». Владелец файлов — сам пользователь:
dc-old:~# ls -l /ald_export_home/AstraLinux/ | grep test
drwxr-x— 2 AstraLinux AstraLinux 4096 Фев 19 13:50 testdir
dc-old:~# ls -l /ald_export_home/AstraLinux/testdir/
-rwxr—— 1 AstraLinux AstraLinux 5 Фев 19 13:50 testfile
Устанавливаем на данные файлы флаги аудита:
dc-old:/ald_export_home/AstraLinux# getfaud testdir/
dc-old:/ald_export_home/AstraLinux# getfaud testdir/testfile
После этого на ЭВМ пользователем «AstraLinux» удаляем testdir/testfile, создаем testdir/testfile2. На сервере в журнале /var/log/parsec/kern.mlog регистрируются события:
[f] ‘Tue Feb 19 14:07:23 2013’ ‘/usr/sbin/smbd’ [s] open(«/ald_export_home/AstraLinux/testdir»,NO_PERMS | O_NONBLOCK | O_DIRECTORY) = 0
[f] ‘Tue Feb 19 14:07:25 2013’ ‘/usr/sbin/smbd’ [s] unlink(«/ald_export_home/AstraLinux/testdir/testfile (deleted)») = 0
[f] ‘Tue Feb 19 14:07:34 2013’ ‘/usr/sbin/smbd’ [s] create(«/ald_export_home/AstraLinux/testdir/testfile2»,-rw-r——) = 0
[f] ‘Tue Feb 19 14:07:34 2013’ ‘/usr/sbin/smbd’ [s] open(«/ald_export_home/AstraLinux/testdir/testfile2»,O_RDONLY | O_CREAT | O_NOFOLLOW) = 0
[f] ‘Tue Feb 19 14:12:15 2013’ ‘/usr/bin/scp’ [s] create(«/ald_export_home/AstraLinux/testdir/remote_cp»,-rw-r—r—) = 0
[f] ‘Tue Feb 19 14:12:15 2013’ ‘/usr/bin/scp’ [s] open(«/ald_export_home/AstraLinux/testdir/remote_cp»,O_RDONLY | O_CREAT) = 0
При создании объектов внутри каталога, для которой отслеживаются соответствующие события («create»), создание любых объектов в ней регистрируется. При установке на файл мандатного уровня/категории регистрируется события «chmac» (изменение мандатных атрибутов).
setfaud -s o:ocum:ocum testdir/testfile2
chmac 1:0 testdir/testfile2
[f] ‘Tue Feb 19 14:24:55 2013’ ‘/bin/bash’ [s] open(«/ald_export_home/AstraLinux/testdir»,NO_PERMS | O_NONBLOCK | O_DIRECTORY) = 0
[f] ‘Tue Feb 19 14:24:56 2013’ ‘/usr/sbin/chmac’ [s] parsec_chmac(«/ald_export_home/AstraLinux/testdir/testfile2»,,0) = 0
Регистрация событий передачи по линиям и каналам связи является требованием документа ФСТЭК России «Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации» и должна обеспечиваться конструктором АС. При этом операционная система специального назначения «Astra Linux Special Edition» предоставляет возможность регистрации подобного класса. Далее приведен протокол работы пользователя при обмене по сети с использованием утилиты ping.
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/bash’ [s] exec(«/bin/ping») = 0
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/ld.so.cache»,O_RDONLY) = 3
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/lib/libresolv.so.2»,O_RDONLY) = 3
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/lib/libc.so.6»,O_RDONLY) = 3
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] setuid(2500) = 0
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/resolv.conf»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/resolv.conf»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/nsswitch.conf»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/ld.so.cache»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/lib/libnss_files.so.2»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/host.conf»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/hosts»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/ld.so.cache»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/lib/libnss_dns.so.2»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:29 2013’ ‘/bin/ping’ [s] open(«/etc/hosts»,O_RDONLY) = 4
[p] ‘Fri Feb 22 12:57:30 2013’ ‘/bin/ping’ [s] open(«/etc/hosts»,O_RDONLY) = 4
В протоколе зафиксированы все факты отправки и приема сетевых пакетов, а также IP-адреса отправителя и получателя. Порядок настройки системы регистрации событий описан в разделе 10 документа «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1».
Существует известная проблема в версии 1.2, когда на клиентскую машину заходит пользователь под уровнем 0, то аудит событий перестает работать корректно. Для исправления на каждой клиентской машине, где будут заходить пользователи в файле /etc/pam.d/common-session добавить в конец строку:
session optional pam_ald.so populate_krb5cc
Если на сервер должны заходить пользователи, то на нем так же внести эти изменения. После этого желательно перезагрузить машины.