Те из нас, кто администрирует серверы, должны максимально строго контролировать все, что происходит на сервере, одна из вещей, которые нам часто нужно знать, - это когда пользователь подключается через 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'}`" [email protected]
Чтобы отредактировать /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
В любом случае строка несколько длинная и может показаться сложной для понимания, однако там много странных символов, но все довольно просто
Как всегда, надеюсь, вам было интересно.
привет