Linux sshの暗号方式からcbcモードを無効化

2019-11-17

Linuxセキュリティ強化: sshの暗号方式からcbcモードを無効化する

前提条件

  • Linux のセキュリティ強化の設定を紹介します。今回は、SSHで使われる暗号方式について、CBCモード(Cipher Block Chaining)を無効化し、CTRモード(CounTR )など別のモードを使うように変更します。
  • 対象は、sshd(対象システムがsshサーバーとなる)およびssh(対象システムがsshクライアントとなる)です。
  • 暗号方式におけるアルゴリズム、モードは下記記事が大変勉強になります。

設定手順

  • 現在の環境でサポートされている暗号化方式を確認します。6つの暗号方式でcbcモードを使用していることが確認できます。
  • 下記コマンドは、暗号方式の有効/無効に関わらず結果に使用可能なすべての方式が表示されるため、ご注意ください。

$ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com
  • sshd(sshサーバー)およびssh(sshクライアント)の設定ファイルにて、前述の手順で確認できた5つの暗号化方式を除いた暗号化方式を指定します。

$ pwd
/etc/ssh
$ sudo cp -p ssh_config ssh_config_20190723
$ sudo cp -p sshd_config sshd_config_20190723
$ sudo vi ssh_config
※下記エントリを追加
Ciphers arcfour,arcfour128,arcfour256,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com

$ sudo vi sshd_config
※下記エントリを追加
Ciphers arcfour,arcfour128,arcfour256,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
  • sshdを再起動します。

$ sudo systemctl restart sshd

動作の確認

  • クライアントから対象サーバーにsshログインする(設定変更前)

$ ssh -c 3des-cbc username@11.11.22.22
The authenticity of host '11.11.22.22 (11.11.22.22)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? 
  • クライアントから対象サーバーにsshログインする(設定変更後)

$ ssh -c 3des-cbc username@11.11.22.22
Unable to negotiate with 11.11.22.22 port 22: no matching cipher found. Their offer: arcfour,arcfour128,arcfour256,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com