
🛡️ オープンソースかつクラウドネイティブなWebアプリケーションファイアウォール(WAF)
🌐 ウェブサイト
|
🤝 パネル
|
📓 ドキュメント
|
👨💻 デモ
|
📱 デモ UI
|
🧩 テンプレート
|
🛡️ 例
💬 チャット
|
📝 フォーラム
|
📝 コミュニティ
|
🗺️ 脅威マップ
|
📊 ステータス
|
🔎 フィードバック
🛡️ セキュリティをデフォルトで大きくしましょう!
BunkerWeb は、次世代のオープンソース Web アプリケーションファイアウォール(WAF)です。
フル機能の Web サーバー(内部で NGINX をベース)として、Web サービスを保護し、「デフォルトでセキュア」にします。BunkerWeb は、既存の環境(Linux、Docker、Swarm、Kubernetesなど)にリバースプロキシとしてシームレスに統合され、完全に設定可能です(CLI が好みでない場合のために、素晴らしい Web UI もあります)。つまり、サイバーセキュリティはもはや煩わしさではありません。
BunkerWeb はコアに主要なセキュリティ機能を含みますが、プラグインシステムによって追加のセキュリティ機能で簡単に拡張できます。
https://github.com/user-attachments/assets/c3fed740-28d8-4335-ab05-113a9e815b4f
セキュリティ機能の非網羅的なリスト:
コアセキュリティ機能の詳細については、ドキュメントのセキュリティチューニングセクションをご覧ください。
https://github.com/user-attachments/assets/6fc0e3c1-d353-4a84-bad0-15bf9b6623a5
BunkerWeb で保護されたデモ Web サイトは demo.bunkerweb.io で利用可能です。ぜひアクセスしてセキュリティテストを試してみてください。
https://github.com/user-attachments/assets/a3ed56f8-c124-4ca9-b8b3-4be0913b3078
BunkerWeb は、インスタンスとその設定を管理するためのオプションのユーザーインターフェースを提供しています。読み取り専用のオンラインデモは demo-ui.bunkerweb.io で利用可能です。ぜひお試しください。
自分で BunkerWeb インスタンスをホスト・管理したくないですか?BunkerWeb Cloud は、完全マネージドの SaaS サービスとして BunkerWeb を提供します。
BunkerWeb Cloud インスタンス を注文して、以下を利用可能:
BunkerWeb Cloud の提供にご興味があれば、お気軽にお問い合わせください。お客様のニーズについて話し合いましょう。
BunkerWeb PRO を 1 か月間お試しになりたいですか?BunkerWeb パネルで注文時にコード freetrial を使用するか、こちらをクリックしてプロモコードを直接適用してください(チェックアウト時に有効になります)。
BunkerWeb を使用する際には、オープンソース版と PRO 版のいずれかを選択できます。
強化されたセキュリティ、充実したユーザー体験、テクニカルモニタリングのいずれにおいても、BunkerWeb PRO バージョンは BunkerWeb を最大限に活用し、業務ニーズを満たすことができます。
ドキュメントやユーザーインターフェースでは、PRO 機能には王冠アイコン が付いており、オープンソース版に統合されている機能と区別されます。
オープンソース版から PRO 版へのアップグレードは簡単で、いつでも可能です。手順は以下の通り:
freetrial プロモコードを使用して無料トライアルを請求しますPRO バージョンに関するご質問は、BunkerWeb パネルをご覧いただくか、お問い合わせください。
プロジェクトのメンテナーから直接プロフェッショナルサービスを受けて、BunkerWeb を最大限に活用しましょう。テクニカルサポートからカスタマイズコンサルティング、開発まで、お客様の Web サービスのセキュリティをお手伝いします。
詳細は、プロフェッショナルサービス専用プラットフォームである BunkerWeb Panel をご覧ください。
ご質問があれば、お問い合わせください。お客様のニーズにお応えいたします。
BunkerWeb に関する公式サイト、ツール、リソース:
コミュニティとソーシャルネットワーク:
BunkerWeb の主要なコンセプトの詳細については、ドキュメントをご覧ください。
最初のコンセプトは、BunkerWeb をターゲット環境に統合することです。「インストール」ではなく「インテグレーション」という言葉を使用するのは、BunkerWeb の目標の一つが既存環境にシームレスに統合することだからです。
以下のインテグレーションが公式にサポートされています:
BunkerWeb を環境に統合したら、Web アプリケーションを提供・保護するために設定する必要があります。
BunkerWeb の設定は、いわゆる「設定」または「変数」を使用して行います。各設定は、AUTO_LETS_ENCRYPT や USE_ANTIBOT などの名前で識別されます。設定に値を割り当てて BunkerWeb を構成します。
以下は、BunkerWeb 設定のダミー例です:```conf SERVER_NAME=www.example.com AUTO_LETS_ENCRYPT=yes USE_ANTIBOT=captcha REFERRER_POLICY=no-referrer USE_MODSECURITY=no USE_GZIP=yes USE_BROTLI=no
## マルチサイトモード
マルチサイトモードは、BunkerWebを使用する際に理解すべき重要な概念です。Webアプリケーションを保護することが目的であるため、「バーチャルホスト」または「vhost」(詳細は[こちら](https://en.wikipedia.org/wiki/Virtual_hosting))の概念を本質的に継承しており、単一の(またはクラスターの)インスタンスから複数のWebアプリケーションを提供することが可能になります。
デフォルトでは、BunkerWebのマルチサイトモードは無効になっており、1つのWebアプリケーションのみが提供され、すべての設定がそのアプリケーションに適用されます。典型的なユースケースは、保護するアプリケーションが1つだけの場合です。マルチサイトについて心配する必要はなく、デフォルトの動作が適切なものになります。
マルチサイトモードが有効な場合、BunkerWebは複数のWebアプリケーションを提供し保護します。各Webアプリケーションは一意のサーバー名で識別され、独自の設定セットを持ちます。典型的なユースケースは、保護する複数のアプリケーションがあり、単一の(または統合に応じてクラスターの)BunkerWebインスタンスを使用したい場合です。
## カスタム設定
設定のみですべてのユースケースに対応することは不可能であるため([外部プラグイン](https://docs.bunkerweb.io/1.6.13/plugins/?utm_campaign=self&utm_source=github)を使用しても)、カスタム設定を使用して特定の課題を解決できます。
内部的には、BunkerWebは有名なNGINX Webサーバーを使用しているため、特定のニーズに合わせてその設定システムを活用できます。カスタムNGINX設定は、HTTPやサーバー(すべてのサーバーおよび/または特定のサーバーブロック)などのさまざまな[コンテキスト](https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/#contexts)に含めることができます。
BunkerWebのもう1つのコアコンポーネントは、ModSecurity Webアプリケーションファイアウォールです。カスタム設定を使用して、例えば一部の誤検知を修正したり、カスタムルールを追加したりすることもできます。
## データベース
<p align="center">
<img alt="データベースモデル" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/bunkerweb_db.svg" />
</p>
BunkerWebの現在の設定の状態はバックエンドデータベースに保存され、以下のデータが含まれます。
- すべてのサービスに対して定義された設定
- カスタム設定
- BunkerWebインスタンス
- ジョブ実行に関するメタデータ
- キャッシュされたファイル
サポートされているバックエンドデータベースは、SQLite、MariaDB、MySQL、PostgreSQLです。
## スケジューラー
すべてを自動的に連携させるために、スケジューラーと呼ばれる専用サービスが以下の役割を担当します。
- 設定とカスタム設定をデータベースに保存する
- さまざまなタスク(ジョブと呼ばれる)を実行する
- BunkerWebが理解できる設定を生成する
- 他のサービス(Web UIやautoconfなど)の中継役となる
言い換えれば、スケジューラーはBunkerWebの頭脳です。
# セットアップ
<!--## BunkerWeb Cloud
<p align="center">
<img alt="Dockerバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/bunkerweb-cloud.webp" />
</p>
BunkerWeb Cloudは、BunkerWebを始める最も簡単な方法です。手間のかからない完全管理型のBunkerWebサービスを提供します。BaaS(BunkerWeb-as-a-Service)のようなものです!
BunkerWeb Cloudベータ版の詳細は[こちら](https://www.bunkerweb.io/cloud?utm_campaign=self&utm_source=docs)で確認でき、[BunkerWebパネル](https://panel.bunkerweb.io/store/bunkerweb-cloud?utm_campaign=self&utm_source=docs)から無料で申し込むことができます。
-->
## Linux
<p align="center">
<img alt="Linuxバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-linux.svg" />
</p>
サポートされているLinuxディストリビューションの一覧:
- Debian 12 "Bookworm"
- Debian 13 "Trixie"
- Ubuntu 22.04 "Jammy"
- Ubuntu 24.04 "Noble"
- Ubuntu 26.04 "Resolute Raccoon"
- Fedora 43
- Fedora 44
- RHEL、CentOS、Rocky Linux、AlmaLinux 8、9、10
詳細については、ドキュメントの[Linuxセクション](https://docs.bunkerweb.io/1.5.10/integrations/?utm_campaign=self&utm_source=github#linux)を参照してください。
## Docker
<p align="center">
<img alt="Dockerバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-docker.svg" />
</p>
x64、x86、armv7、arm64プラットフォーム向けのすぐに使えるプレビルドイメージを[Docker Hub](https://hub.docker.com/u/bunkerity)で提供しています。
Docker統合の主要な概念は次のとおりです。
- BunkerWebを設定するための**環境変数**
- 設定を保存しジョブを実行する**スケジューラー**コンテナ
- クライアントにポートを公開し、アップストリームのWebサービスに接続するための**ネットワーク**
詳細については、ドキュメントの[Docker統合セクション](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#docker)を参照してください。
## Docker autoconf
<p align="center">
<img alt="Docker autoconfバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-autoconf.svg" />
</p>
環境変数を使用する欠点は、更新のたびにコンテナを再作成する必要があることであり、これはあまり便利ではありません。この問題に対処するために、**autoconf**と呼ばれる別のイメージを使用できます。これはDockerイベントをリッスンし、コンテナを再作成することなくBunkerWebをリアルタイムで自動的に再設定します。
BunkerWebコンテナに環境変数を定義する代わりに、Webアプリケーションのコンテナに**ラベル**を追加するだけで、**autoconf**が残りを「自動的に」処理します。
詳細については、ドキュメントの[Docker autoconfセクション](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#docker-autoconf)を参照してください。
## Kubernetes
<p align="center">
<img alt="Kubernetesバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-kubernetes.svg" />
</p>
autoconfは[Ingressコントローラー](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)として機能し、[Ingressリソース](https://kubernetes.io/docs/concepts/services-networking/ingress/)に従ってBunkerWebインスタンスを設定します。また、カスタム設定用の[ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/)などの他のKubernetesオブジェクトも監視します。
BunkerWebの公式[Helmチャート](https://helm.sh/)は、[bunkerity/bunkerweb-helmリポジトリ](https://github.com/bunkerity/bunkerweb-helm)で入手できます。
詳細については、ドキュメントの[Kubernetesセクション](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#kubernetes)を参照してください。
## Microsoft Azure
<p align="center">
<img alt="Azureバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-azure.webp" />
</p>
BunkerWebは[Azure Marketplace](https://azuremarketplace.microsoft.com/fr-fr/marketplace/apps/bunkerity.bunkerweb?tab=Overview)に掲載されており、ARMテンプレートは[miscフォルダー](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/misc/integrations/azure-arm-template.json)にあります。
詳細については、ドキュメントの[Microsoft Azureセクション](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#microsoft-azure)を参照してください。
## Swarm
<p align="center">
<img alt="Swarmバナー" src="https://raw.githubusercontent.com/bunkerity/bunkerweb/v1.6.13/docs/assets/img/integration-swarm.svg" />
</p>
BunkerWebインスタンスを自動的に設定するために、**autoconf**と呼ばれる特別なサービスがDocker Swarmイベント(サービスの作成や削除など)をリッスンし、ダウンタイムなしでリアルタイムに**BunkerWebインスタンス**を自動設定します。
[Docker autoconf統合](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#docker-autoconf)と同様に、Webサービスの設定は、特別な接頭辞**bunkerweb.**で始まるラベルを使用して定義されます。
詳細については、ドキュメントの[Swarmセクション](https://docs.bunkerweb.io/1.6.13/integrations/?utm_campaign=self&utm_source=github#swarm)を参照してください。
# クイックスタートガイド
選択した統合方法でBunkerWebをセットアップしたら、[クイックスタートガイド](https://docs.bunkerweb.io/1.6.13/quickstart-guide/?utm_campaign=self&utm_source=github)に従って、Webサービスを保護するためのインストールと最初の設定を行います。
# セキュリティチューニング
BunkerWebは、[機能](https://docs.bunkerweb.io/1.6.13/features/?utm_campaign=self&utm_source=github)で設定できる多くのセキュリティ機能を提供しています。設定のデフォルト値は最小限の「デフォルトでセキュア」を保証しますが、チューニングを強くお勧めします。そうすることで、希望するセキュリティレベルを確保できるだけでなく、誤検知に対処することもできます。
詳細については、ドキュメントの[セキュリティチューニングセクション](https://docs.bunkerweb.io/1.6.13/advanced/?utm_campaign=self&utm_source=github#security-tuning)を参照してください。
# 設定
原則として、マルチサイトモードが有効で、マルチサイトコンテキストの設定を特定のサーバーに適用する場合は、プライマリ(最初の)サーバー名を接頭辞として追加する必要があります。例:`www.example.com_USE_ANTIBOT=captcha` や `myapp.example.com_USE_GZIP=yes` など。
設定が「複数」と見なされる場合、同じ機能に対して複数の設定グループを持つことができ、接尾辞として数字を追加します。例:`REVERSE_PROXY_URL_1=/subdir`、`REVERSE_PROXY_HOST_1=http://myhost1`、`REVERSE_PROXY_URL_2=/anotherdir`、`REVERSE_PROXY_HOST_2=http://myhost2`、...など。
完全なリストについては、ドキュメントの[機能セクション](https://docs.bunkerweb.io/1.6.13/features/?utm_campaign=self&utm_source=github)を確認してください。
# Web UI
https://github.com/user-attachments/assets/a3ed56f8-c124-4ca9-b8b3-4be0913b3078
「Web UI」は、コマンドラインの代わりにユーザーフレンドリーなインターフェースを使用してBunkerWebインスタンスを管理するためのWebアプリケーションです。
Web UIが提供する機能の一覧は次のとおりです。
- ブロックされた攻撃の包括的なビューを取得
- BunkerWebインスタンスの起動、停止、再起動、リロード
- Webアプリケーションの設定の追加、編集、削除
- NGINXおよびModSecurityのカスタム設定の追加、編集、削除
- 外部プラグインのインストールとアンインストール
- キャッシュされたファイルの探索
- ジョブ実行の監視と必要に応じた再起動
- ログの表示とパターンの検索
詳細については、ドキュメントの[Web UIセクション](https://docs.bunkerweb.io/1.6.13/web-ui/?utm_campaign=self&utm_source=github)を参照してください。
# プラグイン
BunkerWebにはプラグインシステムが付属しており、新しい機能を簡単に追加できます。プラグインがインストールされると、プラグインによって定義された追加の設定を使用して管理できます。
以下は、私たちがメンテナンスしている「公式」プラグインの一覧です(詳細は[bunkerweb-plugins](https://github.com/bunkerity/bunkerweb-plugins/?utm_campaign=self&utm_source=github)リポジトリを参照)。
| 名前 | バージョン | 説明 | リンク |
| :------------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------: |
| **ClamAV** | 1.9 | アップロードされたファイルをClamAVアンチウイルスエンジンで自動スキャンし、ファイルが悪意があると検出された場合にリクエストを拒否します。 | [bunkerweb-plugins/clamav](https://github.com/bunkerity/bunkerweb-plugins/tree/main/clamav) |
| **Coraza** | 1.9 | Coraza WAF(ModSecurityの代替)を使用してリクエストを検査します。 | [bunkerweb-plugins/coraza](https://github.com/bunkerity/bunkerweb-plugins/tree/main/coraza) |
| **Discord** | 1.9 | Webhookを使用してセキュリティ通知をDiscordチャンネルに送信します。 | [bunkerweb-plugins/discord](https://github.com/bunkerity/bunkerweb-plugins/tree/main/discord) |
| **Slack** | 1.9 | Webhookを使用してセキュリティ通知をSlackチャンネルに送信します。 | [bunkerweb-plugins/slack](https://github.com/bunkerity/bunkerweb-plugins/tree/main/slack) |
| **VirusTotal** | 1.9 | VirusTotal APIを使用してアップロードされたファイルを自動スキャンし、ファイルが悪意があると検出された場合にリクエストを拒否します。 | [bunkerweb-plugins/virustotal](https://github.com/bunkerity/bunkerweb-plugins/tree/main/virustotal) |
| **WebHook** | 1.9 | Webhookを使用してカスタムHTTPエンドポイントにセキュリティ通知を送信します。 | [bunkerweb-plugins/webhook](https://github.com/bunkerity/bunkerweb-plugins/tree/main/webhook) |
詳細については、ドキュメントの[プラグインセクション](https://docs.bunkerweb.io/1.6.13/plugins/?utm_campaign=self&utm_source=github)を参照してください。
# 言語サポートとローカライゼーション
BunkerWeb UIは複数の言語をサポートしています。翻訳は`src/ui/app/static/locales`ディレクトリで管理されています。現在利用可能な言語は次のとおりです。
- アラビア語 (ar)
- ベンガル語 (bn)
- ブラジルポルトガル語 (br)
- ドイツ語 (de)
- 英語 (en)
- スペイン語 (es)
- フランス語 (fr)
- ヒンディー語 (hi)
- イタリア語 (it)
- 韓国語 (ko)
- ポーランド語 (pl)
- ポルトガル語 (pt)
- ロシア語 (ru)
- トルコ語 (tr)
- 繁体字中国語 (tw)
- ウルドゥー語 (ur)
- 簡体字中国語 (zh)
翻訳の出典とレビューステータスの詳細については、[locales/README.md](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/src/ui/app/static/locales/README.md)を参照してください。
## 翻訳への貢献
新しいロケールファイルの改善や追加への貢献を歓迎します。
**翻訳を提供する方法:**
1. `src/ui/app/lang_config.py`ファイルを編集して、言語(コード、名前、フラグ、英語名)を追加します。
2. `en.json`をテンプレートとして`src/ui/app/static/locales/`にコピーし、言語コードに合わせて名前を変更します(例:ドイツ語の場合は`de.json`)。
3. 新しいファイルの値を翻訳します。
4. `locales/README.md`の表を更新して、言語を追加し、作成者/レビュー担当者を示します。
5. プルリクエストを送信します。
更新の場合は、関連するファイルを編集し、必要に応じて出典表を更新します。
完全なガイドラインについては、[locales/README.md](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/src/ui/app/static/locales/README.md)を参照してください。
# サポート
## プロフェッショナル
BunkerWebメンテナーから直接テクニカルサポートを受けることができます。詳細は、プロフェッショナルサービスの専用プラットフォームである[BunkerWebパネル](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github)をご覧ください。
ご質問がある場合は、お気軽に[お問い合わせ](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=github)ください。喜んでご要望にお応えいたします。
## コミュニティ
無料のコミュニティサポートを受けるには、以下のメディアをご利用ください。
- Discordサーバー内のBunkerWebの#helpチャンネル ([Discordサーバー](https://discord.com/invite/fTf46FmtyD))
- [GitHubディスカッション](https://github.com/bunkerity/bunkerweb/discussions)のヘルプカテゴリ
- [/r/BunkerWeb](https://www.reddit.com/r/BunkerWeb) subreddit
- [Server Fault](https://serverfault.com/) および [Super User](https://superuser.com/) フォーラム
ヘルプを求めるために[GitHub issues](https://github.com/bunkerity/bunkerweb/issues)を使用しないでください。バグレポートや機能リクエストにのみ使用してください。
# ライセンス
このプロジェクトは、[GNU Affero General Public License (AGPL) version 3](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/LICENSE.md)の条件の下でライセンスされています。
# 貢献
プラグインに貢献したい場合は、[貢献ガイドライン](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/CONTRIBUTING.md)をお読みいただき、始めてください。
# セキュリティポリシー
セキュリティバグは重大な問題として扱い、責任ある開示を奨励しています。詳細については、[セキュリティポリシー](https://github.com/bunkerity/bunkerweb/raw/v1.6.13/SECURITY.md)を参照してください。
# スター履歴
<a href="https://star-history.com/#bunkerity/bunkerweb&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=bunkerity/bunkerweb&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=bunkerity/bunkerweb&type=Date" />
<img alt="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
</picture>
</a>