Робота з логами
- Деталі
- Категорія: Servers (uk)
- Опубліковано: Вівторок, 28 квітня 2020, 22:48
- Автор: Super User
- Перегляди: 3132
Всі файли логів, можна віднести до однієї з наступних категорій:
-
програми;
-
події;
-
служби;
-
системний.
Більшість лог файлів зазвичай зберігаються в теці /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 |
|
Пошта |
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 файл куди перенаправляємо відфільтровані логи