sshセキュリティを強化するにはどうすればよいですか?キーとパスワードの両方を要求できますか?


16

サーバーの小規模ネットワークがあり、一般的なセキュリティを強化したいと思います。VPNを設定するのに十分な時間/お金/妄想がありません-システムのセキュリティを強化する基本的な方法は何ですか?

1つは、ユーザーにキーの送信とパスワードの入力の両方を要求することです。"ssh key password"についてのすべてはパスワードなしでのsshingであるため、これはGoogleにとってはやや困難です。:-)

私が常にいじりたいと思っていたスキームの1つは、着信接続がdyndns IPアドレスのホワイトリストからのみ来るように要求することです。いくつかのセキュリティヘッドがこのアイデアの考えで吐き出すことは知っていますが、問題の事実は、ボックスを悪用するために非常に大きな複雑さを追加することです。

どう思いますか?他に何がありますか?


AllowUsersまたはDenyUsersディレクティブを使用して、接続を許可されているユーザーのリストを制限することもできます。この投稿の詳細。
フレッド

回答:


8

パスワードとキーを使用したログインは、「キーを使用しただけ」と同じです。キーの作成中に、パスフレーズを入力するよう求められます。空白のままにすると、パスワードの入力は求められません。パスフレーズを入力すると、ログインするたびにパスフレーズが求められます。

セキュリティについて懸念がある場合は、このフォーラムで何兆回も言及されている次のアドバイスを検討してください。

  • ルートのsshログインを無効にします
  • 定義されたIPアドレス(iptables、hosts.allow、...)からのみsshアクセスを許可します
  • SSHポートを別のポートに移動します(セキュリティよりも不明瞭ですが、動作します)
  • 外部ログインの試行を監視し、それに応じて対応する
  • システムを最新の状態に保つ

等など

更新:OpenSSHサーバーで公開鍵とローカルシステムパスワードの両方を要求する方法については、こちらの回答を参照しください。


すべてのヒントをありがとう、それらを調べます。キーとパスワードの両方が必要な場合、悪用者がパスワードを見つけた場合(ユーザーが安全でない他の場所でパスワードを使用する場合など)、キーなしではアクセスできず、エクスプロイトがユーザーのマシンからキーを盗む場合、パスワードを知らないと入ることができません…そうですか?
ジョンバチャー

12
同じではありません。キーのみが必要な場合、サーバーはキーにパスワード強度ポリシーを適用できません。不注意なユーザーは、暗号化されていない秘密鍵をクライアントに置き、鍵が盗まれた場合にサーバーが脆弱になる可能性があります。
200_success

mkudlacek-以前はhosts.allowについては知りませんでしたが、グーグルで動き回って、私のdyndnsホワイトリストのアイデアは結局それほど愚かではないようです。試してみると思います。
ジョンバチル

1
200_success-キーとパスワードの両方を要求することは可能ですか?
ジョンバチル

また、DenyHostsアプリケーションを使用して、侵入しようとして失敗し続ける人々を締め出すのに役立てています。...人をブラックリストのちょっといいプロアクティブな自動化された方法
ジェームズ・T・スネル

6

おもしろいと思うアイデアの1つは、ポートノッキングです。基本的に、sshサーバーが接続要求を確認する前に、ssh接続を確立するために、まず他のポートのシーケンスをプローブする必要があります。ポートの正しいシーケンスが使用されない場合、応答がないため、sshサーバーが実行されていないように見えます。ポートのシーケンスはカスタマイズ可能で、目的のユーザーと共有できます。他の全員は事実上接続できません。

私はこれを自分で試したことはありませんが、聞いたところによると(実際にはそれほどではありません)、オーバーヘッドは無視でき、可視性プロファイルが大幅に低下します。


「一般的なセキュリティを強化する」だけの場合はこれを使用しますが、代わりに特定のセキュリティ問題を解決することをお勧めします。
ステファンサイバーグ

私はこれをsshを使用するすべてのサイトで使用していますが、非常に効果的です。
Sirex

これは、4文字以上のパスワードを持っているのと同じではありませんか?
ジョンバチル

あんまり。65536個のポートと26個の文字があります。また、任意の長さのノックシーケンスがあり、標準のファイアウォール技術を使用して再試行を制限できます。それ自体はセキュリティではありませんが、持っていると便利です。
Sirex

よくして8または12文字より長く:-D
ジョンBachir

3

SSHでの直接有効化に関連するパッチと多くの関連する議論:

これは、パスワード検証スクリプトとForceCommand構成オプションの使用を組み合わせることにより、変更せずに実行することもできます。

最後に、モジュールは存在しませんが、公開キー認証をPAMに移動した場合、PAMが認証が成功したと見なす前に両方の手順をパスする必要があります。


2

ただ使う

RequiredAuthentications publickey, password

sshd_configssh.comからsshdを使用している場合。この機能はOpenSSHでは使用できません。


RequiredAuthentications間違いなく、OpenSSHのに非標準の拡張である
ヒューバートKario

どのsshd実装がこれをサポートしているか知っていますか?
ジョンバチャー

Tectia SSHサーバーはサポートしています。ところで:彼らのコメントに返信するときに@nameOfUserを使用して、このように彼らは返信について通知されます
Hubert Kario

同様の機能は、バージョン6.2のようOpenSSHの中でサポートされています。serverfault.com/a/562899
セーレンLøvborg

1

ワンタイムパスワードを使用してセキュリティを強化することもできます。これにより、ユーザーが以前に次のパスワードを生成した場合、キーロガーを備えた安全でない端末からログインできます。また、古いJava MIDP電話にもインストールできるパスワードジェネレーターがあり、常に持ち歩いています。


はい、私のパーソナルサーバーでは、パスワードに加えてYubikeyトークンを使用します。トークンはワンタイムパスワードを生成します。認証には両方が必要です。または、SSHキーで認証する場合、パスワード/ otpペアのバイパスを許可します。Yubikeyは安価で、Linuxの拡張可能な認証システムであるPamと統合するためのソフトウェアがたくさんあります。
マルタインHeemels

1

IP制限なしでsshd、rdp、またはそのような管理サービスを実行しないことをお勧めします。実際、このようなサービスへのアクセスを、VPN経由で接続する管理者に制限することをお勧めします。



0

3moloに強く同意します。OpenSSHは、LinuxおよびUnixのデフォルトのSSHサーバーです。特にセキュリティのために、変更する理由はありません。VPNは、トラフィックを暗号化し、2段階のパスワード認証を提供できる最適なソリューションである必要があります。


0

誰もそれについて言及していない理由はわかりませんが、安全であると見なされなくなったデフォルトの1024ビットよりも長いキーを必ず生成する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.