
This chef cookbookは、安全なssh-clientおよびssh-server設定を提供します。
[][1]
[
][2]
[
][3]
[
][4]
このクックブックは、安全なssh-clientおよびssh-serverの設定を提供します。このクックブックはユーザーやsshキーの管理機能を提供しません。その場合は他のクックブックを使用してください。
以下に、属性のドキュメントとそのデフォルト値を見つけることができます。
注意: このクックブックの属性デフォルトの一部はレシピ内で設定されています。そのような属性を上書きする場合は、より高い属性優先順位レベルを使用してください。そのような属性は、以下のリストで#override attribute#とフラグが付けられています。そのような属性を上書きする例:
override['ssh-hardening']['ssh']['server']['listen_to'] = node['ipaddress']
['ssh-hardening']['network']['ipv6']['enable'] - false。IPv6が必要な場合はtrueに設定します['ssh-hardening']['ssh']['ports'] - 22。ssh-serverがリッスンし、ssh-clientが接続するポート['ssh-hardening']['ssh'][{'client', 'server'}]['kex'] - nil。サーバーバージョンに基づいて最適な鍵交換(KEX)を計算する場合はnil、それ以外の場合はKex値の文字列を指定します['ssh-hardening']['ssh'][{'client', 'server'}]['mac'] - nil。サーバーバージョンに基づいて最適なメッセージ認証コード(MAC)を計算する場合はnil、それ以外の場合はMac値の文字列を指定します['ssh-hardening']['ssh'][{'client', 'server'}]['cipher'] - nil。サーバーバージョンに基づいて最適な暗号を計算する場合はnil、それ以外の場合はCipher値の文字列を指定します['ssh-hardening']['ssh'][{'client', 'server'}]['cbc_required'] - false。暗号にCBCが必要な場合はtrueに設定します。これは通常、設定された安全な暗号が有効になっていない古いM2MメカニズムがSSHと通信する必要がある場合にのみ必要です。CBCは脆弱な代替手段です。これより弱いものは避けるべきであり、利用できません。['ssh-hardening']['ssh'][{'client', 'server'}]['weak_hmac'] - false。より弱いHMACメカニズムが必要な場合はtrueに設定します。これは通常、設定された安全なHMACが有効になっていない古いM2MメカニズムがSSHと通信する必要がある場合にのみ必要です。['ssh-hardening']['ssh'][{'client', 'server'}]['weak_kex'] - false。より弱い鍵交換(KEX)メカニズムが必要な場合はtrueに設定します。これは通常、設定された安全なKEXが有効になっていない古いM2MメカニズムがSSHと通信する必要がある場合にのみ必要です。['ssh-hardening']['ssh']['client']['remote_hosts'] - [] - ssh-clientが接続できる1つ以上のホスト。['ssh-hardening']['ssh']['client']['password_authentication'] - false。パスワード認証を有効にする場合はtrueに設定します。['ssh-hardening']['ssh']['client']['roaming'] - false。実験的なクライアントローミングを有効にする場合はtrueに設定します。これは、秘密情報が悪意のあるサーバーに開示される可能性がある既知の問題を引き起こすため、デフォルトで無効になっています。['ssh-hardening']['ssh']['client']['extras'] - {}。追加の設定オプションを追加します。詳細は下記を参照してください['ssh-hardening']['ssh']['server']['host_key_files'] - nil。サーバーバージョンに基づいて最適なホストキー設定を計算する場合はnil、それ以外の場合はファイルパスの配列を指定します(例: /etc/ssh/ssh_host_rsa_key)['ssh-hardening']['ssh']['server']['dh_min_prime_size'] - 2048 - /etc/ssh/moduliにおけるビット単位の最小許容素数長。この数値未満の素数は削除されます。(詳細と背景についてはこちらを参照してください)['ssh-hardening']['ssh']['server']['dh_build_primes'] - false - 独自の素数を構築するかどうか。この再構築は一度だけ行われ、多くの時間がかかります(現代のハードウェアで4096長の場合、約1.5〜2時間)。['ssh-hardening']['ssh']['server']['dh_build_primes_size'] - 4096 - 生成される素数長。このオプションはdh_build_primesが有効な場合のみ有効です。['ssh-hardening']['ssh']['server']['listen_to'] #override attribute# - ssh-serverがリッスンする1つ以上のIPアドレス。デフォルトはすべてのインターフェースでリッスンします。セキュリティ上の理由から設定する必要があります!['ssh-hardening']['ssh']['server']['allow_root_with_key'] - false。rootログインを完全に無効にします。キーベースのメカニズムによるrootログインを許可するにはtrueに設定します['ssh-hardening']['ssh']['server']['allow_tcp_forwarding'] - false。TCPフォワーディングを許可するにはtrueに設定します['ssh-hardening']['ssh']['server']['allow_agent_forwarding'] - false。エージェントフォワーディングを許可するにはtrueに設定します['ssh-hardening']['ssh']['server']['allow_x11_forwarding'] - false。X11フォワーディングを許可するにはtrueに設定します['ssh-hardening']['ssh']['server']['permit_tunnel'] - false。tunデバイスのフォワーディングを無効にします。tunデバイスのフォワーディングを許可するにはtrueに設定します。その他の受け入れ可能な値: 'yes'、'no'、'point-to-point'、'ethernet'。正確な動作についてはman sshd_configを参照してください。注意: allow_tcp_forwardingも有効にする必要があります。['ssh-hardening']['ssh']['server']['use_pam'] - true。sshdのpam認証を無効にするにはfalseに設定します['ssh-hardening']['ssh']['server']['challenge_response_authentication'] - false。チャレンジレスポンス認証を有効にするにはtrueに設定します。['ssh-hardening']['ssh']['server']['deny_users'] - []。DenyUsersを設定します。指定された場合、パターンのいずれかに一致するユーザー名のログインは拒否されます。['ssh-hardening']['ssh']['server']['allow_users'] - []。AllowUsersを設定します。指定された場合、パターンのいずれかに一致するユーザー名のみログインが許可されます。['ssh-hardening']['ssh']['server']['deny_groups'] - []。DenyGroupsを設定します。指定された場合、プライマリグループまたは補助グループリストがパターンのいずれかに一致するユーザーのログインは拒否されます。['ssh-hardening']['ssh']['server']['allow_groups'] - []。AllowGroupsを設定します。指定された場合、プライマリグループまたは補助グループリストがパターンのいずれかに一致するユーザーのみログインが許可されます。['ssh-hardening']['ssh']['server']['print_motd'] - false。MOTDの表示を有効にするにはtrueに設定します['ssh-hardening']['ssh']['server']['print_last_log'] - false。最終ログイン情報の表示を有効にするにはtrueに設定します['ssh-hardening']['ssh']['server']['banner'] - nil。バナーを有効にするには'/etc/issue.net'のようなパスを設定します['ssh-hardening']['ssh']['server']['os_banner'] - false。プロトコルハンドシェイク中のバージョン情報を無効にします(debianファミリーのみ)。有効にするにはtrueに設定します['ssh-hardening']['ssh']['server']['use_dns'] - nil。opensshのデフォルトを使用します。リモートホストのDNSルックアップとチェックを有効/無効にするにはtrueまたはfalseに設定します['ssh-hardening']['ssh']['server']['use_privilege_separation'] - nil。サーバーバージョンに基づいて最適な値を計算する場合はnil、それ以外の場合はtrueまたはfalseを設定します['ssh-hardening']['ssh']['server']['login_grace_time'] - 30s。ログインが正常に完了するまでの時間。これを超えるとユーザーは切断されます。['ssh-hardening']['ssh']['server']['max_auth_tries'] - 2。接続ごとの認証試行回数['ssh-hardening']['ssh']['server']['max_sessions'] - 10。接続ごとのセッション数['ssh-hardening']['ssh']['server']['password_authentication'] - false。パスワード認証を有効にする場合はtrueに設定します['ssh-hardening']['ssh']['server']['log_level'] - verbose。sshdのログレベル。可能な値についてはman 5 sshd_configのLogLevelを参照してください。['ssh-hardening']['ssh']['server']['sftp']['enable'] - false。OpenSSHデーモンのSFTP機能を有効にするにはtrueに設定します['ssh-hardening']['ssh']['server']['sftp']['group'] - sftponly。専用ユーザーのみにSFTPを許可するためにSFTPのMatch Groupオプションを設定します['ssh-hardening']['ssh']['server']['sftp']['chroot'] - /home/%u。SFTPユーザーがchrootされるディレクトリを設定します['ssh-hardening']['ssh']['server']['sftp']['authorized_keys_path'] - nil。nilでない場合、SFTP専用アクセスのMatch Group内に設定される、スペース区切りの1つまたは複数のauthorized keysファイルへのフルパス['ssh-hardening']['ssh']['server']['sftp']['password_authentication'] - false。パスワード認証を有効にする場合はtrueに設定します['ssh-hardening']['ssh']['server']['authorized_keys_path'] - nil。nilでない場合、スペース区切りの1つまたは複数のauthorized keysファイルへのフルパスが期待されます。['ssh-hardening']['ssh']['server']['extras'] - {}。追加の設定オプションを追加します。詳細は下記を参照してください['ssh-hardening']['ssh']['server']['match_blocks'] - {}。Match設定ブロック。詳細は下記を参照してくださいレシピをrun_listに追加します:
"recipe[ssh-hardening]"
これによりssh-serverとssh-clientがインストールされます。代わりに以下のいずれかのみを選択することもできます:
"recipe[ssh-hardening::server]"
"recipe[ssh-hardening::client]"
属性を設定します:
"ssh-hardening": {
"ssh" : {
"server" : {
"listen_to" : "10.2.3.4"
}
}
}
listen_toのデフォルト値は0.0.0.0です。この値を変更することを強くお勧めします。
SFTP設定を有効にするには、以下のレシピのいずれかをrun_listに追加します:
"recipe[ssh-hardening]"
または
"recipe[ssh-hardening::server]"
属性を設定します:
"ssh-hardening": {
"ssh" : {
"server": {
"sftp" : {
"enable" : true,
"chroot" : "/home/sftp/%u",
"group" : "sftusers"
}
}
}
}
これによりSFTPサーバーが有効になり、sftpusersグループのすべてのユーザーが/home/sftp/%uディレクトリにchrootされます。
追加の設定オプションをクライアントまたはサーバーの設定ファイルに追加できます。これは、静的に設定された値を上書きしたり、属性では利用できない設定オプションを追加したりするために使用できます。