konstruktoid.hardening
サーバーのセキュリティを強化するためのAnsibleロール
これは、AlmaLinux、Debian、またはUbuntuで動作するサーバーのセキュリティを向上させるために設計されたAnsibleのロールです。
このロールはsystemdに焦点を当てており、Ansibleのバージョン2.15以上が必要です。
このロールは以下のオペレーティングシステムをサポートしています:
- AlmaLinux 8
- AlmaLinux 9
- Debian 11 (Bullseye)
- Debian 12 (Bookworm)
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 24.04 (Noble Numbat)
AWSやAzureを使用している場合、ハードニングされたUbuntu Amazonマシンイメージ(AMI)やAzure仮想マシンイメージも利用可能です。
これらはkonstruktoid/hardened-imagesリポジトリで入手できます。これらのイメージはPackerを使用して構築され、このAnsibleロールを使用して構成されます。
注意 運用環境で使用する前に、必ずテスト環境でテストしてください。
注意 検証のために、以下のSLSAアーティファクトがあります。 slsaアクションワークフロー。
依存関係
なし。
例
要件
---
roles:
- name: konstruktoid.hardening
version: v2.1.0
src: https://github.com/konstruktoid/ansible-role-hardening.git
scm: git
プレイブック
---
- name: ハードニングロールをインポートして使用する
hosts: localhost
any_errors_fatal: true
tasks:
- name: ハードニングロールをインポートする
ansible.builtin.import_role:
name: konstruktoid.hardening
vars:
sshd_admin_net:
- 10.0.2.0/24
- 192.168.0.0/24
- 192.168.1.0/24
suid_sgid_permissions: false
git checkoutを使用したローカルプレイブック
---
- name: konstruktoid.hardeningをチェックアウトして構成する
hosts: localhost
any_errors_fatal: true
tasks:
- name: ハードニングリポジトリをクローンする
become: true
tags:
- always
block:
- name: gitをインストールする
ansible.builtin.package:
name: git
state: present
- name: konstruktoid.hardeningをチェックアウトする
become: true
ansible.builtin.git:
repo: https://github.com/konstruktoid/ansible-role-hardening
dest: /etc/ansible/roles/konstruktoid.hardening
version: v2.1.0
- name: gitを削除する
ansible.builtin.package:
name: git
state: absent
- name: ハードニングロールを含める
ansible.builtin.include_role:
name: konstruktoid.hardening
vars:
sshd_allow_groups:
- ubuntu
sshd_login_grace_time: 60
sshd_max_auth_tries: 10
sshd_use_dns: false
sshd_update_moduli: true
UFWルールに関する注意
ufw
を毎回リセットするのではなく、comment: ansible managed
タスクパラメータと値のないすべてのufw
ルールを削除します。
また、ロールはデフォルトの拒否ポリシーを設定し、sshd_ports
やufw_outgoing_traffic
変数で指定されたポートを除いて、追加のポートに対するファイアウォールルールを作成する必要があります。
詳細はufw(8)を参照してください。
タスクの実行と構造
ロール構造のツリーについてはSTRUCTURE.mdを参照してください。
ロールテスト
テストについてはTESTING.mdをご覧ください。
デフォルトのロール変数
(ここから続けて、各変数の説明を日本語で翻訳できますが、長くなるため、必要なセクションだけ翻訳してほしい場合はお知らせください。)