Рассмотрим, как настроить автоматическую отправку почтового уведомления, когда пользователь или администратора удаленно подключается к Linux серверу по SSH. Для отправки мы будем использовать postfix, и smtp сервер Gmail в качестве релей сервера.
Установите на своем Linux хосте требуемые пакеты:
- Ubuntu/Debian:
$ sudo apt-get install postfix mailutils -y
- RHEL/Rocky Linux/CentOS/Oracle Linux:
# dnf install postfix mailx
При установке postfix выберите режим Internet site, и укажите FQDN имя вашего хоста.
Для отправки писем мы будем использовать SMTP сервер gmail. Для аутентификации нужно создать App password в разделе https://myaccount.google.com/ -> Security -> App password -> Select app Mail.
Создайте файл паролей:
$ sudo nano /etc/postfix/sasl_passwd
И добавьте в него имя ящика Gmail и App Password, который был для вас сгенерирован:
[smtp.gmail.com]:587 youruser@gmail.com:your16charapppassword
Чтобы сделать файл доступны только для пользователя root, измените разрешения:
$ sudo chmod 600 /etc/postfix/sasl_passwd
Затем откройте конфигурационный файл postfix:
$ sudo 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
Скомпилируйте содержимое файла sasl_passwd:
$ sudo postmap /etc/postfix/sasl_passwd
Перезапустите postfix и добавьте его в автозагрузку:$ sudo systemctl restart postfix
$ sudo systemctl enable postfix
Откройте файл /etc/profile:
$ sudo nano /etc/profile
Добавьте следующие строки:
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 "Alert SSH login" admin_alert@mail.ru fi
Выполните logoff и еще раз подключитесь к своему Linux хосту по SSH. На указанный email должно прийти уведомление об удаленном подключении. В нем будет указано имя пользователя и IP адрес, с которого выполнено ssh подключение.