В одной из статей мы рассматривали способ защиты SSH от брутфорса. Сегодня продолжу тему безопасности SSH и покажу, как настроить автоматические уведомления на почту при входе на сервер по SSH.
Еще по теме: Проксирование с помощью 3proxy и SSH
Уведомление на почту о входе по SSH
Для получения уведомлений о входе по SSH мы будем использовать Postfix — почтовый сервер с открытым исходным кодом, который часто используется как почтовый сервер для сайтов. Кроме этого нам понадобится SMTP от Gmail.
Я буду настраивать уведомления о подключении по SSH на сервере Ubuntu. Если используете другой дистрибутив Linux, тогда примените соответствующие вашему дистрибутиву команды установки.
Установка зависимостей
Первое, что нужно сделать — установить необходимые зависимости. Для этого войдите на сервер и выполните команду:
1 |
sudo apt-get install postfix mailutils -y |
Во время установки postfix вам будет предложено выбрать тип почтовой конфигурации.
Выберите «Internet site», а затем в следующем окне добавьте полное доменное имя (предпочтительно) или имя хоста вашего компьютера.
Все остальное изменим вручную.
Настройка Postfix
Перед настройкой Postfix необходимо иметь пароль приложения Gmail. Это делается в разделе безопасности вашей учетной записи Google.
Создайте файл паролей:
1 |
sudo nano /etc/postfix/sasl_passwd |
Добавьте в файл следующее:
1 |
[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD |
Где USERNAME — это имя пользователя Gmail, а PASSWORD — пароль приложения, который только что создали.
Сохраните изменения, а затем измените разрешения файла, так чтобы его мог просматривать только пользователь root:
1 |
sudo chmod 600 /etc/postfix/sasl_passwd |
Откройте основной файл конфигурации Postfix:
1 |
sudo nano /etc/postfix/main.cf |
В файле main.cf найдите параметр relayhost и измените строку на:
1 |
relayhost = [smtp.gmail.com]:587 |
Ниже этой строки добавьте следующее:
1 2 3 4 5 6 7 8 9 |
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_password, который мы создали ранее, с помощью команды:
1 |
sudo postmap /etc/postfix/sasl_passwd |
Перезапустите Postfix:
1 |
sudo systemctl restart postfix |
Включите Postfix для запуска при старте:
1 |
sudo systemctl enable postfix |
Создание оповещения о входе по SSH
Теперь, после настройки Gmail в качестве ретранслятора Postfix, пришло время создать оповещение о входе в SSH. Это довольно просто.
Введите команду:
1 |
sudo nano /etc/profile |
В конце файла добавьте следующее:
1 2 3 4 5 6 7 8 9 |
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 — это адрес электронной почты, на который хотите отправлять оповещения.
Сохраните изменения.
Выйдите из системы и снова войдите в систему с помощью SSH. Если все правильно сделали, тогда должны получить сообщение на электронную почту о подключении по SSH. Предупреждение не только сообщит имя пользователя, но также отобразит IP-адрес, которого использовался для входа.
Еще по теме: Защита виртуального сервера Linux