Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
chef-os-hardening — このChef Cookbookは多数のセキュリティ関連設定を提供し、包括的な基本保護を実現します。 | Kitploit
ツール/GitHubGitHub/dev-sec/chef-os-hardening
クラウドインフラストラクチャセキュリティ構成監査DevSecOps認証
GitHubdev-sec/chef-os-hardening

chef-os-hardening

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

os-hardening (Chef cookbook)

Supermarket Tests

説明

この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 パスワードの最小有効期間(他のパスワード変更を許可する前)

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

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

root@kitploit:~
# 一部の属性ファイル
# 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 に追加します。最後に配置する必要があります:

root@kitploit:~
"recipe[os-hardening]"

属性を設定します:

root@kitploit:~
"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

ローカルテスト

ローカルテスト

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

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

root@kitploit:~
$ chef exec rake lint
.....

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

root@kitploit:~
$ chef exec rake spec
.....

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

root@kitploit:~
$ 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は主に以下のガイドに基づいています:

  • Arch Linux wiki、Sysctlの堅牢化
  • Ubuntu Security/Features
  • NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5
  • Deutsche Telekom、Group IT Security、セキュリティ要件(ドイツ語)

皆さんに感謝します!!

貢献

貢献者ガイドライン を参照してください。

ライセンスと作者

  • Author:: Dominik Richter [email protected]
  • Author:: Deutsche Telekom AG

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

ツールをダウンロード
  • ['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 に設定します。