

Lockdown UNix Auditing and Reporting
現在のバージョン 15.9.3
最新のバージョン情報については lunar.sh および CHANGELOG.md を参照してください
CC BY-NC-SA: https://creativecommons.org/licenses/by-nc-sa/4.0/
こちらで支援してください: https://ko-fi.com/richardatlateralblast
このコードは監査モードのみで実行してください。例えば -a または --audit スイッチを使用します。 ロックダウンは自己責任で実行してください。他のシステム変更と同様、バックアップを取ってください。 リカバリモードの改善に取り組んでいますが、まだバグが残っている可能性があります。
shellcheck を使用してこのスクリプトを可能な限りクリーンアップしようと努めており、 エラーから保護するために -e (errexit) および -u (nounset) シェルフラグを使用するオプションを 有効にしています。-x (xtrace) シェルフラグは -Q または --debug フラグを付けてスクリプトを 実行することで有効にできます。
進行中:
このスクリプトは Unix ホストのセキュリティに関するスコア付き監査レポートを生成します。 CIS およびその他のフレームワークに基づいています。可能な限り、コードのドキュメント内に CIS およびその他のベンチマークへの参照を記載しています。
なぜシェルスクリプトなのか? 他のツールが利用できない可能性があるロックダウンされた システム上で実行できるツールが欲しかったからです。また、すべてのバージョンの UNIX で 動作するツールも欲しかったのです。とはいえ、sh と bash にはいくつかの違いがあるため、 sh の関数のみを使用しています。
このスクリプトには明示的または暗黙的な保証はありません。私の推奨は、このスクリプトを 監査モードのみで使用し、各警告をポリシー、ドキュメント、構成管理を通じて個別に対処する ことです。
私は決してコーダーではないので、このスクリプトにはバグやより良いアプローチ方法が 必ず存在します。コードのバグや機能を修正するためのフィードバック、更新、パッチを 提供してくださった方々に心から感謝します。
また、ロックダウンを実行することもできます。他のいくつかのスクリプトとは異なり、 変更を元に戻す機能を追加しました。ファイルは日付に基づいたディレクトリに cpio を 使用してバックアップされます。
ロックダウンを実行できますが、前述のとおり、警告はポリシー、ドキュメント、構成管理を 通じて対処することを推奨します。これが私のツールの使用方法です。AWS サービス監査は レポートのみをサポートしており、ロックダウン機能は提供していません。
以下のオペレーティングシステムがサポートされています:
Windows のサポートには追加ソフトウェアのインストールが必要なため、検討していません。 とはいえ、将来的に bash 経由で Windows サポートが提供される可能性があります。
以下のサービスがサポートされています:
AWS サービス監査は AWS CLI を使用するため、適切な権限を持つユーザーが必要です。 現在、ロックダウン機能はサポートしておらず、CIS ベンチマークに対する監査レポートの 生成のみをサポートしています。
GUI 経由でのみ実行または解決できるチェックがいくつかあります。その一例が請求の 有効化です。詳細については CIS Benchmark を参照してください。
可能な限り、詳細監査出力に推奨修正コマンドを記載しています。繰り返しになりますが、 場合によっては CLI でのみ実行できるものもあります。詳細については CIS Benchmark を 参照してください。
さらに、Cloud Conformity のような企業が公開しているベストプラクティスに対して AWS をチェックする推奨事項モードを追加しました。
以下の構成管理出力がサポートされています:
このオプションは、推奨事項を実装するためのサンプル Ansible 構成管理コード/スタンザを 出力します。
UNIX の場合:
AWS の場合:
Azure の場合:
Usage: ./lunar.sh -switch|--switch
switch(es):
-----------
-1|--list)
List changes/backups
-2|--tests)
Print tests
-3|--printfunct)
Print function
-4|--dryrun)
Run in dryrun mode
-6|--format)
Outpt format/type
-7|--file)
Output file
-8|--usesudo)
Use sudo
-9|--shellcheck)
Run shellcheck against script
-0|--force)
Force action
-a|--audit)
Run in audit mode (for Operating Systems - no changes made to system)
-A|--fullaudit)
Run in audit mode and include filesystems (for Operating Systems - no changes made to system)
-b|--backups|--listbackups)
List backups
-B|--basedir)
Set base directory
-c|--codename|--distro)
Distro/Code name (used with docker/multipass)
-C|--shell)
Run docker-compose testing suite (drops to shell in order to do more testing)
-d|--dockeraudit)
Run in audit mode (for Docker - no changes made to system)
-D|--dockertests)
List all Docker functions available to selective mode
-e|--host)
Run in audit mode on external host (for Operating Systems - no changes made to system)
-E|--hash|--passwordhash)
Password hash
-f|--action)
Action (e.g delete - used with multipass)
-F|--tempfile)
Temporary file to use for operations
-g|--giturl)
Git URL for code to copy to container
-G|--wheelgroup)
Set wheel group
-h|--help)
Display help
-H|--usage)
Display usage
-i|--anacron)
Enable/Disable anacron
-I|--type)
Audit type
-k|--kubeaudit)
Run in audit mode (for Kubernetes - no changes made to system)
-K|--function|--test)
Do a specific function
-l|--lockdown)
Run in lockdown mode (for Operating Systems - changes made to system)
-L|--fulllockdown|fulllock)
Run in lockdown mode (for Operating Systems - changes made to system)
-m|--machine|--vm)
Set virtualisation type
-M|--workdir)
Set work directory
-n|--ansible)
Output ansible
-N|--nocat)
Do output cat in score
-o|--os|--osver)
Set OS version
-O|--osinfo|--systeminfo)
Print OS/System information
-p|--previous)
Print previous audit information
-P|--sshsandbox|--sandbox)
Enable/Disabe SSH sandbox
-q|--quiet|--nostrict)
Run in quiet mode
-Q|--debug)
Run in debug mode
-r|--awsregion|--region)
Set AWS region
-R|--moduleinfo|--testinfo)
Print information about a module
-s|--select|--check)
Run in selective mode (only run tests you want to)
-S|--unixtests|--unix)
List UNIX tests
-t|--tag|--name)
Set docker tag
-T|--tempdir)
Set temp directoru
-u|--undo)
Undo lockdown (for Operating Systems - changes made to system)
-U|--dofiles)
Include filesystems
-v|--verbose)
Run in verbose mode
-V|--version)
Print version
-w|--awsaudit)
Run in audit mode (for AWS - no changes made to system)
-W|--awstests|--aws)
List all AWS functions available to selective mode
-x|--awsrec)
Run in recommendations mode (for AWS - no changes made to system)
-X|--strict)
Run shellcheck against script
-z)
Run specified audit function in lockdown mode
-Z|--changes|--listchanges)
List changes
完全監査を実行 (再帰的ファイルシステムチェックなし):
./lunar.sh --audit
テストを一覧表示:
./lunar.sh --tests
AWS テストを一覧表示:
./lunar.sh --tests aws
特定のテストを実行:
./lunar.sh --audit --select remote_shell
テスト用に Ubuntu 24.04 multipass VM を作成:
./lunar.sh --action create --machine multipass --osver 24.04
詳細については wiki を参照してください:
lunar スクリプト自体をデバッグするためのシンプルなテストフレームワークを追加しました。 これは docker compose を使用してコンテナを起動し、lunar ディレクトリをマウントして lunar を実行します。