Ті з нас, хто адмініструє сервери, повинні тримати найсуворіший можливий контроль над усім, що відбувається на сервері, одна з речей, яку нам часто потрібно знати, це коли користувач підключається через SSH (включаючи корінь), для цього за допомогою пакета та лінії буде отримувати наші сповіщення електронною поштою.
Ви можете собі уявити, що кожного разу, коли хтось підключається через SSH з root, він отримує електронний лист із повідомленням?
Іншими словами, вони отримали б електронний лист із повідомленням приблизно такого:
[miserver] Сповіщення: доступ до кореневого терміналу: 2014 (01)
Це:
[$ VPS_NAME] Сповіщення: доступ до кореневого терміналу: $ DATE ($ IP_DE_WHO_S_CONNECT)
Для досягнення цього вони спочатку повинні встановити пакет із назвою mailx.
Якщо припустити, що ваш сервер використовує Debian або якийсь дистрибутив на його основі (я рекомендую лише Debian, а не Ubuntu або подібні для серверів), це буде:
apt-get install mailx
Тоді ми повинні помістити такий рядок у кореневій папці .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
Після розміщення (де завгодно у файлі) рядка, який я розмістив раніше, ми зберігаємо файл за допомогою Ctrl + O (Або ведмідь), і ми залишили це Ctrl + X
Готово, кожного разу, коли хтось заходить у кореневий термінал, файл .bashrc буде завантажений, що завжди робиться за замовчуванням, і коли файл завантажується, рядок, що надсилає електронне повідомлення, буде виконано, а щось залишиться у нашій папці вхідних. як:
Пояснення рядка є чимось справді простим:
- Через mailx я відправляю пошту, з параметром -s «_____» я вказую тему, і передаю її з відлунням «____» та конвеєром вміст тіла.
- `hostname` за допомогою цього я отримую ім'я хоста або ім'я хосту, тобто ім'я VPS.
- `date + '% Y /% m /% d'` команда date показує мені системну дату, решта букв просто вказує, як я хочу, щоб відображалася дата.
- хто | grep -v localhost` Якщо ви запускаєте, хто на вашому комп'ютері, він покаже вам активних користувачів, за допомогою grep -v localhost я переконуюсь, що він відображає лише тих, хто підключився з іншого місця до самого сервера, тобто, в основному SSH
- `хто | grep -v localhost | awk {'print $ 5'} `Що відрізняє цей рядок від попереднього, це awk, через awk та друк 5-го стовпця, це те, що я отримую IP з того місця, де вони підключилися до SSH
У будь-якому випадку, рядок дещо довгий і може здатися складним для розуміння, проте є багато дивних персонажів, але все досить просто 🙂
Як завжди, сподіваюся, вам це було цікаво.
привіт
Питання, з яким поштовим сервером він надсилається? Чи потрібно налаштовувати рахунок доставки?
У вас повинен бути встановлений пакет mailx 😉
Після цього воно надсилається без необхідності налаштовувати щось інше на сервері.
Я спробую, але я думаю, що моя електронна пошта не прийме отримання електронної пошти з неавторизованого джерела ...
Я використовую exim4 з обліковим записом gmail для надсилання електронних листів, і він працює нормально
- За винятком заголовків FROM TO і REPLY TO, які gmail ставлять те, що він хоче, але вони надходять добре -.
Щоб налаштувати gmail з exim4, використовуйте цю інформацію:
http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/
Цікаво, велике спасибі 🙂
Друг @ KZKG ^ Гаара Я встановив пакет і зробив посібник поетапно, єдине, що коли я надсилаю його, у мене є місцева пошта, я ніколи не виходив, ти можеш мені допомогти з цим ?? ... ну Мені дуже потрібно налаштувати цю тему на моїх серверах, salu2s.
За вашим ІР я припускаю, що ви з однієї країни 😉
"Проблема" у наших мережах рідко має реальні IP-адреси як такі, тобто ми підпорядковані під проксі-мережу міністерства або щось подібне. Іншими словами, можливо проблема полягає в тому, що сам веб-сервер не може отримати електронну пошту від мережі або щось подібне, можливо, вам потрібно це: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/
цікаво, і якщо його розмістити в «/ etc / profile», чи буде він видавати попередження, коли будь-який користувач підключається?
Треба було б спробувати, мені це не спало на думку 😀
Називайте мене параноїком, але помістіть сценарій, який незнайома людина запропонує мені, у важливу частину моєї системи, де я зберігаю паролі облікових записів, дані, такі як свідоцтва про народження, особисті документи та робочі документи (таким чином, викриваючи також своїх клієнтів) тощо тощо, і що передбачає також викриття мого облікового запису електронної пошти (!!!) ... ну, я думаю, це щось небезпечне.
Небезпека представленого сценарію обернено пропорційна його розумінню.
А для параної перестаньте встановлювати БЕЗКОШТОВНІ сховища, оскільки можливо, хтось вводить зловмисний код, який викраде ваш кошик для покупок.
Я пояснив, що робить кожна частина командного рядка, однак, якщо ви думаєте, що я когось обманюю, скрипт або команди знаходяться тут у пості, у ньому немає жодного прихованого чи секретного коду, ви можете переглянути такі команди так ретельно як ви хочете, що працює, якщо ви виявите щось підозріле, прокоментуйте це тут 😉
Це цінується.
Дуже цікаво.
Можливо, файли ~ / .bashrc або / etc / profile не є найбільш підходящими у тому випадку, якщо ми отримуємо доступ через SSH із звичайним користувачем і виконуємо конкретну команду як root. Або якщо ми експортуємо X11 із нашого віддаленого VPS, кожен раз, коли ми відкриваємо xterm, ми отримуватимемо новий електронний лист.
Для злому mailx, я думаю, нам слід використовувати файли ~ / .ssh / rc (окремі для кожного користувача) або / etc / ssh / sshrc
PostData: _НІКОЛИ_ доступ SSH як кореневий користувач. _НІКОЛИ_ доступ через SSH за допомогою пароля. _ALWAYS_ використовувати приватні ключі.
цікаво → ~ / .ssh / rc Я буду шукати більше інформації про це завдяки gracias
Привіт, дуже хороший репетитор!
Не могли б ви зробити так, щоб ввести через ssh з будь-якого ip, поза локальною мережею?
Дякую!!
Цей сценарій працює, якщо поштовий сервер, на який ми надсилаємо, не підтверджує, що вихідна пошта надходить із справжнього сервера, у цьому випадку це буде з кореневого джерела @ localhost, більшість серверів сприймуть це як спам.
Я налаштовую sendmail як MTA, а потім використовую пошту, що надходить у всіх дистрибутивах, для надсилання електронних листів.
http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html
Дякую за пораду, я її знайду, щоб протестувати:]
дуже корисна подяка
Дякую мільйон за пораду, друг @ KZKG ^ Гаара, я подивлюсь на sendmail, сподіваюся вирішити, salu2s.
Чудово! Дякуємо за вступ!
І що трапляється, якщо, наприклад, сценарій надсилає забагато електронних листів, наприклад, хтось заходить у кореневий термінал о 8:00 ранку і надсилає близько 40 електронних листів, тоді хтось входить в інший час і надсилається більше 23 електронних листів, а потім хтось приходить в інший час і було відправлено понад 150 електронних листів, що це може бути?