

ロックダウンUNIX監査およびレポート
現在のバージョン 15.9.1
最新のバージョン情報については、lunar.sh および changelog を参照してください。
CC BY-SA: https://creativecommons.org/licenses/by-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 ベンチマークを参照してください。
可能な限り、詳細監査出力に推奨される修正コマンドを記載しています。ただし、一部のケースでは CLI でのみ実行可能な場合もあります。詳細は CIS ベンチマークを参照してください。
さらに、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 を実行します。