Pull to refresh

Comments 14

Не надо это делать в таких конфигах. Лучше, посмотрите на pam_exec. Позволяет запустить свой скрипт на этапе логина пользователя любым методом (точнее, всеми, которым этот pam_exec подключен). Невозможно отключить без рута, точно отработает при логине.

Вопрос: api.telegram.org из России не доступен, но в вашем скрипте подключается к серверу telegram напрямую. Как обходите или сервера не в России ?

Можно заиметь socks-сервер.
Curl имеет опцию -socks5-hostname ip:port
Гудбайдипиай не помогает в этом?
Можно через socks5 прокси пустить (curl умеет). Можно через какой-либо внешний сервис, я, например, через ifttt сделал через webhook. Да, это как-бы тоже «прокси» по сути получается. И, да, это дополнительная точка отказа.
Все решается более просто
Как писал amarao используя pam_exec

скрипт /usr/bin/login-notify:
#!/bin/bash
PATH=/bin:/usr/bin
token='токен бота телеграм'
chat=ваш id
subj="$PAM_TYPE  on  ${HOSTNAME} from ${PAM_USER}"
message="Service: $PAM_SERVICE. Login {$PAM_USER} from ${PAM_RHOST} - `date`"
/usr/bin/curl  --header 'Content-Type:  'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${chat}\",\"text\":\"${subj}\n${message}\"}" "https://api.telegram.org/bot${token}/sendMessage"

в /etc/pam.d/login добавляем:
session    optional     pam_exec.so /usr/bin/login-notify
Чтоб фиксировать начало и конец сессии через ssh, нужно строку добавить в /etc/pam.d/sshd а не /etc/pam.d/login.
Во всяком случае в ubuntu 18.04 /etc/pam.d/login действует только для локальных авторизаций.
Лучше в /etc/pam.d/common-session строку с «pam_exec.so» добавить — так оно на все случаи применится.
Или даже в /usr/share/pam-configs/ создать конфиг по образу и подобию того что там уже есть и выполнить pam-auth-update
$ cat /usr/share/pam-configs/login-notify
Name: Notification about all login events
Default: yes
Priority: 0
Session-Type: Additional
Session:
        optional        pam_exec.so /usr/bin/login-notify
Нужно выдать права на выполнение скриптов
chmod +x /sbin/onlogged
chmod +x /sbin/telegram
Чего только не придумают, лишь бы не использовать, к примеру, ossec.
И зачем нужны сообщения в телеграм о каждом событии? Их кто-то читает 24/7 365 дней в году?
Не обязательно постоянно следить за этим. В случае необходимости можно будет просто пролистать до нужного дня
И что с этим знанием потом делать?
Вот, припустим, в 02:00 приходит сообщение, что на один из серверов осуществлен вход. Допустим, это китайцы наконец сбрутили пароль и подключают сервер к ботнету. Или сливают базу данных. Пока админ спит — они все успеют.

Для ossec нужен еще отдельный ossec-server = +1 сущность.
И на нем потом все так же настраивать транспорт в телеграм (если считать, что автору нужно именно логгирование в телеграм, а не на имейл, который в ossec из коробки)

Для ossec нужен еще отдельный ossec-server = +1 сущность


Среди 30 серверов нет ни одного для обслуживания всей этой инфраструктуры? Ни мониторинга, ни централизованного управления? Тогда ок, не нужен ossec уведомления в телегу — это именно то, чего не хватает. ;)
Sign up to leave a comment.

Articles