Оставляю эту статью на память себе, чтобы не забыть потом :). Посчитал, что весьма полезным будет сделать уведомления о входе на сервер по SSH, мало ли кто шарится в моё отсутствие.
А так хлоп, письмо на почту упадёт и всё сразу ясно.
Если не ты сам, то пора предпринимать активные действия по смене паролей и проверке целостности файлов. Также обращаем внимание на то, сколько и каких пользователей у нас могут входить в систему. Всем, кому не требуется интерактивный вход, ставим шелл в /bin/false.
Скрипт почтового уведомления
Создаём файл /home/username/.ssh/rc где username – имя пользователя, входящего по SSH следующего содержания:
echo $(date "+%Y-%m-%d %H:%M:%S") IP: $SSH_CONNECTION USER: $USER | mail -s "ssh login" ************@mail.ru
Надеюсь, ни у кого не возникает мысли делать это под root?
Не забываем указать правильный адрес электронной почты.
Кстати, sendmail у меня реализован средствами ssmtp.
Настройка ssmtp
- Символическая ссылка /usr/sbin/sendmail -> /usr/local/sbin/ssmtp
- Конфиг /etc/ssmtp/ssmtp.conf:
root=postmaster
mailhub=smtp.yandex.ru:465
AuthUser=**********@litl-admin.ru
AuthPass=***********
AuthMethod=LOGIN
rewriteDomain=litl-admin.ru
hostname=151-248-118-182.ovz.vps.regruhosting.ru
UseTLS=YES
Debug=YES
FromLineOverride=YES
TLS_CA_File= - Заведена почта для домена и делегирована на yandex (https://pdd.yandex.ru)
Получаем уведомление
Всё, теперь при входе по SSH получаем на почту следующее письмо:
При авторизации ключами письмо тоже приходит.
P.S. Не забываем сделать файл исполняемым!
Дополнительно увеличить безопасность SSH можно следующими способами.
Только не понятно как реализован хук? Через PAM делал?
Нет, создал файл /homedir/.ssh/rc , который исполняется в момент входа в систему по ssh. Ссылка
ну это получается к одному пользователю привязка
можно попробовать вот это решение через pam_exec
https://linux.die.net/man/8/pam_exec
Всё верно, читал об этом, но решил пойти другим путём. У меня только один пользователь может залогиниваться по SSH, остальным запрещено