Я рекомендую использовать AuditD . Это ведение журнала с использованием подсистемы аудита ядра Linux и, на мой взгляд, правильный способ сделать это, если вы серьезно. И учитывая природу вопроса, связанного с безопасностью, вы также должны использовать PAM . На уровне по умолчанию, в котором установлены только audd и PAM , вы должны автоматически получать все успешные и неудачные попытки SSH, зарегистрированные в вашем файле audit.log. Таким образом, вам действительно не нужно ничего настраивать, просто установите audd и PAM . Я знаю это из первых рук для SLES. И поспорим, что RHEL и любая другая корпоративная версия linux будут работать аналогично.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
в необработанном журнале аудита, сгенерированном Auditd, вы можете использовать что-то вроде aureport
фильтрации, описанное на страницах руководства audd , написать собственный анализатор текста или просто использовать VI и искать ключевые слова.
Вот исключение моего /var/log/audit/audit.log
файла со мной на моем сервере 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 пытается понять, что происходит в вашей системе - например, ваш коллега Боб, который ежедневно сидит за одним столом с hostname = bobscomputer и ip address = 192.168.5.5; если вы видите вчера успешную попытку ssh в 2 часа ночи под его именем пользователя с ip-адреса 10.10.5.6, то, возможно, в ваших интересах поговорить с Бобом, чтобы выяснить это. Возможна ли попытка взлома кем-то еще? И вскоре после этого su пытается получить root-права в журнале аудита из учетной записи Боба?
когда вы видите повторяющиеся res=failed
и auid=0
и acct=root
затем , что кто - то пытается SSH в ваш ящик в корневой учетной записи, и при изменении /etc/hosts.deny
с этим IP - адресом для SSHD.