SafeLine
SafeLine は、セルフホスト型のオープンソース Web アプリケーションファイアウォールであり、SQL インジェクション、XSS、コマンドインジェクションなどの攻撃を効果的に防御し、アンチクローラーやレートリミットなどの機能も備えています。
スマートダウンロード
プロジェクトのホームページへ
インストーラはまだありません — ソースリポジトリをご覧ください
セルフホスト型 WAF。ハッカーやクローラーを防御し、高い検出精度と低い誤検知率を実現します。
主な機能
- 一般的な Web 攻撃(SQLインジェクション、XSS、コマンドインジェクションなど)からの防御
- IP ベースのレート制限により、ブルートフォース攻撃と DDoS を防止
- アンチボット検証(人間と機械の識別)
- パスワード認証チャレンジ(アクセス時にパスワードの入力が必要)
- HTML と JavaScript の動的暗号化により、改ざんと盗用を防止
できないこと
- •中国本土のユーザーは中国語版をインストールしてください(ドキュメント内に別途リンクがあります)。そうでない場合、国際版ではクラウドサービスに接続できない可能性があります。また、初回デプロイ後は必ずデフォルトの管理者パスワードを変更してください。
使用例
- 中小規模のWebサイトやAPIサービスに低コストのセキュリティ対策が必要な場合
- セルフホストが必要で、データが国外に出ないコンプライアンスシナリオ
- WordPress、Discuzなどの一般的なCMSの既知の脆弱性を防御
- 高トラフィックのWebサイトで不正投票防止やクローラー対策が必要な場合
詳細説明
SafeLine は、セルフホスト型のオープンソース Web アプリケーションファイアウォール(WAF)であり、お客様の Web アプリケーションをさまざまな攻撃から保護することを目的としています。リバースプロキシとして動作し、HTTP トラフィックをフィルタリング・監視して、悪意のあるリクエストがサーバーに到達する前にブロックします。主な機能として、SQL インジェクション、XSS、コードインジェクション、コマンドインジェクション、パストラバーサル、CSRF、SSRF などの攻撃への防御、ブルートフォース攻撃や DoS 攻撃を防ぐレート制限、人間とボットを区別するアンチクローラーチャレンジ、機密ページを保護するパスワード認証チャレンジ、そして改ざんを防ぐための HTML および JavaScript コードの動的暗号化が含まれます。世界で 18 万回以上インストールされ、100 万以上の Web サイトを保護し、1 日あたり 300 億件以上の HTTP リクエストを処理しています。SafeLine の検出精度は最大 99.45% に達し、誤検出率はわずか 0.07% で、ModSecurity や CloudFlare 無料版の性能を大きく上回っています。
トラブルシューティング & FAQ (2)
トラブル対応SafeLine が SSL 証明書を自動更新した後に 'SSLPeerUnverifiedException: Certificate pinning failure' が発生するのはなぜですか?
根本原因: v9.4.3 より前のバージョンでは、SafeLine は ACME 証明書の発行/更新のたびに新しい秘密鍵を生成していました。これにより証明書の SPKI 公開鍵ハッシュが変化し、公開鍵ハッシュをピン留めする SSL ピニングを使用しているアプリ(例: Android OkHttp の CertificatePinner)が動作しなくなります。ブラウザや curl はピニングを行わないため、サーバー側のテストは正常に通る一方、ピニングを使用しているすべてのアプリクライアントが失敗します。しかも失敗は TLS ハンドシェイク中に発生するため、SafeLine やバックエンドのアクセスログにはリクエストが一切記録されません。
修正方法: SafeLine を v9.4.3 以降にアップグレードしてください。このバージョンでは、証明書の更新時に既存の秘密鍵を再利用する機能(certbot の --reuse-key と同等)がサポートされており、更新をまたいでも公開鍵ハッシュが安定して保たれます。この機能は公式リリースで利用可能であることが確認されています。
回避策(v9.4.3 より前のバージョン): SafeLine の自動 ACME 発行を使用する代わりに、秘密鍵を外部で管理し、証明書を手動でアップロードしてください。独自に固定した秘密鍵に対して証明書を生成/取得し(例: certbot の --reuse-key や acme.sh を使用)、その両方を SafeLine のサイト設定にアップロードすれば、更新時に鍵がローテーションされることはありません。
トラブル対応Custom HTML の 'Application Offline' ページにある 'Reset to default' ボタンが機能しないのはなぜですか?
これは確認済みのバグです: Custom HTML → Application Offline 設定ページで 'Reset to default' をクリックすると、JavaScript のコンソールエラーが発生して何も実行されませんが、他のページは正常に動作します。このバグは最新リリースで修正されています。解決するには、お使いのインストール環境を最新バージョンに更新してください。更新できるようになるまでは、リセットボタンの使用を避け、代わりにカスタム HTML コンテンツを手動でクリアまたは編集してください。
タグ
はじめ方
ソフトウェアをインストール
ダウンロードしたインストーラをダブルクリックし、指示に従ってください
ステップ1:公式ドキュメントにアクセスし、システムに応じてインストール方法を選択(Docker ワンクリックデプロイを推奨)
ステップ2:インストールコマンドを実行した後、管理コンソールにアクセス(デフォルトポート 9443)
ステップ3:コンソールで保護が必要な Web アプリケーションを追加(ドメイン名または IP とポートを入力)
- ステップ1:公式ドキュメントにアクセスし、システムに応じてインストール方法を選択(Docker ワンクリックデプロイを推奨)
- ステップ2:インストールコマンドを実行した後、管理コンソールにアクセス(デフォルトポート 9443)
- ステップ3:コンソールで保護が必要な Web アプリケーションを追加(ドメイン名または IP とポートを入力)
チェックサムがありません
このプロジェクトは GitHub Release ページに SHA-256 チェックサムを公開していません
SHA256 チェックサム
チェックサムなし
GitHub Releases から直接ダウンロードし、ファイルの整合性をご自身で確認してください
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
SafeLine コンテナを停止し、データボリュームを削除します:`docker compose down -v`(注意:これによりすべての設定とログが消去されます。事前にバックアップしてください)。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。
問題が発生?以下のFAQを確認
2 FAQs