SSHへの接続時にアラート

この質問の結果によると。



原則として、SSHを介した接続の確立中の標準設定では、サーバー側にアラートは表示されません。 攻撃者はこれを利用できます-Habrを静かに読んでいる間に、機密データが既にコンピューターから転送されている可能性があります。 上記の問題は簡単に修正できます。



画像



接続が確立されると、スクリプト/ etc / ssh / sshrcが実行され 、クライアント側からこれを防ぐことはできません。 別のアラートスクリプトを作成し、それを実行するコマンドを/ etc / ssh / sshrcに配置します。



/usr/local/alert/start.sh
      
      





スクリプトは、notify-osdパッケージを通じて重要な情報を含むメッセージを表示し、注意を引くサイレンを含めます。



 #!/bin/bash export DISPLAY=:0 notify-send "Security Warning" "SSH Connection Established with \"$USER\" $(echo $SSH_CONNECTION | sed 's/\(.*\) \(.*\) \(.*\) \(.*\)/from \1:\2 to \3:\4/')" -u critical -i /usr/local/alert/icon.png play /usr/local/alert/sound.wav > /dev/null 2>&1
      
      





ここでは、まずnotify-osdの正しい操作のために現在のディスプレイを設定し、次にシステム変数$ USER (現在のユーザー)および$ SSH_CONNECTION (接続データ、通常のビューを使用して読みやすいビューに変換する) sed式)。 その後、私たちはサイレンを失います。



ここでは、電子メール( sendmailを使用)またはJabber( sendxmppを使用)へのメッセージ送信を追加することもできます。



インストールの場合、 このアーカイブの内容をファイルシステムのルートに単純に解凍できます(この操作により、sshrcの以前の内容が消去されます!)。



必要なライブラリもインストールすることを忘れないでください。Ubuntuでは次のように行われます。



 sudo apt-get install libnotify-bin sox
      
      





UPD#1: bliznezzInflameのユーザーの提案でスクリプトを変更できます。



 #!/bin/sh export DISPLAY=:0 notify-send "Security Warning" "Occured Login as user \"$USER\" $(echo $SSH_CONNECTION $SSH_TTY | sed 's/\(.*\) \(.*\) \(.*\) \(.*\) \(.*\)/using SSH connection at \5 from \1:\2 to \3:\4/')" -u critical -i /usr/local/alert/icon.png aplay -q /usr/local/alert/sound.wav
      
      





また、コードを/root/.bashrcに追加します。



 unset SSH_CONNECTION /usr/local/alert/start.sh
      
      





これで、シェルがルートとして起動したときに、スクリプトがシグナルを送信します。



UPD#2:ユーザーneperapは、サーバーのユーザーのホームディレクトリに〜/ .ssh / rcファイルがある場合、それが実行され、警告システムが機能しないことにも気付きました。 また、正しく実行するために、これらのスクリプトはコンソールにテキストを出力しないでください。



All Articles