SSH のセキュリティ強化
SSH セキュリティは、ホストのログイン記録、失敗回数、地域、CIDR ルールに基づいてブロックリストを管理します。保護対象はホストの SSH エントリーポイントであり、fn-knock の HTTP 認証ではありません。また、SSH 鍵の使用、脆弱なパスワードの無効化、システム更新に代わるものでもありません。
この機能では、ホストの SSH ログを読み取り、ファイアウォールを管理する必要があります。現在、すべての機能を利用できるのは FNOS ネイティブ FPK だけです。OpenWrt ではランタイムによって明示的に無効化されており、Docker、汎用 Linux、Synology DSM 7 SPK、Windows x86_64 でもすべての機能は利用できません。ページに「現在の環境では利用できません」と表示される場合は、ホストまたは上位のファイアウォールで SSH 保護を設定してください。
有効にする前に、現在の管理経路がブロックされた場合に備えて、利用可能なローカルコンソールまたは信頼済みネットワークからの代替経路を確保してください。
機能スイッチとページへの入口
システム設定 → 機能でSSH セキュリティメニューを有効にします。SSH セキュリティを開き、概要に表示される利用可否、検出された SSH ポート、許可 CIDR 数、現在のブロック数を確認します。SSH セキュリティ設定を展開してルールを保存します。保存に成功すると直ちに適用されます。SSH ポートまたはホストファイアウォールの状態が変わった場合は、ファイアウォールを同期でルールを再構築します。
機能メニューのスイッチは、ページとバックエンド機能を有効にするかを制御します。設定カードの SSH セキュリティを有効化 は、ログ、地域、しきい値に基づく保護を実行するかを決定します。設定を保存すると、許可 CIDR と現在のブロックが検出済みの SSH ポートへ直ちに反映されます。ファイアウォールを同期 は、ポート、ルールチェーン、その他のファイアウォール状態が変わった後の再適用に使用します。
設定項目
| 項目 | デフォルト値と範囲 | 役割 |
|---|---|---|
| SSH セキュリティを有効化 | デフォルトは無効 | SSH ログインログを監視し、しきい値または送信元の範囲に基づいてブロックを管理 |
| 集計期間 | デフォルト 10 分、1~1440 分 | 同じ送信元による期間内の失敗回数を集計 |
| 失敗しきい値 | デフォルト 5 回、1~1000 回 | しきい値に達するとブロックリストへ追加 |
| ブロック期間 | デフォルト 1 日、数値は 1~365 | 単位は分、時間、日から選択でき、期限後に自動解除 |
| SSH アクセスを許可する地域 | デフォルトは空 | 空の場合は地域を制限せず、指定した場合は選択地域、カスタム CIDR、組み込みのローカル送信元だけを許可 |
| カスタム CIDR | デフォルトは空、1 行に 1 件 | 標準外 VPN、オフィスのグローバル IP、その他の固定 IPv4 / IPv6 ネットワークを追加 |
地域は省、市、通信事業者単位で選択できます。China Telecom、China Unicom、China Mobile ごとに CIDR を絞り込むには、CIDR アドレスデータベース 0.1.3 以降が必要です。地域一覧を読み込めない場合は、未確認の制限範囲を送信せず、先に固定 CIDR だけを使用してください。
組み込みのローカル送信元には、loopback、RFC 1918 プライベートネットワーク、IPv4 リンクローカル、Tailscale の 100.64.0.0/10、IPv6 ULA/リンクローカルが含まれます。これらには地域制限と失敗回数によるブロックが適用されないため、Tailscale アクセスは引き続き Tailnet ACL で制御してください。Headscale、WireGuard、ZeroTier などが別のアドレスプールを使用する場合は、実際の送信元ネットワークをカスタム CIDR に追加します。
カスタム CIDR はページ上で検証され、形式に誤りがある場合は保存できません。地域制限を追加する前に、現在の信頼済みアクセス元と予備の管理ネットワークをカスタム CIDR へ追加してください。
ファイアウォールの同期とクリア
ファイアウォールを同期 を実行すると、SSH ポートを再検出し、現在の許可 CIDR と有効なブロックを fn-knock 管理下のファイアウォールルールへ書き込みます。成功メッセージには次の情報が表示されます。
- 反映された許可 CIDR 数
- 再同期された有効なブロック数
- 検出され、ルールが適用された SSH ポート
SSH サービスのポートを変更した場合、システムのファイアウォールを再読み込みした場合、またはルールの状態がページと一致しない場合は、もう一度同期してください。
SSH ファイアウォールをクリア は FN-KNOCK-SSH ルールチェーンを削除し、現在有効なブロックを解除済みにします。保存済みの地域、CIDR、しきい値、期間の設定は削除されません。後で再び同期すると、保存済みの設定に基づいてルールが再作成されます。
ログインログ
ログインログ タブでは IP、ユーザー、元のログを検索でき、すべて、成功、失敗で絞り込めます。各記録には次の情報が含まれます。
- 時刻とログイン結果
- ユーザー名、および失敗時の無効なユーザーを示す印
- 送信元 IP と地域
- 認証方式と SSH ポート
- 検索とトラブルシューティングに使用する元のログ情報
ページに長期間記録が表示されない場合は、まずデプロイプラットフォームがこの機能をサポートしているか、SSH サービスがシステムログへ記録しているかを確認し、fn-knock サービスにログの読み取り権限があるか調べます。
ブロックリスト
ブロックリスト には、送信元 IP、地域、ブロック日時、有効期限、理由、失敗回数、その時点のしきい値が表示されます。ブロック理由は次のいずれかです。
- 送信元が許可地域またはカスタム CIDR に含まれていない
- 集計期間内のログイン失敗回数がしきい値に達した
ページでは検索、ページ分割、個別のブロック解除、一括解除ができます。解除すると、その IP がこの機能で管理するファイアウォールルールから削除されます。同じ送信元がその後再びルールに違反すると、再度ブロックされます。
推奨設定手順
- 地域制限を空のままにし、余裕のある失敗しきい値とブロック期間だけを設定します。
- 保存後、信頼済みネットワークとテスト用ネットワークの両方から SSH ログインを検証します。
- ログインログで、ユーザー、送信元 IP、認証方式、ポートが正しく認識されているか確認します。
- 固定 VPN、オフィスのインターネット出口、予備ネットワークをカスタム CIDR へ追加します。
- その後で地域制限を追加して保存し、許可された送信元と許可されていない送信元からそれぞれ 1 回検証します。
- ブロック、期限による解除、手動解除、再度のブロックがすべて想定どおりか確認します。
地域と CIDR は判断を補助するものにすぎません。モバイルネットワーク、企業のインターネット出口、VPN の地域情報は変わる可能性があります。管理用エントリーポイントには、SSH 鍵、パスワードログインの無効化、必要最小限の許可 CIDR、独立した VPN 経路、上位ファイアウォールでの制限の方が確実です。
よくある質問
保存後のルール状態がページと一致しない
ファイアウォールを同期 を実行し、成功メッセージに表示された SSH ポートを確認してください。ホスト上の別のファイアウォール管理ツールがルールを上書きしている場合は、そのツールの再読み込み後にもう一度同期します。
管理用のアクセス元を誤ってブロックした
まずローカルコンソールからシステムへ入り、ブロックリストで該当 IP のブロックを解除します。ページを開けない場合は、FN-KNOCK-SSH ルールチェーンを削除するか、この機能を無効にします。その後、信頼済み CIDR を追加してから再同期してください。
地域が実際の場所と一致しない
IP ジオロケーションと CIDR アドレスデータベースのバージョンを確認してください。プロキシ、VPN、CGNAT、通信事業者によるアドレス割り当ての変更によって、送信元の地域情報が実際の場所と異なる場合があります。
