Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/dev-sec/chef-os-hardening
クラウドインフラストラクチャセキュリティ構成監査DevSecOps認証
GitHubdev-sec/chef-os-hardening

chef-os-hardening

このChef Cookbookは多数のセキュリティ関連設定を提供し、包括的な基本保護を実現します。

リポジトリを見るウェブサイト
452132843ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

os-hardening (Chef cookbook)

[Supermarket][1] [Tests][2]

説明

このcookbookは、数多くのセキュリティ関連設定を提供し、全体的な基本保護を実現します。

以下の設定を行います:

  • パッケージ管理の設定(例: 署名済みパッケージのみを許可)
  • 既知の問題があるパッケージの削除
  • pam および pam_limits モジュールの設定
  • Shadow password suite の設定
  • システムパス権限の設定
  • ソフトリミットによるコアダンプの無効化
  • システムコンソールへのrootログインの制限
  • SUIDの設定
  • sysctlによるカーネルパラメータの設定

以下のことは行いません:

  • システムパッケージの更新
  • セキュリティパッチのインストール

要件

  • Chef >= 14.13.11

プラットフォーム

  • Ubuntu 20.04, 22.04, 24.04, 26.04
  • CentOS Stream 9, 10
  • AlmaLinux 8, 9, 10
  • Rocky Linux 8, 9, 10
  • Oracle Linux 8, 9, 10
  • Debian 13
  • Fedora 43, 44

属性

  • ['os-hardening']['components'][COMPONENT_NAME] - デフォルトレシピを介して実行されるコンポーネントを細かく制御できます。詳細は以下を参照してください
  • ['os-hardening']['desktop']['enable'] = false デスクトップシステム(Xorg、KDE/GNOME/Unityなど)の場合はtrue
  • ['os-hardening']['network']['forwarding'] = false このシステムがパケット転送を必要とする場合(ルーターなど)はtrue、それ以外はfalse
  • ['os-hardening']['network']['ipv6']['enable'] = false
  • ['os-hardening']['network']['arp']['restricted'] = true ARPの通知および応答を制限する場合はtrue、それ以外はfalse
  • ['os-hardening']['env']['extra_user_paths'] = [] ユーザーの PATH 変数に追加のパスを追加します(デフォルトは空)。
  • ['os-hardening']['env']['umask'] = "027"
  • ['os-hardening']['env']['root_path'] = "/" rootがマウントされている場所
  • ['os-hardening']['auth']['pw_max_age'] = 60 パスワードの最大有効期間
  • ['os-hardening']['auth']['pw_min_age'] = 7 パスワードの最小有効期間(他のパスワード変更を許可する前)
  • ['os-hardening']['auth']['pw_warn_age'] = 7 パスワードの最大有効期間が到来する前に、変更を警告する日数
  • ['os-hardening']['auth']['uid_min'] = 1000 useraddによって割り当てられるUIDの下限
  • ['os-hardening']['auth']['uid_max'] = 60000 useraddによって割り当てられるUIDの上限
  • ['os-hardening']['auth']['gid_min'] = 1000 groupaddによって割り当てられるGIDの下限
  • ['os-hardening']['auth']['gid_max'] = 60000 groupaddによって割り当てられるGIDの上限
  • ['os-hardening']['auth']['retries'] = 5 アカウントが一定時間ロックされるまでの最大認証試行回数
  • ['os-hardening']['auth']['lockout_time'] = 600 認証失敗が多すぎるためにアカウントがロックされた場合に経過する必要がある時間(秒)
  • ['os-hardening']['auth']['timeout'] = 60 認証タイムアウト(秒)。この時間が経過するとログインは終了します
  • ['os-hardening']['auth']['allow_homeless'] = false ホームディレクトリのないユーザーのログインを許可する場合はtrue
  • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true passwdqcを使用してPAMで強力なパスワードチェックを行いたい場合はtrue
  • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" passwdqcに渡したい任意のオプション行(文字列として)に設定します
  • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' /usr/share/pam-configs/passwdqc ファイルのテンプレートを取得するcookbookの名前に設定します
  • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' /usr/share/pam-configs/tally2 ファイルのテンプレートを取得するcookbookの名前に設定します
  • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' /etc/pam.d/system-auth-ac ファイルのテンプレートを取得するcookbookの名前に設定します
  • ['os-hardening']['security']['users']['allow'] = [] ユーザーに許可される操作のリスト。change_user を含めることができます
  • ['os-hardening']['security']['kernel']['enable_module_loading'] = true システム実行中にカーネルモジュールの変更(例: modprobe、rmmod)を許可する場合はtrue
  • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] ロードがブラックリストに登録されるカーネルファイルシステムモジュールのリスト(例: 未使用で無効化できるもの)。このブラックリストを完全に回避するには [] に設定します
  • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
  • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
  • ['os-hardening']['security']['suid_sgid']['enforce'] = true SUID/SGIDビットを削減したい場合はtrue。検索対象として設定済みのアイテムリストがありますが、独自のアイテムを追加することもできます
  • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] SUID/SGIDビットを削除する必要があるパスのリスト
  • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] SUID/SGIDビットを変更してはならないパスのリスト
  • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false blacklist に明示的に設定されていないファイルからSUID/SGIDビットを削除したい場合はtrue。これにより、すべてのChef実行でマウントされたファイルシステムを検索し、デフォルトおよびユーザーのブラックリストに設定されていないSUID/SGIDビットを探します。SUID/SGIDビットが見つかった場合、そのファイルが whitelist にない限り削除されます。
  • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false 上記の remove_from_unknown と同様ですが、SUID/SGIDビットは削除されません。 ファイルシステムを検索してSUID/SGIDビットを探しますが、ログに出力するだけです。このオプションは、SUID/SGIDビットに対して remove_from_unknown を最初に設定する場合にのみ推奨されます。変更されるファイルを確認し、whitelist と blacklist を調整できるためです。
  • ['os-hardening']['security']['packages']['clean'] = true 既知の問題があるパッケージを削除します。
  • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] 削除するパッケージのリスト。デフォルトでは以下のパッケージを削除します:
    • xinetd (NSA、第3.2.1章)
    • inetd (NSA、第3.2.1章)
    • tftp-server (NSA、第3.2.5章)
    • ypserv (NSA、第3.2.4章)
    • telnet-server (NSA、第3.2.2章)
    • rsh-server (NSA、第3.2.3章)
  • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' SELinux設定をそのままにしたい場合は unmanaged に設定します。SELinuxを強制するには enforcing、許容モードにするには permissive に設定します。

含まれるコンポーネントの制御

default.rb は、システムのohai自動検出属性に基づいて他のコンポーネントを含めます。例: 非RHELシステムではselinuxを実行しません。この動作をオーバーライドし、オーバーライドレベルで node['os-hardening']['components'] に属性を設定することで、コンポーネントの実行を強制または無効化できます。例

# 一部の属性ファイル
# sysctlとauditdを含めない
override['os-hardening']['components']['sysctl'] = false
override['os-hardening']['components']['auditd'] = false

# selinuxを強制的に含める
override['os-hardening']['components']['selinux'] = true

現在の実装では、異なるコンポーネントは異なるレシピに配置されています。利用可能なレシピまたは default.rb を参照して、可能なコンポーネント名を確認してください。

使用方法

レシピを run_list に追加します。最後に配置する必要があります:

"recipe[os-hardening]"

属性を設定します:

"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

ローカルテスト

ローカルテスト

chef-dk、VirtualBox または VMware Workstation、および Vagrant をインストールしてください。

Lintチェックは rubocop と foodcritic で行われます:

$ chef exec rake lint
.....

ユニット/スペックテストは chefspec で行われます:

$ chef exec rake spec
.....

統合テストは test-kitchen と inspec で行われます:

$ chef exec rake kitchen
.....
# またはkitchenを直接使用できます
$ kitchen test

フォークのCIテスト

Travis CI でフォークのテストを有効にできます。デフォルトでは、lint、スペックテスト、および [kitchen-dokken] による統合テストが実行されます。

[kitchen-dokken] による統合テストは、コンテナ環境で実行されるため、すべてをカバーするわけではありません。 完全な統合テストは DigitalOcean を使用して実行できます。

フォークで完全な統合テストを実行したい場合は、フォークの設定に以下の 環境変数 を追加する必要があります:

  • DIGITALOCEAN_ACCESS_TOKEN - DigitalOceanのアクセストークン
  • CI_SSH_KEY - DigitalOceanでインスタンスに利用可能なSSHキーの秘密鍵部分。base64エンコード形式(例: cat id_rsa | base64 -w0 ; echo)
  • DIGITALOCEAN_SSH_KEY_IDS - CI_SSH_KEY のDigitalOceanでのID。詳細はこちらを参照してください

貢献者 + 謝辞

  • Dominik Richter arlimus
  • Bernhard Weisshuhn bkw
  • Christoph Hartmann chris-rock
  • Edmund Haselwanter ehaselwanter
  • Patrick Meier atomic111
  • Artem Sidorenko artem-sidorenko

このcookbookは主に以下のガイドに基づいています:

ツールをダウンロード