web-dev-qa-db-ja.com

Linux:sshログイン時にプロンプ​​ト通知を送信することはセキュリティ対策ですか?

シナリオ

私の顧客の1人は、sshポートでファイアウォールを使用せずに、インターネットで直接アクセスできるDebianベースのボックスをいくつか持っています。これらのボックスは、リモートのsshユーザーがログインに成功したときの「インスタント」メール通知用に構成されています。

me @ server:〜$ Sudo cat/etc/ssh/sshrc

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
logger -t ssh-wrapper $USER login from $ip
echo "User $USER just logged in to $(hostname) from $ip" | mail -s "SSH Login" -- [email protected] &

ログインしたユーザーがこのコマンドを実行しているため、悪意のあるユーザーがこのようなイベントを制御している可能性があるため、これは実際に(良い)セキュリティ通知と見なすことができるかと思いました。これはログイン後数ミリ秒で発生するため、攻撃者がこれを捕捉するのは非常に困難ですが、リモートユーザーがこのサーバー側のグローバルsshrcを回避できないかどうかはまだわかりません。

たとえば、私は何ヶ月も彼らのために働いていて、それに気付いていませんでしたが、ログインするたびにそのような通知を受け取りました。スクリプトの1つで何かを変更したと彼らが言ったので、彼らはそれに注意を向けました、以前よりもはるかに多くの接続が生成されているため、メールボックスが溢れるのを防ぐために、このユーザーが通知を生成しないようにするように求められました。

私は直感的な人なので、通知を生成してはいけないユーザーに一致するようにifをすぐに追加しましたが、これでうまくいきましたが、これでこれができると思いますmeasureさえそれがすでに見えていたものよりも弱い

可能かどうかはわかりませんが、関連するものを返さなかったさまざまな検索を試しましたが、たとえばクライアント側のユーザーがsshrcに別のパスを指定できた場合、この方法はひどく失敗します。 MTAにフルキューがあり、ユーザーがそれを昇格できる場合、メールを簡単にデキュー/遅延する可能性があるため、少なくともSMSサービスでメールをスワップします。

それが私の疑問のほんの一部であり、それが私がこの弱点について顧客のCIOと話をすることを計画している理由であり、それについてあなたの意見を聞きたいと思います。もちろん、彼は私に「最も安全でまだ無料のソリューションは何だと思いますか?」と尋ねます。現金は常に王様です。

正直なところ、そのような質問に対する答えはまだありませんが、この「ロジック」を維持したい場合は、少なくとも、rootがログを監視して各ユーザーがログインしたときに通知する必要があると思います。彼らはそのような通知が即時であることを望んでいるので分crontab。それで、fileschangedとtailを使用してスクリプトを作成し、SMSを使用するか、顧客の好みに応じてメールを保持することができます。これはrootによって実行されるため、ユーザーの制御下にはありません。 。

質問

-リモートの非特権ユーザーがサーバーのsshrcクライアント側を無効にすることは可能ですか?

-お客様はこの種の通知を保持することを望んでいます。良いか悪いか、この方法で良い方法を得ると思いますか?

-回避できない方法で、sshログイン時にすぐに通知される他のfree方法はありますか?

-電子メールからSMSへの切り替えの方が安全だと思いませんか?

2
Marco

不安について、imho、あなたは間違った方向に考えています。
このシステムが妨げていると思う悪い点は何ですか?絶対に何もない、それがそれを防ぐために失敗することができない理由です。反対に、それは追加されたセキュリティです。誰かが不正なアクセスを取得した場合、少なくともそのメールを知らなかった(または防ぐことができなかった)可能性があるためです。

顧客を覚えておくべき唯一のことは、メールに頼り過ぎることは良くないということです。アラートとして、問題なく、真実の単一の情報源として(「メールがないため、ハッキングされません」)、いいえ。電子メールが失敗する方法は多すぎます。適切なSSHログインなしでハッキングされる方法は多すぎます。

ファイアウォールについては、誰かが着信SSH接続をブロックすると、だれもログインできなくなります。それはおそらく役に立たないでしょう。

ユーザーとシェルに依存しない方法については、PAMでも実行できます。 https://serverfault.com/questions/395393/email-notification-about-each-ssh-connection-to-linux-server を参照してください
コマンドが失敗した場合にログインを拒否するオプションもありますが、この場合、それはあまり役に立ちません(メールサーバーがダウンしているなどの理由でログインできず、サーバーに正常に送信しても、それは受信機に到着しました)。

SMSについては、いいえ、メールほど安全ではありません。

3
user155462