Те из нас, кто администрирует серверы, должны максимально строго контролировать все, что происходит на сервере, одна из вещей, которые нам часто нужно знать, - это когда пользователь подключается через SSH (включая root), для этого с помощью пакета и строки дойдут до наших уведомлений по электронной почте.
Можете ли вы представить себе, что каждый раз, когда кто-то подключается через 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` Если вы запустите who на своем компьютере, он покажет вам активных пользователей, с помощью 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 ^ Gaara Я установил пакет и шаг за шагом сделал руководство, единственное, что когда я его отправляю, у меня есть местная почта, я никогда не выходил, вы можете мне помочь с этим ?? ... ну, мне действительно нужно настроить эту тему на моих серверах, salu2s.
По вашему IP я предполагаю, что вы из моей страны 😉
«Проблема» с нашими сетями редко имеет реальные 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: _NEVER_ доступ SSH от имени пользователя root. _NEVER_ доступ по SSH с использованием пароля. _ВСЕГДА_ используйте закрытые ключи.
интересно → ~ / .ssh / rc Я поищу дополнительную информацию, спасибо gracias
Здравствуйте, очень хороший репетитор!
Не могли бы вы сделать вход по ssh с любого ip, вне локальной сети?
спасибо!
Этот сценарий работает, если почтовый сервер, на который мы отправляем, не проверяет, что исходная почта поступает с аутентичного сервера, в этом случае это будет из корневого источника @ localhost, большинство серверов будут воспринимать это как спам.
Что я делаю, так это настраиваю sendmail как MTA, а затем использую почту, которая поступает во все дистрибутивы, для отправки электронных писем.
http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html
Спасибо за совет, я сейчас попробую:]
очень полезно спасибо
Спасибо большое за совет друг @ KZKG ^ Gaara, я собираюсь взглянуть на sendmail, надеюсь решить, salu2s.
Большой! Спасибо за вклад!
И что происходит, если, например, сценарий отправляет слишком много писем, например, кто-то входит в корневой терминал в 8:00 и отправляет около 40 писем, затем кто-то вошел в другое время и было отправлено более 23 писем, а затем Кто-то приходит в другое время, и было отправлено более 150 писем, что это может быть?