Получать уведомление по электронной почте, когда кто-то обращается по SSH как root

Те из нас, кто администрирует серверы, должны максимально строго контролировать все, что происходит на сервере, одна из вещей, которые нам часто нужно знать, - это когда пользователь подключается через SSH (включая root), для этого с помощью пакета и строки дойдут до наших уведомлений по электронной почте.

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

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

[miserver] Предупреждение: доступ к корневому терминалу: 2014 (01)

То есть:

[$ VPS_NAME] Оповещение: доступ к корневому терминалу: $ DATE ($ IP_DE_WHO_S_CONNECT)

Для этого они должны сначала установить пакет под названием mailx.

Предполагая, что ваш сервер использует Debian или какой-либо дистрибутив на его основе (я рекомендую только Debian, а не Ubuntu или аналогичный для серверов), это будет:

apt-get install mailx

Примечание: Предыдущая команда выполняется от имени пользователя root непосредственно на сервере, так как это VPS, sudo не следует использовать, если это не является строго необходимым.

Затем мы должны поместить в корень .bashrc следующую строку:

echo 'ALERTA - Acceso a Terminal de Root en:' `hostname` 'el:' `date +'%Y/%m/%d'` `who | grep -v localhost` | mail -s "[ `hostname` ] Alerta: Acceso a Terminal de Root el: `date +'%Y/%m/%d'` `who | grep -v localhost | awk {'print $5'}`" mi@email.com

Чтобы отредактировать /root/.bashrc, используйте какой-нибудь редактор в терминале, например nano:

nano /root/.bashrc

Помните, что вы должны указать свой адрес электронной почты в конце строки, просто замените my@email.com на адрес электронной почты, на который будут приходить уведомления.

После помещения (в любом месте файла) строки, которую я поместил ранее, мы сохраняем файл с Ctrl + O (Или медведь), и мы оставили его с Ctrl + X

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

электронное уведомление-ssh

Объяснение строки очень простое:

  1. Через mailx я отправляю почту, с параметром -s «_____» указываю тему, передаю ее с эхом «____» и конвейером содержимое тела.
  2. `hostname` с этим я получаю имя хоста или имя хоста, то есть имя VPS.
  3. `date + '% Y /% m /% d'` команда date показывает мне системную дату, остальные буквы просто указывают, как я хочу отображать дату.
  4. кто | grep -v localhost` Если вы запустите who на своем компьютере, он покажет вам активных пользователей, с помощью grep -v localhost я убеждаюсь, что он показывает только тех, кто подключился из другого места к самому серверу, то есть в основном SSH
  5. `кто | grep -v localhost | awk {'print $ 5'} `Что отличает эту строку от предыдущей, так это awk, через awk и печать 5-го столбца то, что я получаю IP, откуда они подключились к SSH

В любом случае, строка довольно длинная и может показаться сложной для понимания, однако есть много странных символов, но все достаточно просто 🙂

Как всегда, надеюсь, вам было интересно.

привет


22 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Manuelperezf сказал

    Вопрос, с какого почтового сервера отправляется? Вам нужно настроить учетную запись доставки?

    1.    КЗКГ ^ Гаара сказал

      У вас должен быть установлен пакет mailx 😉
      Как только это будет сделано, оно будет отправлено без необходимости настраивать что-либо еще на сервере.

      1.    Manuelperezf сказал

        Я попробую, но думаю, что моя электронная почта не будет принимать почту от неаутентифицированного источника ...

        1.    yomismo сказал

          Я использую exim4 с учетной записью gmail для отправки писем, и он отлично работает
          - За исключением заголовков FROM TO и REPLY TO, которые Gmail помещает то, что нужно, но они приходят хорошо -.
          Чтобы настроить Gmail с exim4, используйте эту информацию:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    КЗКГ ^ Гаара сказал

            Интересно, спасибо большое

      2.    Израиль сказал

        Друг @ KZKG ^ Gaara Я установил пакет и шаг за шагом сделал руководство, единственное, что когда я его отправляю, у меня есть местная почта, я никогда не выходил, вы можете мне помочь с этим ?? ... ну, мне действительно нужно настроить эту тему на моих серверах, salu2s.

        1.    КЗКГ ^ Гаара сказал

          По вашему IP я предполагаю, что вы из моей страны 😉
          «Проблема» с нашими сетями редко имеет реальные IP-адреса как таковые, то есть мы разбиты на подсети в рамках прокси-сети министерства или чего-то подобного. Другими словами, возможно, проблема в том, что сам веб-сервер не может получить электронное письмо из сети или что-то в этом роде, возможно, вам нужно это: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   Truko22 сказал

    интересно, а если он будет помещен в "/ etc / profile", будет ли он выдавать предупреждение при подключении любого пользователя?

    1.    КЗКГ ^ Гаара сказал

      Надо бы попробовать, мне не пришло в голову 😀

  3.   Навуходоносор сказал

    Назовите меня параноиком, но поместите сценарий, который предлагает мне незнакомец, в важную часть моей системы, где я храню пароли учетных записей, такие данные, как свидетельства о рождении, личные документы и рабочие документы (тем самым подвергая опасности моих клиентов) и т. Д. а это подразумевает также раскрытие моей учетной записи электронной почты (!!!)… ну, я думаю, это что-то опасное.

    1.    yomismo сказал

      Опасность представленного сценария обратно пропорциональна его пониманию.

      А из-за паранойи прекратите установку НЕ БЕСПЛАТНЫХ репозиториев, потому что возможно, что кто-то введет вредоносный код, который украдет вашу корзину.

    2.    КЗКГ ^ Гаара сказал

      Я объяснил, что делает каждая часть командной строки, однако, если вы думаете, что я кого-то обманываю, сценарий или команды находятся прямо в сообщении, в нем нет скрытого или секретного кода, вы можете просмотреть команды так тщательно, как хотите что запускается, если вы обнаружите что-то подозрительное, пожалуйста, прокомментируйте это прямо здесь 😉

  4.   Броусонс сказал

    Ценится.

  5.   это имя сказал

    Очень интересно.

    Возможно, файлы ~ / .bashrc или / etc / profile не являются наиболее подходящими в случае, когда мы получаем доступ по SSH с обычным пользователем и выполняем определенную команду как root. Или, если мы экспортируем X11 с нашего удаленного VPS, каждый раз, когда мы открываем xterm, у нас будет новое электронное письмо.

    Для взлома mailx, я думаю, нам следует использовать файлы ~ / .ssh / rc (индивидуальные для каждого пользователя) или / etc / ssh / sshrc

    PostData: _NEVER_ доступ SSH от имени пользователя root. _NEVER_ доступ по SSH с использованием пароля. _ВСЕГДА_ используйте закрытые ключи.

    1.    Truko22 сказал

      интересно → ~ / .ssh / rc Я поищу дополнительную информацию, спасибо gracias

  6.   Chinoloco сказал

    Здравствуйте, очень хороший репетитор!
    Не могли бы вы сделать вход по ssh с любого ip, вне локальной сети?
    спасибо!

  7.   Видагну сказал

    Этот сценарий работает, если почтовый сервер, на который мы отправляем, не проверяет, что исходная почта поступает с аутентичного сервера, в этом случае это будет из корневого источника @ localhost, большинство серверов будут воспринимать это как спам.

    Что я делаю, так это настраиваю sendmail как MTA, а затем использую почту, которая поступает во все дистрибутивы, для отправки электронных писем.

    http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html

  8.   Алгабе сказал

    Спасибо за совет, я сейчас попробую:]

  9.   кук сказал

    очень полезно спасибо

  10.   Израиль сказал

    Спасибо большое за совет друг @ KZKG ^ Gaara, я собираюсь взглянуть на sendmail, надеюсь решить, salu2s.

  11.   Йоскар сказал

    Большой! Спасибо за вклад!

  12.   Хуан С сказал

    И что происходит, если, например, сценарий отправляет слишком много писем, например, кто-то входит в корневой терминал в 8:00 и отправляет около 40 писем, затем кто-то вошел в другое время и было отправлено более 23 писем, а затем Кто-то приходит в другое время, и было отправлено более 150 писем, что это может быть?