файлы журналов в CentOS 7 [закрыто]

8

В CentOS 7, как я могу найти и просмотреть все системные журналы, которые сообщают мне, кто пытался войти в систему, кто входил в систему, с какими процессами они контактировали, что они выполняли и т. Д. Я хочу иметь возможность связать каждое действие с идентификатор пользователя или удаленный IP-адрес.

Мой var/log/каталог содержит множество ресурсов, включая /var/log/messagesи /var/log/secure, но большинство файлов имеют тип, Binary (application/octet-stream)и ОС не знает, как их открыть, если я не связываю с ними какую-то неизвестную программу просмотра. Также, var/log/firewalldпохоже, не содержится полезной информации.

Я могу найти все журналы, созданные моим приложением, моей базой данных и NginX / Apache.

CodeMed
источник
Хорошо, вы нашли, /var/logи все они являются двоичными файлами? Уверен? Как вы проверяете?
Брайам
@Braiam Я не сказал, что они были двоичными файлами. Я сказал, что большинство из них являются двоичными файлами. Например, /var/log/firewalldтекстовый файл, который, кажется, содержит бесполезную информацию. Я проверяю, нажав на файлы в графическом интерфейсе. Сначала щелкните левой кнопкой мыши, чтобы попытаться открыть, затем щелкните правой кнопкой мыши, чтобы просмотреть свойства, чтобы проверить тип файла.
CodeMed
Система не делает этого по умолчанию. Вы должны включить ведение журнала аудита, чтобы получить это. Я показываю многие из методов в этом A: unix.stackexchange.com/questions/75051/… . Здесь есть хороший обзор аудита: security.blogoverflow.com/2013/01/… . Ищите других, их много.
SLM
@slm Я читаю ваши ссылки. Спасибо. Это будет веб-сервер. Мне нужно будет отследить личность каждого человека, который каким-либо образом касается любой записи в базе данных или любого файла в определенных частях файловой системы. Мне также нужно будет использовать эти данные регистрации для настройки оповещений, которые срабатывают каждый раз, когда неавторизованный пользователь получает доступ к каким-либо данным. Я знаю, как вести журнал на уровне приложений и баз данных. Я хочу настроить ведение журналов так, чтобы журналы CentOS можно было связывать с журналами веб-контейнера, журналами приложений и журналами базы данных, возможно, с помощью ip. Как мне сформулировать вопросы об уровне CentOS этого требования?
CodeMed
@CodeMed - я бы сказал, что это CentOS 7, как и у вас. Я думаю, что вы можете делать то, что вы хотите, с помощью audd, относительно манипулирования файловой системой и того, какие команды / процессы вызываются пользователями в локальной файловой системе. Это не покажет ничего кроме пользователя nginx, apache и т. Д. делать X, хотя с уровня приложения. Возможно, вам придется смешать 2 вместе. Я бы также назвал его системным Q, а CentOS 7 - конкретный экземпляр.
СЛМ

Ответы:

10

Утилита (командной строки), которую вы должны использовать, это journalctl. Например, чтобы посмотреть на вывод dmesg:

journalctl --dmesg

или разбираемые записи, относящиеся к брандмауэру:

journalctl --output=json-pretty UNIT=firewalld.service

Для списка выбираемого блока используйте обычные инструменты:

journalctl --output=json-pretty | grep -F UNIT | sort -u

См. В man journalctlвашей системе дополнительные параметры для ограничения и указания выходных данных.

Энтон
источник
Спасибо. Это начало. Но мой вопрос более глобален. Как получить список всех доступных журналов? И как мне получить вывод в формате, который я могу использовать? Например, ресурс, который можно импортировать в Java-программу, которая отслеживается пользователем или ip. journalcdt --dmesgкажется, не идентифицирует кого-либо более конкретного, чем localhost.localdoman, и journalctl --firewalldпроизводит unrecognized option. Таким образом, ваше предложение еще не ответило на мой вопрос.
CodeMed
Вы действительно должны взглянуть на справочную страницу. Это довольно информативно. journalctl --output=json-pretty UNIT=firewalld.serviceдает вам вывод JSON.
Anthon
Спасибо за обновление. Я прочитал руководство, но ваш ответ может облегчить его применение. Прямо сейчас, journalctl --output=json-pretty | grep -f UNIT | sort -uдаетgrep: UNIT: No such file or directory
CodeMed
Кроме того, journalctl --output=json-pretty UNIT=firewalld.serviceработает , только когда я вошел в систему как пользователь root, но не когда я пытаюсь использовать терминал как обычный пользователь. Поэтому я пока не могу использовать этот код программно. Если бы я мог как-то автоматически сгенерировать новый набор файлов журналов для каждого выбираемого устройства, не оставляя мой пароль root в взломанном файле, то на этот вопрос был бы дан ответ.
CodeMed
@CodeMed В аргументах была опечатка grep(я не вырезал и не вставил и не опустил -Fопцию).
Энтон