管理画面へ入れなくなったとき、先に再インストールへ進まないでください。SafeLineは、Webアプリケーションとインターネットのあいだに置く自己ホスト型のWAFです。HTTP通信をフィルタして監視し、SQLインジェクション、XSS、コードインジェクション、OSコマンドインジェクション、CRLFインジェクション、XXE、SSRF、パストラバーサル、バックドア、ブルートフォース、HTTPフラッドといった攻撃を遮断します。ドキュメントの説明どおり、WAFはリバースプロキシとして動作し、クライアントは保護対象のサーバへ届く前にSafeLineを通過します。
導入はDockerとDocker Composeで行います。管理コンソールは既定でポート9443を待ち受け、画面のアドレスは https://:9443 です。パスワードを失った場合も、導入直後に初期の資格情報が必要な場合も、再インストールなしで管理者アカウントを用意できます。管理コンソールを提供するコンテナ名は safeline-mgt です。公式の導入手順には、管理者アカウントを作成する専用コマンドがあります。
検索語 how to reset the waf admin account inside docker で調べる人は、まずコンテナの対話シェルへ入る必要がある、と考えがちです。切り分けの起点はそこではありません。操作者が打つ場所はSafeLineホストの端末で、リセットツールそのものは docker exec によって safeline-mgt の内側で動きます。ホスト上で resetadmin だけを探したり、別コンテナのシェルで同じ名前を実行したりする必要はありません。
実行前のチェックリスト
- ホストでDockerが使え、対象の管理コンテナが safeline-mgt である
- コマンドはコンテナ内の対話シェルではなく、ホストから実行する
- .env の MGT_PORT を読み、9443を決め打ちしない
- ブラウザでは http ではなく、ドキュメントどおり https で開く
- 表示された初期ユーザー名と初期パスワードを、画面を閉じる前に控える
- 直前のパスワードや、記憶している古いパスワードを再利用しない
このリストを先に埋めると、コマンド成功と画面到達失敗を混同しにくくなります。
番号つきの復旧手順
-
SafeLineホストの端末を開き、Dockerが使えることを確認します。リセットコマンドはホストから実行します。コンテナの中へシェルで入ってから探す手順ではありません。
-
次のコマンドを、表記どおり実行します。
docker exec safeline-mgt resetadmin
これは導入ガイドの Get Administrator Account に示された、管理者アカウントを得る公式の方法です。
-
出力を最後まで読みます。成功すると、初期ユーザー名 admin と、生成された初期パスワードが表示され、続けて Done と出ます。ユーザー名とパスワードの両方を、その場で安全な場所へ控えます。表示を流したまま次へ進まないでください。
-
ブラウザで管理コンソールを開きます。既定のアドレスは次のとおりです。
https://<safeline-ip>:9443/
はSafeLineサーバのIPアドレスに置き換えます。導入時に .env の MGT_PORT を変更している場合は、9443ではなく、そのカスタムポートを使います。
- ユーザー名 admin と、手順3で印字された初期パスワードを入力してログインします。ここで管理を再開できます。導入ガイドは、この操作を管理者アカウントを得る手順として載せており、新規導入の直後にも同じ流れを使えます。印字されたパスワードは控え、コンソールへ入れなくなったときだけリセットを再実行します。
具体的な設定ミス
現場で混同しやすい設定ミスは、MGT_PORT を9443以外へ変えたのに、リセット後も https://:9443 を開き続けることです。コマンドはホスト上で成功し、端末には admin、生成された初期パスワード、そして Done が出ます。それでもブラウザはコンソールへ届かず、ログイン画面が表示されません。この見え方を、パスワード拒否やアカウント作成失敗とまとめて扱うと、同じリセットを繰り返すだけで時間を失います。
対処は単純です。.env に書いた MGT_PORT の値を確認し、https://:<そのポート>/ を開きます。既定のままならポートは9443です。アドレスの形は https://:9443 であり、スキームやポートを記憶で補完しないことが、このミスを再発させない要点です。
もう一つの操作ミスは、ホストのシェルで resetadmin だけを実行することです。リセットツールはホストのコマンドではなく、safeline-mgt の内側で動かすものです。打つべき完全な形は docker exec safeline-mgt resetadmin です。対話シェルへ入ってから別の管理コマンドを探す必要は、公式手順にはありません。
修復を確認する画面と出力
修復の確認は二段階です。第一に、ホスト端末のコマンド出力が初期ユーザー名 admin、生成された初期パスワード、Done の順で終わっていることです。Done が出るまでを成功とみなし、途中の行だけを控えてブラウザへ移らないでください。第二に、正しいポートの管理画面で、その admin と初期パスワードが受け付けられ、コンソールへ入れることです。ログイン画面が表示され、資格情報の入力後に管理画面へ遷移すれば、アカウントの復旧は完了です。
導入ガイドは、リセットの前にSafeLineを止める必要を書いていません。通常のセットアップ手順として、コンソール資格情報を得る操作に位置づけられています。Webコンソールへ到達できない状態でも、リセットはDockerホスト上で実行できるため、ログイン不能そのものはこの手順の障害になりません。
うまくいかないときの切り分け
- Done は出たが画面が開かない。MGT_PORT と、ブラウザに入力したポートが一致しているかを見ます。一致していない場合、アカウントではなく待受ポートの指定が誤っています。
- 画面は開くがログインできない。ユーザー名は出力どおり admin か、パスワードは直前の初期パスワードかを照合します。古いパスワードは使いません。
- コマンドが見つからない。ホストで resetadmin 単体を打っていないか、コンテナ名を safeline-mgt 以外にしていないかを確認します。
- どの確認でも、再インストールは最終手段です。公式手順は、失った管理パスワードや導入直後の初期資格情報を、このリセットで取り戻せると示しています。
ドキュメントの入口は https://docs.waf.chaitin.com/en/home です。ポートと出力の二点をチェックリストに残してからログインすれば、同じロックアウトを短時間で切り分けられます。
- Demo: https://demo.waf.chaitin.com:9443/statistics
- Official docs: https://docs.waf.chaitin.com/en/home
- GitHub: https://github.com/chaitin/SafeLine