Оставляю эту статью на память себе, чтобы не забыть потом :). Посчитал, что весьма полезным будет сделать уведомления о входе на сервер по 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 можно следующими способами.






Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 600
Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 603
Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 606
Только не понятно как реализован хук? Через PAM делал?
Нет, создал файл /homedir/.ssh/rc , который исполняется в момент входа в систему по ssh. Ссылка
Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 600
Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 603
Warning: Trying to access array offset on value of type null in /var/www/html/wp-content/plugins/dofollow-case-by-case/dofollow-case-by-case.php on line 606
ну это получается к одному пользователю привязка
можно попробовать вот это решение через pam_exec
https://linux.die.net/man/8/pam_exec
Всё верно, читал об этом, но решил пойти другим путём. У меня только один пользователь может залогиниваться по SSH, остальным запрещено