Как я могу прослушивать и сообщать о соединениях с сервером (SSH) через скрипт Python? - PullRequest
8 голосов
/ 30 марта 2012

Я немного новичок в Python, но опытный программист.Я пишу скрипт Python 2.7, который должен запускаться сервером Linux при загрузке.Цель состоит в том, чтобы отправлять через различные носители уведомление о подключении пользователя к серверу.

Моя проблема связана с фактическим прослушиванием.Как я могу заставить модуль видеть, когда пользователь подключается (через SSH или что-то еще) к серверу?Несколько быстрых псевдокодов:

# When a connection is made
    # Send an email
    # Send a text message
    # Send notification to server output
    # Etc...

Я хотел бы включить некоторые детали в уведомление, такие как имя пользователя, IP, время соединения, последнее соединение, симпатичное настраиваемое сообщение о соединении, что угодно.Любые советы о том, как сделать эти вещи лучше, также приветствуются, но я уверен, что смогу понять это в другом месте.

Заранее благодарен за любое руководство!

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Если ваш sshd использует syslog, вы можете настроить syslog на отправку средства аутентификации в именованный канал, а затем написать скрипт Python для чтения FIFO. Вот пример, в котором используется bash.

Или, как сказал sblom, вы можете добавить /var/log/auth.log в скрипт Python. В любом случае, вы должны получить такие строки:

Mar 29 19:58:13 mybox sshd[13914]: Accepted password for jtg from 192.168.0.20 port 51538 ssh2
2 голосов
/ 30 марта 2012

pam_python позволит вам написать модуль PAM, который может уведомлять о попытках аутентификации для любой службы, использующей PAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...