Разработать сервис, который выполняет мониторинг подключённых к системе пользователей по ssh каждые 30 секунд. При подключении внешнего пользователя по ssh, пользователю должно выводиться на экран уведомление (механизм notify) с именем пользователя, который подключился к системе удалённо.
Студенты группы Б17-505
- Гришин Максим (MaxG175)
 - Иванова Нина (cheraten)
 - Николаева Елизавета (elizanikol)
 - Худоярова Анастасия (Neprincessa)
 - Шайбель Анастасия (Lilicat1359)
 
- Сгенерировать шаблон модуля политики SELinux: 
sepolicy generate --init ssh_monitoring 
Будут созданы 5 файлов:
- 
Type Enforcing File ssh_monitoring.te;
 - 
Interface File ssh_monitoring.if;
 - 
File Context ssh_monitoring.fc;
 - 
RPM Spec File ssh_monitoring_selinux.spec;
 - 
Shell File ssh_monitoring.sh
 
- Запустить скрипт ssh_monitoring.sh:
sudo ./ssh_monitoring.sh 
Будет создан модуль политики SELinux - файл ssh_monitoring.pp
- 
Добавить политику в список системных модулей:
semodule -i ssh_monitoring.pp - 
Изменить контекст безопасности (тип) сервиса :
 
sudo chcon -t ssh_monitoring_exec_t /usr/bin/ssh-monitoring
Посмотреть изменившийся контекст можно командой:
ps -eZ | grep ssh-monitoring
- Проверить работу сервиса:
 
Подключиться к ssh от имени другого пользователя cheraten1 и переключиться обратно на cheraten:
Посмотреть запись в файле /var/log/messages:
При появлении сообщений в файле /var/log/messages о необходимости создания дополнительных модулей политики, выполнить предложенные команды.
cd ~rpmdev-setuptreecd ~/rpmbuild/SOURCESmkdir ssh-monitoring-lastvercp ~/ssh_system_service/rpm_and_repo/rpmbuild/SOURCES/ssh-monitoring-lastver/* ./ssh-monitoring-lastvertar -cvzf ssh-monitoring-lastver.tar.gz ssh-monitoring-lastvercd ../SPECS~/ssh_system_service/rpm_and_repo/rpmbuild/SPECS/ssh-monitoring-lastver.spec ./rpmbuild --ba ssh-monitoring-lastver.specsudo rpm -addsign ~/rpmbuild/RPMS/noarch/ssh-monitoring-lastver-1.el7.noarch.rpmsudo mkdir -p /var/www/html/ssh-monitoringsudo cp ~/rpmbuild/RPMS/noarch/ssh-monitoring-lastver-1.el7.noarch.rpm /var/www/html/ssh-monitoringsudo createrepo -v /var/www/html/ssh-monitoringsudo mv ~/ssh_system_service/rpm_and_repo/rpmbuild/RPM-GPG-KEY-cheraten3 /var/www/html/gpg-keysudo cp ~/ssh_system_service/rpm_and_repo/ssh-monitoring.repo /etc/yum.repos.d
gpg --gen-key
- 
gpg2 --export -a 'cheraten3' > ~/rpmbuild/RPM-GPG-KEY-cheraten3 - 
vi ~/.rpmmacros 
- 
gpg --export --armor 7A36FC6D > /tmp/gpg-key - 
cp /tmp/gpg-key /var/www/html/ 
sudo yum install ssh-monitoringsudo systemctl start ssh-monitoring- Дерево процессов
 
pstree
ps -eZ | grep ssh-monitoring
Сервис работает в собственном домене.
sudo systemctl restart ssh-monitoring
journalctl -f -u ssh-monitoring
Собственный журнал событий. Ведутся записи о старте сервиса, его остановке, о выполнении основной функции.
Запуск сервиса (логгирование запуска в /var/log/messages)
- Подключение пользователя cheraten1 в систему по ssh
 
ssh cheraten1@localhost
Запись логов работы сервиса при подключении в /var/log/messages и запись о выполнении функции в журнале (см.пункт выше)
Вывод уведомления при подключении пользователя cheraten1 на стороне сервера и клиента
- Обработка сигнала USR1:
 
sudo kill -SIGUSR1 PID
- Демонстрация man страницы
 















