9

誰かが ssh 経由でマシンにログインしたときにユーザーに通知するスクリプトを作成しようとしています。

私の現在の考えは、grep を使用して間隔を置いて「w」の出力を解析することです。

しかし、それはエレガントでも高性能でもありません。そのようなプログラムを実装する方法について、より良いアイデアを持っている人はいますか?

どんな助けでも本当に感謝します!

4

6 に答える 6

13

Paul Tomblin は正しい提案をしています。

sshd_config でロギングをセットアップして、個別にロギングできる syslog 機能を指すようにします。

=>その他の機能については、man 3 syslogを参照してください。例のようなものを選択してください

# Logging
SyslogFacility local5
LogLevel INFO

次に、syslog.conf を次のように設定します。

local5.info    |/var/run/mysshwatcher.pipe

書き込もうとしているスクリプトを /etc/inittab に追加して、実行し続けるようにします。

sw0:2345:respawn:/usr/local/bin/mysshwatcher.sh

次に、スクリプトを記述します。

#!/bin/sh

P=/var/run/mysshwatcher.pipe
test -p $P || mkfifo $P

while read x <$P; do
  # ... whatever, e.g.:
  echo "ssh info: $x" | wall
done;

最後に、syslogd を再起動し、inittab をリロード (init q) すると、動作するはずです。これらのサービスの他のバリアントが使用されている場合は、それに応じて構成する必要があります (例: newsyslogd => /etc/newsyslog.conf; Ubuntu: /etc/event.d は inittab ではありません)。

これは非常に初歩的で不足していますが、始めるには十分なはずです...

詳細情報: man sshd_config でより多くのログ オプション/冗長性を確認できます。

于 2009-01-13T20:02:07.147 に答える
10

Ubuntu (および、すべての Linux ではないにしても、他のすべての Debian ディストリビューションを推測します) では、ファイル /var/log/auth.log に成功した (および失敗した) ログイン試行が記録されます。

sshd[XXX]: pam_unix(sshd:session): session opened for user XXX

このコマンドを使用して、非常に単純なモニターをセットアップできます (認証ログを表示するには、root になる必要があることに注意してください)。

sudo tail -F /var/log/auth.log | grep sshd
于 2009-01-13T19:46:25.400 に答える
5

彼らがどのようにログインしたか(telnet / ssh)を気にしない場合は、「最後の」Unixコマンドラインユーティリティがマシンの最後の数回のログインを表示します。リモートユーザーにはIPアドレスが表示されます

[root @ ex02 www]#last foo pts /181.31.xy日曜日1月18日07:25まだログインしていますfoopts/081.31.xy日曜日1月18日01:51
まだログインしています
foopts/081.31.xy土曜日1月17日03:51-07:52(04:00)
bar pts / 5199.146.xy金1月16日08:57-13:29(04:32

于 2009-01-18T20:54:58.243 に答える
4

名前付きパイプをセットアップし、それをリッスンするログ ファイル パーサーをセットアップし、それに ssh メッセージを送信します。ログ ファイル パーサーは、必要なことを実行したり、実行するようにデーモンに通知したりできます。

ログ ファイルのリダイレクトは、/etc/ の構成ファイルで行われます。その名前は今のところわかりません。/etc/syslog.conf だと思います。

于 2009-01-13T19:36:34.000 に答える
2

質問で説明されているタスクを解決するプログラム(私はAuthentication Monitorと呼んでいます)を作成しました。

必要に応じて、ダウンロードして、この問題をどのように解決するかを調査してください(ログファイルを使用)。

ここで無料で利用できる認証モニターを見つけることができます:http://bwyan.dk/ ?p = 1744

于 2013-03-07T08:12:23.740 に答える
0

私たちも同じ問題を抱えていたので、独自のスクリプトを書きました。githubからダウンロードできます。

それが役に立てば幸い :)

乾杯!イヴァン

于 2015-05-22T14:47:45.510 に答える