Задать вопрос
th3PythonG3nteleman
@th3PythonG3nteleman
Script Kiddie

Как написать скрипт на питоне который будет присылать сообщение в телеграм бот об включении, выключении компьютера, неудачной попытки входа в учетку?

Хочу написать скрипт на питоне, который будет отправлять мне сигналы в телеграмм бота, в случае включения\выключения\попытках входа в систему?

Скрип за меня писать не нужно, подскажите в какую сторону смотреть?

Как я понимаю, нужно в что бы скрипт в логах искал нужное нам значение, и при его обнаружении отправлял его в специальный буфер, который в свою очередь будет отправляться в телеграм бот...?
  • Вопрос задан
  • 611 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@rPman
У тебя следующие задачи, которые решать придется по разному:
* детектирование включения машины
решается простой фиктивной службой systemd startup
* детектирование выключения машины
можно конечно тоже службой shutdown, но будут события только корректных выключений, а принудительные перезагрузки резетом или например ctrl+alt+shift+pause .. r (которая работает даже если модули ядра повиснут), не отловит.
Тут можно поставить скрипт, анализирующий работу машины на соседнюю в сети, вариантов тьма.
* попытки входа в систему
В общем случае это в /var/log/auth.log там будет все, и использование sudo/su, и запуск процессов cron и служб (с указанием пользователя) и ssh подключения и тьма тьмущая всего что так или иначе затрагивает авторизацию, что и является 'вход в систему', там же можно посмотреть что пишет lightdm на попытки входа в gui

Мониторить попытки входа придется скриптом, периодически читающим файл (осторожно tail -f /var/log/auth.log | my_script не отследит ротацию логов, поэтому лучше самому следить за датой последнего изменения файла и читать его с позиции, на которой остановился в прошлый раз ну или с нуля)

Если делать 'по феншую', то лучше работать с подсистемой сбора событий, в python с помощью python-systemd - journal например фильтруя по _SYSTEMD_UNIT=sshd.service и _COMM=sshd (сам я не делал, посмотрел что можно и в памяти отложил, сейчас ИИ спросил, да где то так и надо)

* отправка сообщений в telegram
можно конечно использовать какую-нибудь библиотеку, многословно, красиво... а можно отправить один http запрос по api telegram, кода минимум, наверное все так в своих скриптах делают
https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=Hello%20World
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
стандартно, разбиваешь на простые подзадачи и решаешь их
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
На startup и shutdown можно сделать через systemd. Будет примерно такой файл сервиса:
[Unit]
Description=...
After=default.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/root/on_startup.sh
ExecStop=/root/on_shutdown.sh

[Install]
WantedBy=default.target
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы