Инструменты пользователя

Инструменты сайта


otslezhivanie_dejstvij_polzovatelja_v_tekuschej_sessii_ssh

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

otslezhivanie_dejstvij_polzovatelja_v_tekuschej_sessii_ssh [2015/10/02 09:41]
otslezhivanie_dejstvij_polzovatelja_v_tekuschej_sessii_ssh [2020/06/13 13:46] (текущий)
Строка 1: Строка 1:
 +====== Отслеживание действий пользователя в текущей сессии ssh ======
 +Письма можно отсылать, например на Gmail, и клиент [[psi]] подключённый к нему будет оперативно уведомлять об этих письмах.
 +====== Задача № 1 ======
 +  * **Задача**. Уведомить на email (можно развить до отправки [[SMS]]) об успешной авторизации пользователя по протоколу [[SSH]]. Выслать информацию о сессии пользователя.
 +  * **Решение**. Используем возможность в демоне sshd подключить исполняемый файл [[ssh#sshrc|sshrc]]. Используются утилиты [[echo]], hostname, переменные [[bash]], who, [[cut]], [[mailx]]. Содержимое файла sshrc:<file bash>
 +#!/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
 +</file>Задание в утилите [[mailx]] кодировки письма нужно для корректного открытия кириллических сообщений почтовым клиентом. Если консоль англоязычная заголовки можно убрать.
 +====== Задача № 2 ======
 +  * **Задача**. После закрытия пользователем сессии [[SSH]] (logout) выслать на email историю команд набранных пользователем в текущей сессии.
 +  * **Решение**. Используем возможности конфигурационного файла [[bash]] .bash_logout. Обрабатываем и высылаем информацию из файлов: .bash_logout<file>
 +echo "hello from `hostname` `uptime` `who -q`" | mail -s "`hostname`" root
 +</file>