Как получать по электронной почте оповещения о входе в систему SSH

Когда мы устанавливаем, настраиваем и защищаем Linux-серверы в продакшене, очень важно отслеживать, что происходит на серверах и кто входит в них, особенно в части безопасности сервера.

Почему? Потому что если кто-то войдет на сервер как пользователь root, используя тактику грубой силы через SSH, то подумайте о том, как он уничтожит ваш сервер.

Любой пользователь, получивший root-доступ, может делать все, что захочет.

Итак, не стоит разрешать прямой вход root в систему через SSH-сессию и рекомендуется создавать не root-аккаунты с доступом sudo. Если требуется root-доступ, сначала войдите в систему как обычный пользователь, а затем используйте su для переключения на root-пользователя.

Однако в этом руководстве демонстрируется простой метод получения уведомлений по электронной почте, когда кто-то входит в систему как root или обычный пользователь. Он должен отправлять уведомление по электронной почте на указанный адрес электронной почты вместе с IP-адресом последнего входа.

Поэтому, определив IP-адрес последнего входа неизвестного пользователя, вы можете заблокировать вход по SSH с этого IP-адреса с помощью правила брандмауэра, как показано на рисунке.

Использование iptables:

sudo iptables -A INPUT -s <IP_Address> -p tcp --dport ssh -j DROP

Использование firewalld:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_Address>" port protocol="tcp" port="22" reject'
sudo firewall-cmd --reload

Использование UFW (Uncomplicated Firewall):

sudo ufw deny from <IP_Address> to any port 22
sudo ufw reload

Как установить оповещения о входе в систему SSH по электронной почте на сервере Linux

В зависимости от дистрибутива Linux вы можете установить клиент mailx с помощью одной из следующих команд.

sudo apt install mailutils     [On Debian, Ubuntu and Mint]
sudo yum install mailx         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/mailx  [On Gentoo Linux]
sudo apk add mailx             [On Alpine Linux]
sudo pacman -S mailx           [On Arch Linux]
sudo zypper install mailx      [On OpenSUSE]    
sudo pkg install mailx         [On FreeBSD]

Настройка оповещений о входе в систему SSH Root по электронной почте

Теперь войдите в систему под именем пользователя root и перейдите в домашний каталог root, введя команду:

cd /root

Далее добавьте запись в файл .bashrc, которая устанавливает локальные переменные окружения для пользователей и выполняет некоторые задачи по входу в систему. Например, здесь мы устанавливаем оповещение о входе в систему по электронной почте.

Откройте файл .bashrc с помощью редактора vi или nano. Помните, что .bashrc – это скрытый файл, и вы не увидите его с помощью команды ls -l. Чтобы увидеть скрытые файлы в Linux, нужно использовать флаг -a.

vi .bashrc
or
nano .bashrc

Добавьте следующую строку в нижнюю часть файла. Обязательно замените ServerName на имя хоста вашего сервера и измените name@example.com на адрес вашей электронной почты.

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]

Сохраните и закройте файл, выйдите из системы и снова войдите в нее.

После входа в систему через SSH файл .bashrc выполняется по умолчанию и отправляет по электронной почте уведомление о входе root, как показано на рисунке.

Образец оповещения по электронной почте:

ALERT - Root Shell Access (Database Replica) on: Thu Nov 28 16:59:40 IST 2023 tecmint pts/0 2023-11-28 16:59 (172.16.25.125)

Настройка оповещений по электронной почте о входе обычного пользователя в SSH

Войдите в систему как обычный пользователь и перейдите в домашний каталог пользователя, набрав команду cd /home/tecmint/.

cd /home/tecmint

Далее откройте файл .bashrc и добавьте следующую строку в конец файла. Обязательно замените значения, как показано выше.

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]

Сохраните и закройте файл, выйдите из системы и снова войдите в нее. После повторного входа в систему будет выполнен файл .bashrc, который отправит вам на адрес электронной почты оповещение о входе пользователя.

Таким образом, вы можете настроить оповещение по электронной почте для любого пользователя, чтобы он получал оповещения о входе в систему. Просто откройте файл .bashrc пользователя, который должен находиться в его домашнем каталоге (например, /home/username/.bashrc), и установите оповещения о входе в систему, как описано выше.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)