Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Учет процессов в BSD-стиле. Lire.

Рубрика: Безопасность -> Профилактика
Метки: |
Четверг, 25 марта 2010 г.
Просмотров: 7284
Подписаться на комментарии по RSS

Ведение журнала wtmp поддерживается практически всеми дистрибутивами Linux, но следующий метод - BSD Process Accounting (BSD-учет процессов) - поддерживается не во всех дистрибутивах.

     Как видно из названия, этот метод позаимствован из мира BSD. Он дает возожность протоколировать процессы, запущенные в системе. Если система его не поддерживает, рекомендуется включить его. Для этого надо перекомпилировать ядро, включив опцию CONFIG_BSD_PROCESS_ACCT в меню General Setup ядер 2.4 и 2.6.

     Также понадобится пакет GNU Accounting Utilities Package (http://savannah.gnu.org/projects/acct/), содержащий пользовательские утилиты для учета процессов. После установки данного пакета нужно создать каталог, в который будет записываться информация учета процессов, будет применяться каталог /var/account. Еще надо создать файл pacct в данном каталоге:


# mkdir /var/account
# touch /var/account/pact
     Нужно убедится, что были установлены нужные права к этому файлу:

# chown root.root /var/account/pacct
# chmod 644 /var/account/pacct

     Для включения и выключения учета применяется утилита accton. Для включения учета во время загрузки нужно отредактировать файл /etc/red/rc.local, добавив в него следующие строки:

if   [ -х /sbin/accton ] then
     /sbin/accton   /yar/accton/pact
     echo   "Process   accounting   turned  on." fi

     Чтобы изменения вступили в силу, нужно перезагрузить компьютер.

     Утилита ас, входящая в состав пакета GNU Accounting Utilities Package, показывает информацию об общем времени функционирования пользователей. Наиболее полезными являются опции -d и -р, отображающие отдельно общее время функционирования за день и общее время деятельности индивидуального пользователя:

# ас -dp
root  5.24
Sep 7 total 5.24
gans  6.37
root  12.22
Sep 8 total 18.59
gans  4.43
root  4.43

Today total 8.86

     Команда sa обобщает всю отслеживаемую информацию:

# sa
6    52939.60ге  0.03ср    0avio   414K
2    342.70re    0.07cp    0avio   1122K   sshd*
2    342.53re    0.03ср    0avio   658K    bash
23   1041.60re   0.02cp    0avio   329K    ***other*
2    346.62re    0.01cp    0avio   1209K   sendmail*
14   0.0lre      0.00cp    0avio   355K    ao
5    866.13re    0.00cp    0avio   344K    agetty

     В первом столбце указывается процессорное время (в секундах), занятое процессом, второе поле - это «реальное время», также в секундах. Среднее употребление ядра показано в третьем столбце (в Кб). Четвертый столбец воспроизводит среднее количество операций ввода/вывода, а в пятом столбце выводится занимаемая процессом память. Последний столбец - это имя процесса.

     При вызове sa можно задать несколько полезных параметров командной строки:

  • -t - выводит общее употребление ресурсов для каждого пользователя;
  • -с - показывает применение процессора;
  • -u - показывает имя пользователя, запустившего процесс.
     О дополнительных параметрах командной строки можно прочитать в справочной системе.

     Рассмотрим еще одну утилиту из данного пакета - lastcomm. Эта утилита показывает информацию о последних выполненных командах. Если при запуске не указывать аргументы, то будет выведена вся информация из файла /var/account/pacct. Чтобы немного сократить вывод,  можно применять аргументы -user <имя пользователя> или -command <команда>:

# lastcomm -user root
grep      root    ??        0.01   sees    Wed Sep 8 17:23
stty      root    ??        0.01   sees    Wed Sep 8 17:23
stty      root    ??        0.01   sees    Wed  Sep   8   17:23
bash      root    ttyl      0.54   sees    Wed  Sep   8   14:29
init      root    stderr    0.01   sees    Wed  Sep   8   17:23
shutdown  root    stderr    0.00   sees    Wed  Sep   8   17:23
agetty    root    tty6    0.03   sees    Wed   Sep   8   14:29
agetty    root    tty5    0.03   sees    Wed  Sep   8   14:29
agetty    root    tty4    0.01   sees    Wed  Sep   8   14:29

     Анализ протоколов с помощью Lire.

     Поиск в системных журналах подозрительных записей - занятие изрядно утомительное. Для его облегчения были созданы анализаторы системных журналов. Список лучших анализаторов можно найти по адресу: http://www.linux.org/apps/all/Administration/Log_Analyzers.html.

     Более менее нормальный анализатор - Lire, - доступен по адресу: http://www.logreport.org/lire. Lire умеет обрабатывать всевозможные файлы протоколов - протоколы syslog, Sendmail, Qmail, Postfix, Apache, lPTables, MySQL, BIND. Также Lire может создать отчет о подозрительных записях в нескольких форматах (HTML, XML и PDF).

     Для функционирования программы нужен Perl и много дополнительных модулей. Необходимые для Lire модули перечислены на Web-сайте разработчика. Если не знакома оболочка CPAN, упрощающая загрузку и установку дополнительных модулей Perl, то сейчас самое время с ней познакомиться - в дальнейшем это сделает жизнь проще. Описание данной оболочки будет дано позднее.

Очень интересный обзор блогов о безопасности.

Знакомьтесь: Securos

Комментариев: 3

  1. 2010-04-01 в 19:52:41 | carerakjan (анонимно)

    Здравствуй!

    У меня блог по безопасности. Предлагаю обмен постовыми. Тем более что я больше чем 4 месяца назад уже публиковал пост http://securos.org.ua/ya-ne-odin-obzor-blogov-po-bezopasnosti/ - как бы пресс-релиз и ссылка на твой блог там есть без noindex и nofollow. Надеюсь на сотрудничество.

  2. 2010-04-07 в 17:10:50 | admin

    Хороший обзор.

    Отписал автору на его блог.

  3. 2010-04-07 в 17:21:53 | carerakjan (анонимно)

    Спасибо за ссылку.

    Удачи Вам...

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)