По результатам этого вопроса.
Как правило, при стандартных настройках во время установки соединения по SSH никаких оповещений на стороне сервера не появляется. Этим может воспользоваться злоумышленник — пока вы сейчас спокойно читаете хабр, возможно, с вашего компьютера уже передаются конфиденциальные данные. Описанную проблему можно легко исправить.
При установке соединения выполняется скрипт /etc/ssh/sshrc, причём помешать этому со стороны клиента невозможно. Создадим ещё один скрипт для оповещения и поместим команду для его запуска в /etc/ssh/sshrc:
Скрипт будет выводить сообщение с важной информацией через пакет notify-osd и включать привлекающую внимание сирену:
Здесь сначала мы устанавливаем текущий дисплей для правильной работы notify-osd, далее выводим сообщение с иконкой и пометкой критической важности, используя системные переменные $USER (текущий пользователь) и $SSH_CONNECTION (данные о соединении, которые мы преобразуем в хорошо читаемый вид с помощью регулярных выражений утилитой sed). После этого мы проигрываем сирену.
Сюда же можно добавить и отправку сообщения на e-mail (с помощью sendmail) или Jabber (с помощью sendxmpp).
Для установки вы можете просто распаковать содержимое этого архива в корень файловой системы (эта операция сотрёт предыдущее содержимое sshrc!).
Не забудьте также установить нужные библиотеки, в Ubuntu это делается так:
UPD #1: По предложениям пользователей bliznezz и Inflame скрипт можно модифицировать:
А также добавить в /root/.bashrc код:
Теперь скрипт будет ещё и сигнализировать при запуске оболочки от пользователя root.
UPD #2: Пользователь neperap также заметил, что если в домашней директории пользователя на сервере есть файл ~/.ssh/rc, то выполнится именно он, и система оповещения работать не будет. Также, для корректного выполнения эти скрипты не должны выводить текст в консоль.
Как правило, при стандартных настройках во время установки соединения по SSH никаких оповещений на стороне сервера не появляется. Этим может воспользоваться злоумышленник — пока вы сейчас спокойно читаете хабр, возможно, с вашего компьютера уже передаются конфиденциальные данные. Описанную проблему можно легко исправить.
При установке соединения выполняется скрипт /etc/ssh/sshrc, причём помешать этому со стороны клиента невозможно. Создадим ещё один скрипт для оповещения и поместим команду для его запуска в /etc/ssh/sshrc:
/usr/local/alert/start.sh
Скрипт будет выводить сообщение с важной информацией через пакет notify-osd и включать привлекающую внимание сирену:
#!/bin/bash
export DISPLAY=:0
notify-send "Security Warning" "SSH Connection Established with \"$USER\" $(echo $SSH_CONNECTION | sed 's/\(.*\) \(.*\) \(.*\) \(.*\)/from \1:\2 to \3:\4/')" -u critical -i /usr/local/alert/icon.png
play /usr/local/alert/sound.wav > /dev/null 2>&1
Здесь сначала мы устанавливаем текущий дисплей для правильной работы notify-osd, далее выводим сообщение с иконкой и пометкой критической важности, используя системные переменные $USER (текущий пользователь) и $SSH_CONNECTION (данные о соединении, которые мы преобразуем в хорошо читаемый вид с помощью регулярных выражений утилитой sed). После этого мы проигрываем сирену.
Сюда же можно добавить и отправку сообщения на e-mail (с помощью sendmail) или Jabber (с помощью sendxmpp).
Для установки вы можете просто распаковать содержимое этого архива в корень файловой системы (эта операция сотрёт предыдущее содержимое sshrc!).
Не забудьте также установить нужные библиотеки, в Ubuntu это делается так:
sudo apt-get install libnotify-bin sox
UPD #1: По предложениям пользователей bliznezz и Inflame скрипт можно модифицировать:
#!/bin/sh
export DISPLAY=:0
notify-send "Security Warning" "Occured Login as user \"$USER\" $(echo $SSH_CONNECTION $SSH_TTY | sed 's/\(.*\) \(.*\) \(.*\) \(.*\) \(.*\)/using SSH connection at \5 from \1:\2 to \3:\4/')" -u critical -i /usr/local/alert/icon.png
aplay -q /usr/local/alert/sound.wav
А также добавить в /root/.bashrc код:
unset SSH_CONNECTION
/usr/local/alert/start.sh
Теперь скрипт будет ещё и сигнализировать при запуске оболочки от пользователя root.
UPD #2: Пользователь neperap также заметил, что если в домашней директории пользователя на сервере есть файл ~/.ssh/rc, то выполнится именно он, и система оповещения работать не будет. Также, для корректного выполнения эти скрипты не должны выводить текст в консоль.