Отслеживание действий пользователя в текущей сессии ssh

Письма можно отсылать, например на Gmail, и клиент Psi подключённый к нему будет оперативно уведомлять об этих письмах.

Задача № 1

  • Задача. Уведомить на email (можно развить до отправки SMS) об успешной авторизации пользователя по протоколу Настройка и использование SSH. Выслать информацию о сессии пользователя.
  • Решение. Используем возможность в демоне sshd подключить исполняемый файл sshrc. Используются утилиты echo, hostname, переменные Основы BASH скрипты, циклы, горячие клавиши, who, Команда cut Linux, Пример использования mailx. Содержимое файла sshrc:
    #!/bin/bash
     
    # File sshrc copy to /etc/ssh/
    # OR
    # ln -s /scripts/ssh_bash_logout/sshrc /etc/ssh/sshrc
     
    EMAIL="admin@example.com"
     
    echo -e "\nHost:\t\t`hostname -f`\t`hostname -I`\nLogin:\t\t$USER\nData:\t\t$(date +%d.%m.%Y\ %H:%M:%S)\t $(date)\nRemote_ip:\t $SSH_CONNECTION\nSSH_TTY:\t$SSH_TTY\nWHO:\t\t`who`" \
    | mail -a "Content-Type: text/plain; charset=utf-8" -a "Content-Transfer-Encoding: 8bit" -s "SSH: $USER hostname: `hostname -f` remote_ip: `echo $SSH_CONNECTION | cut -d" " -f1`" $EMAIL
     
    exit 0

    Задание в утилите Пример использования mailx кодировки письма нужно для корректного открытия кириллических сообщений почтовым клиентом. Если консоль англоязычная заголовки можно убрать.

Задача № 2

  • Задача. После закрытия пользователем сессии Настройка и использование SSH (logout) выслать на email историю команд набранных пользователем в текущей сессии.
  • Решение. Используем возможности конфигурационного файла Основы BASH скрипты, циклы, горячие клавиши .bash_logout. Обрабатываем и высылаем информацию из файлов: .bash_logout
    echo "hello from `hostname` `uptime` `who -q`" | mail -s "`hostname`" root
PQ VPS сервера в 28+ странах.