Моя рекомендація - використовувати аудид . Це ведення журналу за допомогою підсистеми аудиту ядра Linux і, на мій погляд, правильний спосіб зробити це, якщо ви серйозно. І зважаючи на характер питання (безпека пов'язана), ви також повинні використовувати PAM . На рівні за замовчуванням, коли встановлено аудит та PAM , вам слід автоматично отримувати всі успішні та невдалі спроби SSH увійти у ваш файл audit.log. Тож вам насправді нічого не потрібно налаштовувати, просто встановіть аудит та встановіть PAM . Я знаю це з перших рук для SLES. І став би, і RHEL, і будь-яка інша корпоративна версія Linux працюватиме аналогічно.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
У сирому журналі аудиту, сформованому аудитом, ви можете використовувати або використовувати щось на кшталт того, aureport
щоб відфільтрувати його, описане на сторінках аудитора , записати власний аналізатор тексту, або просто використовувати VI та шукати ключові слова.
ось, крім мого /var/log/audit/audit.log
файлу зі мною ssh'ing на моєму сервері Linux.
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
- Згадане вище, моє ім’я сервера - акула .
- багато таких рядків є в audit.log, я хочу, щоб цей був заснований на exe = "/ usr / sbin / sshd"
- uid облікового запису, в який входить ssh'd, - це значення auid, яке становить 23456 для цього прикладу
- ім'я облікового запису користувача, пов’язаного з auid, вказується через acct = "ron"
- У більшості випадків система аудиту записуватиме ім'я хоста dns системи, яка намагається підключитися, але завжди має її ip-адресу
- дата запису, яка знаходиться в епоху, тож вам доведеться перетворити це через щось на кшталт того,
date --date @1480622612.317
що призводить до Thu Dec 1 15:03:32 EST 2016
і є, коли я ssh'd на свій сервер.
Коли res=failed
ви хочете дослідити ці ip адреси та імена хостів, щоб побачити, які системи намагалися підключити, під якою спробою користувальницьке ім'я. І очевидно, що успішні ssh намагаються зрозуміти, що відбувається у вашій системі - наприклад, ваш колега-колега, який щодня сидить за одним столом з ім'ям хоста = bobscomputer та ip адресою = 192.168.5.5; якщо ви бачите успішну сш сш вчора о 2 ранку під його ім'ям користувача з ip адреси 10.10.5.6, наприклад, тоді вам може бути в інтересах поговорити з бобом, щоб розслідувати. Можлива спроба зламати когось іншого? І незабаром після цього є спроби вкорінитись у журнал аудиту з облікового запису bob?
коли ви бачите, що повторюються res=failed
і auid=0
і acct=root
то , що хто - то намагається SSH в ваш ящик в кореневій облікового запису, і при зміні /etc/hosts.deny
з цим IP - адресою для SSHD.