ssh - уведомления по email

Этот пост преимущественно для параноиков вроде меня. Ну или для людей которые очень сильно беспокоятся за безопасность своего сервера =]

Я конечно уже давно настроил авторизацию по ключам, настроил blacklist и сделал все остальные действия которые уже не раз описывались во многих блогах и не только. И все чтобы обезопасить свой сервер. Был я спокоен до поры до времени, пока не захотел еще посмотреть документацию. Обнаружил я там еще одну интересную возможность. Если на сервере, в домашней директории, в поддиректории .ssh создать файл под названием rc, то все инструкции прописанные в нем, будут выполняться как только вы зайдете по ssh! Далее уже можно придумывать как это можно применить. Я решил о каждом заходе по ssh уведомлять себя на email. Для этого нам понадобится postfix (на серверах у меня везде дебиан, поэтому sudo aptitude install postfix) и ваш любимый текстовой редактор :) Postfix скорее привычка чем надобность. Можно заменить любым демоном умеющим отправлять почту.

И так, открываем или создаем на сервере файл ~/.ssh/rc и пишем примерно следующее:

echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s "ssh login" admin@google.com

Конечно уведомлять администрацию google об этом не стоит, поэтому следует заменить admin@google.com на свой email адрес, или адрес нехорошего человека, и раз 10 залогиниться\разлогиниться на сервер(шутка конечно же) :) Еще можно дополнительно дописать запись в файл каждого посещения, и выводит его при очередном подключении. Я собственно, использую оба метода.

Ну и конечно же можно прописать глобально для всех пользователей в файле /etc/ssh/ssh_config, но мне это не нужно. Как правило на сервере у меня один пользователь остальные (кроме root. Ему вообще запрещен вход удаленно) - /bin/false.

Кстати если на сервере установлен archlinux(скажу честно - вы извращенец), то postfix может выдавать ошибку

localhost postfix/postdrop [13652]: warning: unable to look up public/pickup: No such file or directory

То исправить все крайне просто:

sudo mkfifo /var/spool/postfix/public/pickup  
sudo /etc/rc.d/postfix restart

Лично я использую еще персональный органайзер osmo. Т.е. когда нужно что-то сделать на сервере, например поднять сервер samba, то я, добавляю эту задачу в osmo, а затем, выполняю на сервере. Таким образом у меня в органайзере подробно описано что мне надо было сделать, а на сервере, когда я последний раз заходил. Проще говоря, сопоставив все это, можно легко понять что где сломал и было ли проникновение. Ну и конечно же, если вы не один администрируете сервер (странно это правда), то сразу легко выяснить кто виноват, что сделал, и как теперь чинить :)

Я думаю вы найдете еще не одно удобное применения этой возможности =]


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.