人間のSSHは十分に安全ではありません。 パラノイアと戦う方法

私の監督の下では、約1000台の鉄製サーバーがありますが、VPSは数え始めません。 それらの数十は非常に重要なデータを持っています。 そして、標準的な状況でのキーを使用した平凡なsshは十分に安全ではありません 。 すべての「革の人々」が鍵を保護するわけではありません。ユーザーが鍵を紛失する可能性から身を守る方法について話しましょう。



私たちは誰を保護しています



「標準」ホスティング会社。 カスタマーケアとサポートのスタッフの最大数。 約12人がサーバーへの正直なSSHアクセスをサポートしているのは3行のみです。 このセットは、8人の「サービス部門」という会社の技術的な先駆者によって完成されます。



バルクユーザー



SSH承認サーバーは、サポート部門と部分的にサービス部門用に構成されます。 これは、ほとんどすべての場所で認証用のキーを持つサーバーです。 全能の鍵は見逃せない最も貴重な情報の一つです。 直接読むと、オフィスに4人いることができます。 紙の上のバックアップは安全です。 また、どこでどのように破損したかを直接確認する必要がある開発者は、このサーバーに一時的にアクセスできます。



従業員は、全能キーを使用して認証サーバーを介してsshアクセスを取得できます。 技術的には、これらの従業員は1つのコマンドしか呼び出すことができません。ssh、sshは順番に秘密鍵を使用してリモートサーバーに接続します。 通常、従業員はローカルスクリプトを使用して、承認サーバーをすばやく使用します。 歴史的には、goと呼ばれています。 その内容は次のとおりです。



画像



一般的な承認サーバーのもう1つの利点は、すべての従業員の統計を記録および読み取ることができることです。 どの従業員がどのサーバーでどれだけの時間を費やしたかを知っています。 緊急の場合、sshセッションのすべての入力と出力がコピーされるため、従業員がそこに入室し、彼に答えたことがわかります。



デミゴッド



2番目の主要な脆弱性は、複数の従業員の全能キーです。 このようなキーは、from =””のパラメーターでのみサーバーに登録できます。 authorized_keysでは、次のようになります。



画像



これらの全能の4人は、自分の重要性を認識し、キーの秘密部分のパスワードを忘れることなくラップトップドライブを暗号化します。

オフィス外での作業は、オフィスへのVPNを使用してのみ可能です。 オフィスに電気がない場合は、オフィスのネットワークをアナウンスできるバックアップVPNサーバーがあります。



全能サーバー



最後の重大なポイントは、大規模なサービスサーバーです。 サーバーはほとんどすべてを監視し、すべての鉄片とそれらが必要な理由を知っています。ただし、すべてのansibleタスクが起動されます。 サーバーには、パスワード付きの独自の秘密鍵があります。 サーバーに入った後、bashrcでssh-agentを使用したマジックにより、キーのパスワードを入力するように求められます。 その後、あなたは完全な力で働くことができます。 このサーバーへの直接のsshである「2つの支流、3つのスラム」はなく、サーバーにいます。



これらのルールは、サーバー上の通常のファイアウォール設定をキャンセルしません。 しかし、通常、ファイアウォールは少し広く構成され、オフィスネットワークからsshを起動し、sshd_configを介して、rootになることができるipのリストを押します。



画像



そして、これがすべて機能しない場合



各サーバーでの最後の検証の要点は.bashrcファイルです。シェルがsshを介して初期化されると、bashが起動し、接続ソースをチェックします。



画像



このような多数の制限オプションを使用して、従業員の作業を妨げることなく、必要なレベルの保護を構成します。 ただし、同時にサーバーが閉じているという自信を維持してください。 会社が成長するにつれて、私はオフィスで開始されるプログラムにますます自信がなくなります。 私はすべての従業員を信頼していますが、眠ることが困難です。



仕上げ計画



許可サーバーの機能を拡張して、ユーザーごとにサーバーのリストまたはマスクを指定できるようにします。 bashrcを追加して、接続時にユーザーとIPに関する情報を削除することができます。 次に、ユーザーが新しいIPなどを持っている場合は、ボックスをオンにします。 これが機能するかどうかはわかりませんが、お気軽に試してみてください。



PSbfuvxからのメッセージbashrcを回避する方法

ssh -vvv -i everebody root@149.154.64.101



「debug2:シェル要求がチャネル0で受け入れられました」などの何かをキャッチし、その時点で「Ctrl + c」を送信します。



最後に失敗したログイン:Tue Mar 20 02:41:12 EDT 2018 from 58.242.83.24 on ssh:notty

最後に成功したログイン以降、23回のログイン試行の失敗がありました。

最終ログイン:Tue Mar 20 02:40:14 2018 from 95.154.75.23

^ C-bash-4.2#



All Articles