Linux
August 8, 2022

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

Введение

Всем доброго времени суток!

В данной заметке разберем один из способов создание оповещений на почту, при подключении по SSH.

Подготовка нашего сервера, установка Postfix

Заходим на наш сервер под root или используем sudo, для начала нам понадобиться установить Postfix:

apt-get install postfix mailutils -y


Во время установки выбираем Internet Site:

Далее добавляем полное доменное имя или оставляем Hostname нашего сервера и ждем завершения установки.

Я оставляю имя хоста моей машины, оно так же выставлено по умолчанию

Получение пароля приложения для Gmail


1. Переходим по ссылке в свой аккаунт, в поиске пишем Пароли приложений и выбираем этот пункт:


2. Далее создаем сам пароль приложений, выбираем Почта, далее выбираем Устройство, жмем Создать:


Готово, сохраняем пароль в надежное место и переходим к настройкам Postfix.

Настройка Postfix

1. Создаем файл паролей командой:

nano /etc/postfix/sasl_passwd

2. В файл добавляем содержимое следующего вида:

[smtp.gmail.com]:587 [email protected]:PASSWORD
  • Где USERNAME пишем наше имя пользователя Gmail.
  • Где PASSWORD вставляем пароль приложений который мы только что создали.
CTRL+X, Y, Enter для выхода и сохранения

3. Делаем разрешения на просмотр только от root командой:

chmod 600 /etc/postfix/sasl_passwd

4. Далее открываем конфигурационный файл Postfix /etc/postfix/main.cf:

nano /etc/postfix/main.cf


Находим там строку:

relayhost =


И приводим ее к такому виду:

relayhost = [smtp.gmail.com]:587


Далее под этой строкой добавляем следующие значения:

smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
CTRL+X, Y, Enter для выхода и сохранения

5. Компилируем и хэшируем содержимое файла sasl_password, который мы создали ранее с помощью команды:

postmap /etc/postfix/sasl_passwd

6. Перезапускаем Postfix командой:

systemctl restart postfix

7. Последний шаг в настройке Postfix, включение автозапуска при старте системы командой:

systemctl enable postfix

Создаем оповещение при входе в систему через SSH


1. Открываем в редакторе файл /etc/profile:

nano /etc/profile

2. В нижней части файла добавляем следующие строки:

if [ -n "$SSH_CLIENT" ]; then
TEXT="$(date): ssh login to ${USER}@$(hostname -f)"
TEXT="$TEXT from $(echo $SSH_CLIENT|awk '{print $1}')"
echo $TEXT|mail -s "ssh login" EMAIL
fi


Там где EMAIL вставляем адрес нашей почты, на которую мы хотим принимать оповещения:

CTRL+X, Y, Enter для выхода и сохранения


Готово, теперь можно проверить, разлогиниваемся или открываем новую сессию SSH, на почту должно придти письмо такого вида:

Которое содержит имя пользователя, время и IP адрес с которого пользователь вошел.

Вывод

Готово, в этой заметке мы научились создавать оповещение на почту при подключении по SSH к серверу, надеюсь у вас это не вызвало какого-то большого труда.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)