Отримуйте сповіщення електронною поштою, коли хтось отримує доступ до root як SSH

Ті з нас, хто адмініструє сервери, повинні тримати найсуворіший можливий контроль над усім, що відбувається на сервері, одна з речей, яку нам часто потрібно знати, це коли користувач підключається через SSH (включаючи корінь), для цього за допомогою пакета та лінії буде отримувати наші сповіщення електронною поштою.

Ви можете собі уявити, що кожного разу, коли хтось підключається через 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 буде завантажений, що завжди робиться за замовчуванням, і коли файл завантажується, рядок, що надсилає електронне повідомлення, буде виконано, а щось залишиться у нашій папці вхідних. як:

email-сповіщення-ssh

Пояснення рядка є чимось справді простим:

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

У будь-якому випадку, рядок дещо довгий і може здатися складним для розуміння, проте є багато дивних персонажів, але все досить просто 🙂

Як завжди, сподіваюся, вам це було цікаво.

привіт


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   мануельперезф - сказав він

    Питання, з яким поштовим сервером він надсилається? Чи потрібно налаштовувати рахунок доставки?

    1.    KZKG ^ Гаара - сказав він

      У вас повинен бути встановлений пакет mailx 😉
      Після цього воно надсилається без необхідності налаштовувати щось інше на сервері.

      1.    мануельперезф - сказав він

        Я спробую, але я думаю, що моя електронна пошта не прийме отримання електронної пошти з неавторизованого джерела ...

        1.    йомізмо - сказав він

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

          1.    KZKG ^ Гаара - сказав він

            Цікаво, велике спасибі 🙂

      2.    Ізраїль - сказав він

        Друг @ KZKG ^ Гаара Я встановив пакет і зробив посібник поетапно, єдине, що коли я надсилаю його, у мене є місцева пошта, я ніколи не виходив, ти можеш мені допомогти з цим ?? ... ну Мені дуже потрібно налаштувати цю тему на моїх серверах, salu2s.

        1.    KZKG ^ Гаара - сказав він

          За вашим ІР я припускаю, що ви з однієї країни 😉
          "Проблема" у наших мережах рідко має реальні IP-адреси як такі, тобто ми підпорядковані під проксі-мережу міністерства або щось подібне. Іншими словами, можливо проблема полягає в тому, що сам веб-сервер не може отримати електронну пошту від мережі або щось подібне, можливо, вам потрібно це: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 - сказав він

    цікаво, і якщо його розмістити в «/ etc / profile», чи буде він видавати попередження, коли будь-який користувач підключається?

    1.    KZKG ^ Гаара - сказав він

      Треба було б спробувати, мені це не спало на думку 😀

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

    Називайте мене параноїком, але помістіть сценарій, який незнайома людина запропонує мені, у важливу частину моєї системи, де я зберігаю паролі облікових записів, дані, такі як свідоцтва про народження, особисті документи та робочі документи (таким чином, викриваючи також своїх клієнтів) тощо тощо, і що передбачає також викриття мого облікового запису електронної пошти (!!!) ... ну, я думаю, це щось небезпечне.

    1.    йомізмо - сказав він

      Небезпека представленого сценарію обернено пропорційна його розумінню.

      А для параної перестаньте встановлювати БЕЗКОШТОВНІ сховища, оскільки можливо, хтось вводить зловмисний код, який викраде ваш кошик для покупок.

    2.    KZKG ^ Гаара - сказав він

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

  4.   Броусонс - сказав він

    Це цінується.

  5.   це ім'я неправдиве - сказав він

    Дуже цікаво.

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

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

    PostData: _НІКОЛИ_ доступ SSH як кореневий користувач. _НІКОЛИ_ доступ через SSH за допомогою пароля. _ALWAYS_ використовувати приватні ключі.

    1.    truko22 - сказав він

      цікаво → ~ / .ssh / rc Я буду шукати більше інформації про це завдяки gracias

  6.   хінолоко - сказав він

    Привіт, дуже хороший репетитор!
    Не могли б ви зробити так, щоб ввести через ssh з будь-якого ip, поза локальною мережею?
    Дякую!!

  7.   відагну - сказав він

    Цей сценарій працює, якщо поштовий сервер, на який ми надсилаємо, не підтверджує, що вихідна пошта надходить із справжнього сервера, у цьому випадку це буде з кореневого джерела @ localhost, більшість серверів сприймуть це як спам.

    Я налаштовую sendmail як MTA, а потім використовую пошту, що надходить у всіх дистрибутивах, для надсилання електронних листів.

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

  8.   Водорості - сказав він

    Дякую за пораду, я її знайду, щоб протестувати:]

  9.   кук - сказав він

    дуже корисна подяка

  10.   Ізраїль - сказав він

    Дякую мільйон за пораду, друг @ KZKG ^ Гаара, я подивлюсь на sendmail, сподіваюся вирішити, salu2s.

  11.   Джоскар - сказав він

    Чудово! Дякуємо за вступ!

  12.   Хуан С - сказав він

    І що трапляється, якщо, наприклад, сценарій надсилає забагато електронних листів, наприклад, хтось заходить у кореневий термінал о 8:00 ранку і надсилає близько 40 електронних листів, тоді хтось входить в інший час і надсилається більше 23 електронних листів, а потім хтось приходить в інший час і було відправлено понад 150 електронних листів, що це може бути?