web-dev-qa-db-ja.com

SSH:弱い暗号を無効にする方法は?

私の組織のセキュリティチームは、弱い鍵を発行するため、弱い暗号を無効にするように指示しました。

  arcfour
  arcfour128
  arcfour256

しかし、私はssh_configおよびsshd_configファイルでこれらの暗号を探してみましたが、コメントされていました。

 grep arcfour *
ssh_config:#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

SSHからこれらの暗号を無効にするために他にどこをチェックすればよいですか?

53
rɑːdʒɑ

Ciphersキーワードを使用してssh_configに設定された暗号の明示的なリストがない場合、man 5 ssh_config(クライアント側)およびman 5 sshd_config(サーバー)によるデフォルト値-side)、は:

            aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
            [email protected],[email protected],
            [email protected],
            aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
            aes256-cbc,arcfour

Arcfour暗号の存在に注意してください。したがって、Ciphersに対してより制限的な値を明示的に設定する必要がある場合があります。

クライアントからのssh -Q cipherは、クライアントがサポートできるスキームを通知します。このリストは、ssh_configで指定された暗号のリストの影響を受けないことに注意してください。 ssh_configから暗号を削除しても、ssh -Q cipherの出力からは削除されません。さらに、ssh-cオプションと共に使用して明示的に暗号を指定すると、ssh_configで設定した制限付きの暗号リストが上書きされ、弱い暗号を使用できるようになる可能性があります。これは、sshクライアントを使用して、新しい強力な暗号をサポートしていない古いSSHサーバーと通信できるようにする機能です。

nmap --script ssh2-enum-algos -sV -p <port> <Host>は、サーバーがサポートするスキームを通知します。

43
Ulrich Schwarz

RC4を無効にし、SSHサーバーで安全な暗号を使用するには、/etc/ssh/sshd_configに以下をハードコーディングします

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

または、暗号を指定せずに、安全でない暗号を削除したい場合は、代わりに(Sudoモードで)コマンドラインで次のコマンドを実行します。

sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|[email protected]\)\,\?//g" >> /etc/ssh/sshd_config

サーバーで現在使用されている暗号は、次の方法で確認できます。

Sudo sshd -T | grep ciphers | Perl -pe 's/,/\n/g' | sort -u

Sshクライアントがこれらの暗号を使用できることを確認し、実行してください

ssh -Q cipher | sort -u

リストを見るために。

SSHクライアントに、リモートサーバーと安全な暗号のみをネゴシエートするように指示することもできます。 /etc/ssh/ssh_configセット:

Host *
    ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

上記のスニペットは here から来ています
サーバーの設定をテストするには、 ssh-audit を使用できます

32
savageBum

暗号リストを明示的に指定する場合の問題は、新しい暗号が出てくるときに手動で追加する必要があることです。代わりに、削除する暗号をリストし、個々の暗号ではなくリストの先頭に「-」文字を追加します。したがって、この場合、Ciphers行は次のようになります。

Ciphers -arcfour*

または、必要に応じて:

Ciphers -arcfour,arcfour128,arcfour256

Ciphersオプションのsshd_config manページから(OpenSSH 7.5以降、2017年3月20日リリース):

指定された値が「+」文字で始まる場合、指定された暗号は、それらを置き換えるのではなく、デフォルトセットに追加されます。指定された値が「-」文字で始まる場合、指定された暗号(ワイルドカードを含む)は、それらを置き換えるのではなく、デフォルトセットから削除されます。

これはKexAlgorithmsおよびMACsオプションにも適用されます。

24
Spacedog

弱いssh暗号を無効にする方法、Fedora 29で100%動作テスト済み。問題:Nessusは、私のsamba4サーバーが強い暗号aes256-cbcとaes128-cbcを使用していないと報告しています。だから私はそれらの行を/etc/ssh/sshd_config

MACs hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256,[email protected]

Etvoilà!..それはこのコマンドが機能するのでまだcbc暗号を使用します:(

ssh -c aes256-cbc samba4

だから私は有用なsystemdをチェックし、sshdサービスが暗号用に別のファイルを使用していることを発見しました

/etc/crypto-policies/back-ends/opensshserver.config

安全のためにファイルをバックアップします

cp /etc/crypto-policies/back-ends/opensshserver.config     /etc/crypto-policies/back-ends/opensshserver.config.old

それを編集し、cbc暗号を削除します。サービスを再起動します

systemctl restart sshd

そして最後にテストして、うまく機能します。

ssh -c aes256-cbc samba4
Unable to negotiate with 192.168.0.48 port 22: no matching cipher found. Their offer: [email protected],[email protected],aes256-ctr,[email protected],aes128-ctr
2
elbarna

暗号を有効/無効にするには、ファイル/ etc/ssh/sshd_configに暗号を追加/削除する必要があります。このファイルを編集した後、サービスをリロードする必要があります

systemctl reload sshd
/etc/init.d/sshd reload

次に、クライアントからこのコマンドを実行すると、サポートされているスキームがわかります

ssh -Q cipher

サーバーでarcfour暗号が有効になっているかどうかを確認するには、次のコマンドを実行します

ssh localhost -c arcfour

サーバーでarcfour128暗号が有効になっているかどうかを確認するには、次のコマンドを実行します

ssh localhost -c arcfour128
2
Kumar