私の組織のセキュリティチームは、弱い鍵を発行するため、弱い暗号を無効にするように指示しました。
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からこれらの暗号を無効にするために他にどこをチェックすればよいですか?
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>
は、サーバーがサポートするスキームを通知します。
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
暗号リストを明示的に指定する場合の問題は、新しい暗号が出てくるときに手動で追加する必要があることです。代わりに、削除する暗号をリストし、個々の暗号ではなくリストの先頭に「-」文字を追加します。したがって、この場合、Ciphers行は次のようになります。
Ciphers -arcfour*
または、必要に応じて:
Ciphers -arcfour,arcfour128,arcfour256
Ciphersオプションのsshd_config manページから(OpenSSH 7.5以降、2017年3月20日リリース):
指定された値が「+」文字で始まる場合、指定された暗号は、それらを置き換えるのではなく、デフォルトセットに追加されます。指定された値が「-」文字で始まる場合、指定された暗号(ワイルドカードを含む)は、それらを置き換えるのではなく、デフォルトセットから削除されます。
これはKexAlgorithmsおよびMACsオプションにも適用されます。
弱い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
暗号を有効/無効にするには、ファイル/ 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