web-dev-qa-db-ja.com

暗号化、ハンドシェイク、またはその他の暗号化設定に関して、最も厳しいSSHデーモン設定は何ですか?

私は、SSHとSFTPを多用しています。具体的には、パブリックIPアドレスでSSHポートが開いている2つのマシン間で特定します。

2018年の暗号化、ハンドシェイク、またはその他の暗号化設定に関して、最も厳しいSSHデーモン設定は何ですか?

特に暗号化プロトコルに興味があります。適切なパスワードの選択、適切なキー管理、ファイアウォールなどでSSHを保護することは、私がここで尋ねていることの範囲外です。

これまでのところ、両方のマシンで/etc/ssh/sshd_configを見つけて設定しました:

AuthenticationMethods publickey
Ciphers aes256-cbc
MACs [email protected]
FingerprintHash sha512
#KexAlgorithms

これは、先ほど投稿した Debian 9サーバーでのSSHセキュリティの強化 のフォローアップ質問と考えることができます。しかし、特定の方法で、私は最高の設定を知りたいです。

28

ここで良い議論があります: https://wiki.mozilla.org/Security/Guidelines/OpenSSH

最近のOpenSSHでは、次のことを推奨しています。

KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256

Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]

このページでは、それぞれの選択肢について説明します。 https://stribika.github.io/2015/01/04/secure-secure-Shell.html

(URLにハードコーディングされた日付に騙されないでください。ドキュメントは時々更新されます https://github.com/stribika/stribika.github.ioの「変更ログ」から確認できます) /commits/master/_posts/2015-01-04-secure-secure-Shell.md

Logjamに対して、 https://weakdh.org/sysadmin.html の終わりを参照してください:

KexAlgorithms [email protected]
29
Patrick Mevzek

正直なところ、私はこれらのことをあまり理解していません。私は強力な暗号化とすべてを望んでいます

「すべて」の意味はわかりませんが、強力な暗号化だけが必要な場合は、デフォルト設定を変更しないでください。可能性としては、より安全である可能性がありますが、セキュリティを向上させるよりも、セキュリティを破る可能性が高くなります。あなたが何をしているのか分からない。

認証とネゴシエーションの暗号は、セキュリティ全体の対称アルゴリズムよりもはるかに重要です。これらについては何も説明していません。

詳細を知りたいのは良いことですが、2018年2月の最強の暗号に関する意見のコンセンサス(少なくとも、適切に保守されたソフトウェアの最新バージョンを参照している場合)は、理解と比較してほとんど価値がありませんプロトコルの仕組みと、実装がオペレーティングシステムとどのように統合されるかを示します。

26
symcbean

以下の構成は、ある程度の互換性を維持しながらより高いセキュリティレベルを提供し、構成の複雑さを軽減することができます。

警告:次の構成はすべてのクライアントと互換性があるわけではありません

# Change the port number avoid automated attack
Port 2222

# Limit to SSH2 only (the default value)
Protocol 2

# Use RSA and Ed25519 Host key only
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_ed25519_key

# No root login, obvious
PermitRootLogin no

# Log the finger print of public key used to login, provide audit trails. Might take up more storage.
LogLevel VERBOSE

# 2 Factor Authentication. User must present a valid public key first, then enter the correct password to login
AuthenticationMethods publickey,password

# How fast you can type your password?
LoginGraceTime 20

# Key Exchange
KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256

# Ciphers
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes128-ctr

# MACs
MACs [email protected],[email protected],[email protected],

# Only allow specific group member login via SSH
AllowGroups ssh-user

# Renew encryption key every 30 minutes or 1 GB of transferred data (overkill & generate overhead, use with caution, especially on slow network)
#RekeyLimit 1G 1800

セキュリティのために3072ビット未満のモジュールを削除します(Mozillaに感謝)

awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.tmp && mv /etc/ssh/moduli.tmp /etc/ssh/moduli

ファイアウォール(iptables)、fail2ban、Tor隠しサービス、カスタムmoduliとtcpwrapperへの切り替えなどの微調整により、セキュリティはさらに向上しますが、これらのトピックはこの回答では対象外です。構成が完了していないことに注意してください。デーモンが機能するために、他の重要なパーツが必要になる場合があります。元の設定ファイルをバックアップして、何か問題が発生した場合にロールバックできるようにしてください。

11
Hartman

私はこれについて詳細な回答を SSHセキュリティを(さらに)保証する方法への私の回答?ssh.comごとにOpenSSH変更ログ で提供しました=更新に含まれるようです

  • ed25519よりもecdsaを好む場合、それは一部のSSHソフトウェアのオプションです
  • StrictHostKeyCheckingには、より多くのオプションがあります。
  • DisableForwardingは新しい
  • すべてのSHA2署名を使用し、SHA1署名は使用しない
3