This is an old revision of the document!
Всем привет! Вообще-то, обычно решают обратную задачу - сообщить о неудачных попытках подключения по ssh, а еще лучше - сразу заблокировать. С этим прекрасно справляет, например, Fail2ban, но, рассказ не о нем. Может оказаться полезно получать уведомления именно об успешных подключениях, особенно, в тот момент, когда сам НЕ подключаешься. Так же, хочется сделать это с наименьшими усилиями, без написания скриптов, без установки специфического ПО, что бы было легко “скопипастить” решение на множество систем. Так же, хочется знать не тoлько о подключениях, получивших shell, но и о удаленном выполнении команд, или копировании файлов по протоколу ssh.
Все это есть в этом решении:
$ sudo apt install curl $ sudo nano /etc/pam.d/sshd
#...
# оставьте, все, что было в этом файле и добавьте в конец
#...
session optional pam_exec.so /bin/bash -c (echo${IFS}Subject:ssh-${PAM_USER}@$(hostname)-${PAM_RHOST};/usr/bin/env)|/usr/bin/curl${IFS}smtp://mailhub.yourcorp.ru${IFS}--mail-from${IFS}pamssh@yourcorp.ru${IFS}--mail-rcpt${IFS}youremail@yourcorp.ru${IFS}--upload-file${IFS}-
Да, этого достаточно!
Как оказалось, curl умеет отправлять почту, в сообщении будут присутствовать все подробности, кто, когда, откуда подключился, и, даже, когда отключился. Правда, в этом решении требуется корпоративный почтовый сервер (mailhub.yourcorp.ru в нашем “однострочнике”), готовый принять письмо без аутентификации. Это допустимо, если он же является конечным сервером с ящиком пользователя, или, есть разрешение пересылки писем из корпоративной сети (в этом случае можно использовать любой другой почтовый адрес, вместо yourlogin@yourcorp.ru). Однако, такой сервер не всегда имеется, и решение не годится для персонального использования.
В этом случае предлагаю Вам вебинар, демонстрирующий решение той же задачи, с отправкой сообщений в Telegram
На этом все, спасибо, буду рад ответить на вопросы!