В настоящее время на рынке доступно множество инструментов для мониторинга с открытым исходным кодом, в том числе для мониторинга производительности систем Linux.
Они отправляют уведомление по электронной почте, когда система достигает указанного порогового значения.
Они контролируют все, например, использование ЦП, использование памяти, использование подкачки, использование дискового пространства и многое другое.
Но я не думаю, что у них есть возможность отслеживать новые действия по созданию пользователей и предупреждать о них.
Если нет, то это не имеет значения, так как мы можем написать собственный скрипт bash для достижения этой цели.
В прошлом мы добавили много полезных скриптов шелл.
Если вы хотите посмотреть их, перейдите по ссылках ниже:
- ⛓️ Как определить, как долго указанный удаленный сервер или устройство находились в автономном режиме
- ? Скрипт Bash для мониторинга журнала Messages (Warning, Error и Critical) в Linux
- ? Проверьте, существует ли каталог в оболочке Linux или Unix
- Как сделать ежедневные резервные копии с помощью rsync и cronjobs
Что делает скрипт?
Он отслеживает /var/log/secure и предупреждает администратора, когда в системе создается новая учетная запись.
Мы не можем часто запускать этот скрипт, поскольку создание пользователей происходит не очень часто.
Тем не менее, я планирую запускать этот скрипт один раз в день.
Таким образом, мы можем получить сводный отчет о создании пользователя.
Если в файле «/var/log/secure» для вчерашней даты была найдена строка useradd, скрипт отправит оповещение по электронной почте на указанный идентификатор электронной почты с информацией о новых пользователях.
Примечание. Вам необходимо изменить идентификатор электронной почты на свой собственный вместо нашего.
# vi /opt/scripts/new-user.sh #!/bin/bash #Set the variable which equal to zero prev_count=0 count=$(grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | wc -l) if [ "$prev_count" -lt "$count" ] ; then # Send a mail to given email id when errors found in log SUBJECT="ATTENTION: New User Account is created on server : `date --date='yesterday' '+%b %e'`" # This is a temp file, which is created to store the email message. MESSAGE="/tmp/new-user-logs.txt" TO="admin@itsecforu.ru" echo "Hostname: `hostname`" >> $MESSAGE echo -e "n" >> $MESSAGE echo "The New User Details are below." >> $MESSAGE echo "+------------------------------+" >> $MESSAGE grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | grep -v 'failed adding'| awk '{print $4,$8}' | uniq | sed 's/,/ /' >> $MESSAGE echo "+------------------------------+" >> $MESSAGE rm $MESSAGE mail -s "$SUBJECT" "$TO" < $MESSAGE fi
Установите разрешение на выполнение для файла new-user.sh.
$ chmod +x /opt/scripts/new-user.sh
Наконец добавьте cronjob, чтобы автоматизировать все это.
Он будет работать каждый день в 7 часов.
# crontab -e 0 7 * * * /bin/bash /opt/scripts/new-user.sh
# cat /tmp/logs.txt Hostname: itsec.server10.com The New User Details are below. +------------------------------+ itsec.server10.com name=user1 itsec.server10.com name=user2 +------------------------------+