Глава 5. Сбор информации
73
Таблица 5.2.
Файлы журналов Linux
Расположение журнала Описание
/var/log/apache2/
Журналы.доступа.и.ошибок.для.веб-сервера.Apache
/var/log/auth.log
Сведения.о.входе.пользователя.в.систему,.привилегированном.
доступе.и.удаленной.проверке.подлинности
/var/log/kern.log
Журналы.ядра
/var/log/messages
Общая.некритическая.системная.информация
/var/log/syslog
Общие.системные.журналы
Чтобы.получить.больше.информации.о.том,.где.хранятся.файлы.журналов.для.
данной.системы,.в.большинстве.дистрибутивов.Linux.обратитесь.к.файлам.
/etc/
syslog.conf
.или.
/etc/rsyslog.conf
.
Собираем файлы журналов Windows
В.среде.Windows.команду.
wevtutil
.можно.использовать.для.сбора.лог-файлов.
и.управления.ими..К.счастью,.эта.команда.вызывается.из.Git.Bash..Сценарий.
winlogs.sh
,.показанный.в.примере.5.2,.использует.для.вывода.списка.всех.доступ-
ных.журналов.параметр.
el
.команды.
wevtutil
,.а.для.экспорта.каждого.журнала.
в.файл.—.параметр.
epl
.
Пример 5.2.
Сценарий winlogs.sh
#!/bin/bash -
#
# Bash и кибербезопасность
# winlogs.sh
#
# Описание:
# Собираем копии файлов журнала Windows
#
# Использование:
# winlogs.sh [-z]
# -z Заархивировать вывод
#
TGZ=0
if (( $# > 0 ))
then
if [[ ${1:0:2} == '-z' ]]
then
TGZ=1 # флаг tgz для tar/zip-архивирования лог-файлов
shift
fi
74
Часть II • Защитные операции с использованием bash
fi
SYSNAM=$(hostname)
LOGDIR=${1:-/tmp/${SYSNAM}_logs}
mkdir -p $LOGDIR
cd ${LOGDIR} || exit -2
wevtutil el | while read ALOG
do
ALOG="${ALOG%$'\r'}"
echo "${ALOG}:"
SAFNAM="${ALOG// /_}"
SAFNAM="${SAFNAM//\//-}"
wevtutil epl "$ALOG" "${SYSNAM}_${SAFNAM}.evtx"
done
if (( TGZ == 1 ))
then
tar -czvf ${SYSNAM}_logs.tgz *.evtx
fi
.Сценарий.начинается.с.простой.инициализации.и.оператора.
if
,.который.про-
веряет,.были.ли.предоставлены.какие-либо.аргументы..
$#
.—.это.специальная.
переменная.оболочки,.значением.которой.является.количество.аргументов,.пере-
даваемых.в.командной.строке.при.вызове.скрипта..Это.условие.для.
if
.из-за.
двойных.скобок.является.арифметическим.выражением,.поэтому.можно.исполь-
зовать.символ.«больше».(
>
).и.выполнять.численное.сравнение..Если.этот.символ.
в.выражении.
if
.используется.с.квадратными.скобками,.а.не.с.двойными,.символ.
>
.
выполняет.лексическое.сравнение.—.в.алфавитном.порядке..Для.численного.срав-
нения.необходимо.добавить.
-gt
.в.квадратных.скобках.
Для.этого.сценария.единственным.аргументом,.который.мы.поддерживаем,.явля-
ется.
-z
,.указывающий,.что.по.окончании.процесса.все.собранные.файлы.журналов.
должны.быть.сжаты.в.один.файл.TAR..Это.также.означает,.что.мы.можем.исполь-
зовать.простой.тип.разбора.аргументов..В.следующем.скрипте.воспользуемся.более.
сложным.анализатором.аргументов.(
getopts
).
.В.ходе.этой.проверки,.начиная.с.начала.строки.(смещение.0.байт).длиной.2.бай-
та,.принимается.подстрока.первого.аргумента.(
$1
)..Если.аргумент.
-z
,.то.мы.уста-
новим.флаг..Для.удаления.этого.аргумента.в.сценарии.выполняется.сдвиг.(
shift
)..
То,.что.ранее.было.вторым.аргументом.(и.если.таковой.имелся),.теперь.становится.
первым..Третий.(если.таковой.имеется).становится.вторым.и.т..д.
.Если.пользователь.хочет.указать.расположение.журналов,.это.можно.определить.
в.качестве.аргумента.в.сценарии..Необязательный.аргумент.
-z
,.если.он.указан,.
уже.был.смещен,.поэтому.любой.пользовательский.путь.теперь.станет.первым.
Do'stlaringiz bilan baham: |