2012-03-30 46 views
7

我對Python有點新,但是有經驗的程序員。我正在編寫一個Python 2.7腳本,應該在啓動時由Linux服務器啓動。目的是通過各種媒介發送用戶連接到服務器時的通知。如何通過Python腳本監聽和報告服務器(SSH)連接?

我的問題與實際的聆聽有關。如何讓模塊在用戶連接時(通過SSH或其他)連接到服務器?一些快速的僞代碼:

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

我想包括一些細節的通知,如用戶名,IP,連接時間,最後一個連接,一個可愛的自定義連接信息,等等。任何關於如何最好地完成這些事情的方法都是值得讚賞的,但我確信我可以在其他地方找到它。

在此先感謝您的任何指導!

+0

如果你的目標是通知(蟒蛇可選),這樣的事情可能是一個更快的解決方案:http://www.tiger-computing.co.uk/get_notified_with_every_ssh_login – miku 2012-03-30 01:24:54

+2

我可能會通過觀看服務器的日誌文件來做到這一點。默認情況下,您可以在日誌中獲得大部分信息。 – sblom 2012-03-30 01:26:20

+0

你真的想讓SSH工作,還是隻想通知有關TCP端口22的連接? – 2012-03-30 01:29:40

回答

3

如果您的sshd使用syslog,則可以將syslog配置爲將auth工具發送到命名管道,然後編寫一個Python腳本來讀取FIFO。 Here's一個使用bash的例子。或者像sblom說的那樣,您可以在Python腳本中尾部放置/var/log/auth.log。無論哪種方式,你應該得到線這樣的:

Mar 29 19:58:13 mybox sshd[13914]: Accepted password for jtg from 192.168.0.20 port 51538 ssh2 
2

pam_python將允許您編寫一個PAM模塊,該模塊可以通知使用PAM的任何服務的身份驗證嘗試。

+0

我的服務器使用OpenSSH,我正在研究一些關於PAM和OpenSSH的內容,但很遺憾我完全不熟悉這項技術。 :/ – 2012-03-30 02:31:21

相關問題