Перейти до вмісту
Блог › Налаштування ПЗ › Керування журналами автентифікації в Linux-системах

Керування журналами автентифікації в Linux-системах

Ведення логів або журналювання в Linux-системах є однією з основних системних функцій, яка дозволяє відстежувати будь-які дії, здійснені користувачем, системою або зовнішніми програмними засобами. У подальшому ця інформація стає основним джерелом даних для відновлення після збою або захисту від несанкціонованого доступу до ресурсів. Для можливості її ефективного використання необхідно розуміти принципи організації зберігання логів і методи роботи з ними. Розглянемо це більш детально.

Організація системного журналювання в Linux

Журналювання організоване таким чином, щоб упорядкувати вхідну інформацію залежно від її типу та призначення. З цією метою виділено кілька журналів для фіксації подій, серед яких можна назвати системний журнал, журнал повідомлень, журнал для застосунків і для служб.

У системному журналі фіксуються будь-які події, пов’язані з роботою системи, що гарантує певну стабільність у її функціонуванні. До цієї категорії також належать журнали автентифікації.

Інформація, пов’язана з автентифікацією користувачів, фізично розподілена між кількома системними файлами, серед яких є як текстові, так і бінарні. До основних текстових файлів належать auth.log і lastlog. До бінарних — btmp і wtmp. Усі вони зазвичай розміщуються в системному каталозі /var/log/.

У auth.log інформація зберігається у вигляді окремих записів, у полях яких записуються дані певного типу. Наприклад, там є поля для дати та часу автентифікації користувача, імені віддаленого хоста, а також для виведеного повідомлення. Це забезпечує фіксацію абсолютно всіх спроб підключення до системи з боку користувачів або сторонніх процесів.

  • У lastlog фіксуються дані останніх сесій кожного з зареєстрованих у системі користувачів.
  • У btmp реєструються дані про кожну з невдалих спроб автентифікації в системі.
  • У wtmp фіксуються всі останні входи користувачів.

Зібрана системою інформація про автентифікацію може бути використана як Адміністратором, так і самою системою. Наприклад, Адміністратор може використовувати її для:

  • Керування користувацькими профілями;
  • Виявлення слабких місць у захисті від несанкціонованого доступу;
  • Аналізу помилок входу в систему;
  • Виявлення спроб злому з певних IP-адрес і вжиття заходів для їх блокування;
  • Періодичного отримання оновлених даних про роботу системи автентифікації.

Що стосується використання інформації про автентифікацію самою Linux-системою, то слід зазначити, що завдяки їй стає можливим відстеження будь-яких змін, внесених у систему.

Для реалізації зазначених цілей Адміністратори використовують низку вбудованих і зовнішніх програмних засобів, які дозволяють переглядати дані у зручному вигляді, робити вибірку потрібних записів, встановлювати та налаштовувати автоматичну фільтрацію заборонених користувачів тощо. Розглянемо деякі з цих засобів у порядку зростання їх складності та важливості.

Використання простих засобів перегляду та пошуку в журналах автентифікації

До таких засобів можна віднести програми перегляду й навігації для текстових файлів великого розміру. Вони дозволяють вибирати потрібні частини файлу для перегляду, виділяти їх, а також здійснювати пошук даних, що відповідають заданим критеріям згідно зі встановленими шаблонами. Цих можливостей цілком достатньо для виконання більшості завдань з керування користувацькими профілями.

Найпоширенішими для Linux-систем є програми tail і less, кожна з яких має свою специфіку роботи та набір опцій запуску.


Програма tail

Це найпростіший засіб перегляду даних, який не має можливостей потужних редакторів, але дозволяє досить швидко перейти до потрібної частини файлу. За функціональністю вона найбільш близька до команди head. Команда має трохи більше десятка опцій запуску, що дозволяє встановлювати для неї різні режими роботи.

Для початку використаємо її без опцій. Для цього введемо в терміналі:

$ tail /var/log/auth.log

У результаті ми отримали інформацію з файлу auth.log про останні десять спроб підключення до системи. Чому саме десять? Тому що за замовчуванням ця програма виводить саме таку кількість записів з будь-якого файлу. Нижче наведено перші п’ять записів для аналізу.

Dec 18 15:33:42dedicatedsystemd-logind[603]New session 7664 of user root.  
Dec 18 15:33:42dedicatedsystemd: pam_unix(systemd-user:session)session opened for user root(uid=0) by (uid=0)  
Dec 18 15:37:27dedicatedsshd[1642251]Unable to negotiate with 218.92.0.59 port 4966: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]  
Dec 18 15:37:34dedicatedsshd[1642253]Unable to negotiate with 220.77.114.179 port 60039: no matching host key type found. Their offer: ssh-rsa,ssh-dss [preauth]  
Dec 18 15:38:02dedicatedsshd[1642255]Invalid user Oracle from 104.248.14.84 port 60530

Як бачимо:

  • у першому полі фіксується точна дата і час події;
  • у другому — ім’я хоста, з якого здійснювався вхід;
  • у третьому — джерело повідомлення (systemd-logind, sshd тощо);
  • у четвертому — текст системного повідомлення, наприклад: «відкрита нова сесія користувача root» або «недійсний користувач Oracle з IP 104.248.14.84».

Опції запуску роблять tail більш гнучкою. Переглянути їх можна командою:

$ man tail

Якщо потрібно вивести не 10, а 3 записи:

$ tail -n3 /var/log/auth.log

Щоб спостерігати зміни в реальному часі, застосовується опція -f:

$ tail -f /var/log/auth.log

Програма less

Цей інструмент має можливості повноцінного редактора, що дозволяє, наприклад, переглядати текст у будь-якому напрямку, виводити інформацію посторінково, а також здійснювати пошук за шаблоном.

$ less /var/log/auth.log

Для перегляду довідки:

$ man less

Корисні параметри:

  • -s — прибирає порожні рядки;
  • -a — забороняє пошук у поточному видимому фрагменті;
  • -Dxcolor — встановлює колір тексту.

Пошук здійснюється введенням фрази внизу екрана, а вихід — клавішею Q.

Використання системних засобів перегляду журналів автентифікації

До них належать вбудовані команди last і lastlog, які орієнтовані лише на роботу з журналами автентифікації, отримуючи дані як з текстових, так і з бінарних файлів.


Команда last

Виводить дані про всі останні спроби входу до системи, як успішні, так і невдалі (з файлу /var/log/btmp).

$ last

Виводиться:

  • ім’я користувача або процесу;
  • точка входу (порт, термінал);
  • IP-адреса;
  • дата і час події;
  • тривалість сесії.

Ця інформація дозволяє адміністратору отримати повну картину активності в системі.


Команда lastlog

Отримує дані з /var/log/lastlog — про останній вхід кожного користувача.

$ lastlog

Виводяться: ім’я користувача, порт, IP, дата та час останнього входу. Для системних процесів відображається фраза Never logged in.

Для фільтрації можна використовувати, наприклад:

$ lastlog --before 2

Це виведе користувачів, які входили в систему більше двох днів тому.


Наведені приклади дають чітке уявлення про те, що можливостей одних лише вбудованих інструментів для роботи з журналами автентифікації цілком достатньо для повсякденної роботи Адміністратора. А при використанні зовнішніх утиліт, таких як F2B (Fail2Ban), ці можливості стають практично необмеженими.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *