Головна

Робота з логами

Всі файли логів, можна віднести до однієї з наступних категорій:

  • програми;

  • події;

  • служби;

  • системний.

Більшість лог файлів зазвичай зберігаються в теці /var/log.

  • /var/log/syslog містить глобальний системний журнал, в якому пишуться повідомлення з моменту запуску системи, від ядра Linux, різних служб, виявлених пристроях, мережевих інтерфейсів і багато іншого.

  • /var/log/auth.logінформація про авторизацію користувачів, включаючи вдалі і невдалі спроби входу в систему, а також задіяні механізми аутентифікації.

  • /var/log/dmesgдрайвера пристроїв. Однойменною командою можна переглянути вивід вмісту файлу. Розмір журналу обмежений, коли файл досягне своєї межі, старі повідомлення будуть перезаписані новішими. Задавши ключ --level = можна відфільтрувати вивід за критерієм значимості.

  • /var/log/alternatives.log — Вивід програми update-alternatives, в якому знаходяться символічні посилання на команди або бібліотеки за замовчуванням.

  • /var/log/boot.logІнформація, що пишеться при завантаженні операційної системи.

  • /var/log/cronЗвіт служби crond

  • /var/log/cupsВсе, що пов'язано з друком і принтерами.

  • /var/log/faillogНевдалі спроби входу в систему. Дуже корисно при перевірці загроз в системі безпеки, хакерських атаках, спроб злому методом перебору. Прочитати вміст можна за допомогою команди faillog.

  • /var/log/kern.logЖурнал містить повідомлення від ядра і попередження, які можуть бути корисні при усуненні помилок користувальницьких модулів, що вбудовані в ядро.

  • /var/log/maillog/Лог поштового сервера

  • /var/log/samba/ — Логи файлового сервера Samba

  • /var/log/Xorg.0.log — Логи X сервера. Якщо в них є рядки починаються з EE, то слід звернути на них увагу.

  • /var/log/dpkg.logЛог роботи пакетного менеджера. Тут можна побачити список встановлених програм.

 

Бінарні логи обліку сесії користувачі

  • /var/log/lastlogОстання сесія користувачів. Прочитати можна командою last.

  • /var/log/btmpЖурнал запису невдалих спроб входу в систему.

  • /var/log/utmpСписок входів користувачів в систему на даний момент.

  • /var/log/wtmpЩе один журнал запису входу користувачів в систему. Виведення на екран командою utmpdump.

 

Перенаправлення логів на інший сервер

Для того, щоб передавати логи на інший сервер потрібно у файл /etc/rsyslog.d/50-default.conf додати рядок

*.* @10.0.0.1

*.* це facility.severity

@10.0.0.1 ip-адреса лог-сервера куди будуть відправлені логи по протоколу udp

Якщо перед ip-адресою поставить @@ то логи підуть по протоколу tcp

 

Можливі категорії для логів (facility):

 

Категорія

Опис

0

kern

Повідомлення, що відправлені ядром

1

user

Програми користувача

2

mail

Пошта

3

daemon

Сервіси (демони)

4

auth

Безпека / вхід в систему / аутентифікація

5

syslog

Повідомлення від syslog

6

lpr

Логи друку

7

news

Групи новин (usenet)

8

uucp

Unix-to-Unix CoPy (копіювання файлів між комп'ютерами)

9

cron

Планувальник завдань

10

authpriv

Безпека / вхід в систему / аутентифікація - захищений режим

11

ftp

Список при передачі даних по FTP

12

ntp

Лог служби синхронізації часу (існує не всюди)

13

security, log audit

Журнал аудиту (існує не всюди)

14

console, log alert

Повідомлення, що відправлені в консоль (існує не всюди)

15

solaris-cron, clock daemon

Cron в solaris (існує не всюди)

16-23

local0 - local7

Зарезервовані для локального використання. Рівень серйозності визначається числом від 0 до 7.

 

Можливі категорії для логів (severity):

 

Категорія

Опис

0

emerg

Система не працює (PANIC)

1

alert

Серйозна проблема, яка потребує уваги

2

crit

Критична помилка

3

err

Помилка (ERROR)

4

warning

Попередження (WARN)

5

notice

Важливе інформаційне повідомлення

6

info

Інформаційне повідомлення

7

debug

Відлагоджувальна інформація

 

Прийом логів з іншого сервера


Демон rsyslog вміє приймати логи по протоколу syslog

syslog це протокол що використовує udp- або tcp-з’єднання на порту 514.

Зверніть увагу - syslog сервер не має авторизації та інших обмежень по прийому трафіку, тому обмеження можна вводити тільки через iptables

Windows не має функціоналу по роботі з syslog і якщо адміну потрібно працювати з Windows то використовується спеціальна утиліта eventlog2syslog

Для того, щоб rsyslog приймав з мережі логи, потрібно у файлі /etc/rsyslog.conf розкоментувати такі рядки:

 

# provides UDP syslog reception

module(load="imudp")

input(type="imudp" port="514")

# provides TCP syslog reception

module(load="imtcp")

input(type="imtcp" port="514")


Далі потрібно перезапустити сервіс rsyslog

 

Логування з'єднань в iptables

 

Правилами iptables можна логувати пакети та передавати дані про них демону syslog. За замовчуванням логи будуть писатися у файл syslog.

Для створення логів треба зробити правило на зразок

iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j LOG --log-prefix "web-new " --log-level msg


це правило дає команду iptables передавати логи демону syslog з певним префіксом і рівнем важливості подій


В цьому правилі дія LOG може мати додаткові параметри

--log-prefix задає унікальну мітку по якій зручно шукати дані повідомлення у файлі логів

--log-level задає рівень серйозності логів (за замовчуванням message)

 

Винесення частини логів в окремий файл

 

Якщо у вас є потреба у винесенні певної частини логів в окремий файл, то це можна зробити за допомогою налаштування rsyslog

Налаштування rsyslog можна робити в двох місцях, основний файл конфігурації /etc/rsyslog.conf або в додаткових файлах, що містяться в теці /etc/rsyslog.d

Для зручності налаштування в теці /etc/rsyslog.d створюємо файл iptables.conf


В нашому випадку ми перенаправляємо логи від iptables і в файл /etc/rsyslog.d/iptables.conf вносимо рядки

 

:msg, contains, "web-new" -/var/log/iptables.log

& ~


msg це log-level який задає рівень серйозності логів

contains, "web-new" робимо фільтрацію по мітці тобто по лог-префіксу

-/var/log/iptables.log файл куди перенаправляємо відфільтровані логи