Как получить уведомления на почту о входе по SSH

В этой статье расскажем, как можно настроить автоматические уведомления на почту при входе на сервер по SSH.

Уведомление на почту о входе по SSH

1. Будем использовать Postfix — почтовый сервер с открытым исходным кодом. Его часто используют как почтовый сервер для сайтов. Ещё нам понадобится SMTP от Gmail.

Сразу уточним, что настраивать мы будем в примере на Ubuntu. Если у вас другой дистрибутив → примяйте соответствующие вашему дистрибутиву команды установки.

2. Устанавливаем зависимости:

sudo apt-get install postfix mailutils -y

Во время установки postfix вам будет предложено выбрать тип почтовой конфигурации.

3. Выбираем «Internet site».

4. В следующем окне добавляем полное доменное имя или имя хоста вашего компьютера.

5. Перед ручной настройкой Postfix необходимо иметь пароль приложения Gmail. Это делается в разделе безопасности вашей учетной записи Google.

6. Создаём файл паролей:

sudo nano /etc/postfix/sasl_passwd

7. Добавляем в файл следующее:

[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD

USERNAME → имя пользователя Gmail PASSWORD → пароль приложения, который только что создали

8. Сохраняем изменения, а после меняем разрешения файла. Нужно поменять так, чтобы его мог просматривать только пользователь root:

sudo chmod 600 /etc/postfix/sasl_passwd

9. Открываем основной файл конфигурации Postfix:

sudo nano /etc/postfix/main.cf

10. В файле main.cf ищем параметр relayhost и меняем строку на:

relayhost = [smtp.gmail.com]:587

11. Ниже этой строки добавляем:

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

12. Сохраняем изменения.

13. Скомпилируем с схешируем содержимое файла sasl_password, который мы создали ранее:

sudo postmap /etc/postfix/sasl_passwd

14. Перезапускаем Postfix:

sudo systemctl restart postfix

15. Включаем Postfix для запуска при старте:

sudo systemctl enable postfix

Создание оповещения о входе по SSH

1. После всех настроек осталось дело за малым. Вводим команду:

sudo 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 → это адрес необходимой почты.

3. Сохраняемся.

Last updated