こんにちは!ネットワークやセキュリティの世界へようこそ。インフラエンジニアとして日夜奮闘している方も、これからインフラの仕組みを学びたい初学者の方も、日々の業務でお疲れ様です。
私たちが普段何気なく使っているインターネットや社内システム。その裏側では、セキュリティを守るための様々な仕組みが動いています。今回は、現代のセキュリティの合言葉となっている「ゼロトラスト」、そしてその主役である「ZTNA(ゼットナ)」の可用性(システムが止まらないこと)について、一緒に紐解いていきましょう!
難しい専門用語が出てきても、「なんだ、そういうことか!」とスッと理解できるようにお話ししていきますので、どうかリラックスして読み進めてくださいね。
—
1. 境界型防御の限界とZTNAの登場、そして新たな悩み
まずは少し昔話から始めましょう。従来の企業ネットワークは、いわば「頑丈な城壁に囲まれたお城」のようなものでした。
お城の外側(インターネット)は危険な敵がいっぱいだけど、一度城壁の内側(社内LAN)に入ってしまえば、中は安全なのでパスポート(ID/パスワード)なしでも自由に歩き回れる……。これが、これまで主流だった「境界型防御」という考え方です。
しかし、リモートワークが当たり前になり、クラウドサービスをフル活用する現在、社員はみんな「お城の外」にいます。「じゃあ、外から社内に入るための専用のトンネル(VPN)を作ろう!」となったのですが、ここで大きな問題が発生しました。VPNの入り口であるゲートウェイが破られたり、サイバー攻撃を受けたりすると、お城の中が丸裸になってしまうのです。
そこで登場したのが、「ゼロトラスト(何も信用するな、すべて検証せよ)」という思想です。そして、そのゼロトラストの考え方に基づいて、社内システムへのアクセスを安全にコントロールする仕組みが ZTNA(Zero Trust Network Access) です。
ZTNAでは、ユーザーが社内システムにアクセスする際、「あなたは本当にその人ですか?」「使っているパソコンは安全ですか?」と、毎回厳しくチェックを行います。この「チェックの関所」となるのが ZTNAゲートウェイ です。
ここで浮上する「新しい悩み」
すべての通信がこのZTNAゲートウェイを通るようになるということは、もしこのゲートウェイが突然壊れたり、メンテナンスで止まったりしたらどうなるでしょうか?
……そうです、会社全体の仕事が完全にストップしてしまいますよね。「セキュリティを高めた結果、システムが止まりやすくなりました」では、本末転倒です。
だからこそ、ZTNAゲートウェイには「絶対に止まらない仕組み(高可用性:HA)」が絶対に必要なのです。
—
2. 郵便配達に例える「高可用性(HA)」とステートフルフェイルオーバー
「高可用性(HA:High Availability)」と言われても、なんだか硬い言葉ですよね。身近な例えで考えてみましょう。
想像してみてください。あなたは大切な手紙を出すために、町の郵便局にやってきました。窓口にはベテランの郵便局員Aさんが座っています。Aさんはあなたの顔を覚えていて、いつもスムーズに手続きをしてくれます。
もし、このAさんが急にお腹を壊してトイレに行ってしまったら困りますよね? だから、隣の窓口には「スタンバイ(予備)」のBさんがいつでもスタンバイしています。Aさんが倒れた瞬間、Bさんがすかさず「代わります!」と引き継ぐ。これがアクティブ・スタンバイ構成です。
さらに重要な「ステートフルフェイルオーバー」の魔法
ここで一つ、意地悪な問題を考えてみましょう。
あなたは今まさに、窓口で「書留の手続き用紙の3枚目を記入している真っ最中」です。その瞬間にAさんが倒れ、Bさんに交代することになりました。
このとき、Bさんが「はじめまして!最初から用紙に書き直してください」と言ったらどうでしょう? 「さっきまで書いてたのに!」とイライラしてしまいますよね。
ネットワークの世界でも全く同じことが起きます。ユーザーがZTNAゲートウェイを経由して、クラウド上の大切なデータベースと「今まさに通信のやり取りをしている最中(セッションが確立している状態)」に、メインのゲートウェイが壊れたとします。
予備のゲートウェイに切り替わったとき、「今どんな通信が流れていたか(ステート)」の記憶が共有されていないと、ユーザーは強制的にログアウトさせられたり、通信がプツリと切れてしまいます。
この「今、誰とどんな会話をしているか」という記憶(ステート)をメイン機と予備機の間で常にリアルタイム共有し、万が一の故障時にも、ユーザーに「あれ? 今ちょっと切れた?」と思わせる間もなく通信を継続させる技術を、ステートフルフェイルオーバーと呼びます。
—
3. 実践!ZTNAゲートウェイの冗長化設計とパラメータの勘所
それでは、ここから一歩進んで、実際のインフラ現場でどのようにZTNAゲートウェイの冗長化(HA構成)を設計・設定するのか、具体的なイメージを見ていきましょう。
今回は、エンタープライズ分野でよく使われるLinuxベースの仮想アプライアンスや、オープンソースのロードバランサー・リバースプロキシ(例:NginxやKeepalived、HAProxyなど)をイメージした、擬似的な設定ファイルのサンプルを覗いてみます。
実際の現場では、2台のZTNAゲートウェイ(ここでは ztna-gw-01 と ztna-gw-02 と呼びます)を配置し、その手前に「仮想IPアドレス(VIP)」という共通の看板を立てます。ユーザーは常にそのVIP宛てにアクセスし、裏側でどちらのゲートウェイが動くかを制御します。
設定サンプル:Keepalivedを用いた死活監視とIP引き継ぎのイメージ
以下の設定は、メイン機が生きているかを常時監視し、もしメイン機が沈黙したら秒速で予備機にVIP(仮想IP)を引き継ぐための設定ファイルのイメージです。
# ==========================================
# ZTNAゲートウェイ 冗長化設定ファイル (Keepalived設定例)
# ==========================================
vrrp_instance ZTNA_HA_cluster {
# 状態の定義: MASTER(メイン機) または BACKUP(予備機)
state MASTER
# 仮想IPをバインドする実際のネットワークインターフェース名
interface eth0
# クラスタを識別するID番号(両方の機器で同じ番号を指定します)
virtual_router_id 51
# 優先度(数字が大きい方がえらい=メインになりやすい)
# メイン機には大きめの値を、予備機には少し小さい値を設定します
priority 101
# 状態確認のインターバル(秒): 何秒おきに生きているか確認するか
advert_int 1
# 認証設定(クラスター内の通信を守るためのパスワード)
authentication {
auth_type PASS
auth_pass SecureZtnaPassword123!
}
# ユーザーがアクセスする「仮想IPアドレス(VIP)」の定義
virtual_ipaddress {
192.168.10.100/24 # このIP宛ての通信をHAで守ります
}
}
設定のポイントと現場の泥臭い教訓
このような設定を行う際、現場のインフラエンジニアが特に頭を悩ませるポイントがいくつかあります。
1. スプリットブレイン(脳味噌分裂病)の恐怖
ネットワークのケーブルが抜けたり、一時的な負荷で「メイン機と予備機の間のおしゃべり(ハートビート)」が途切れた瞬間、両方の機器が「おっ、自分がメインにならないと!」と勘違いして、どちらも自分を MASTER だと思い込んでしまう現象です。これが起きると、同じIPアドレスがネットワーク上に2つ存在することになり、大混乱(パケットの行方不明)を引き起こします。これを防ぐために、複数の経路で死活監視を行うなどの工夫が必要です。
2. セッション同期のタイムラグ
先ほどお話しした「ステートフルフェイルオーバー」ですが、メイン機から予備機へ「今この人が通信しています」という記憶を同期するスピードが遅いと、切り替わった瞬間に通信が途切れてしまいます。そのため、冗長化を行う機器同士は、できるだけ遅延のない(レイテンシの低い)同じデータセンター内や、高速な専用回線で結ばれている必要があります。
—
4. まとめ:止まらないゼロトラストを目指して
いかがでしたでしょうか? 今回は、ZTNAの基本概念から、システムを絶対に止めないための高可用性(HA)構成、そしてステートフルフェイルオーバーの仕組みまでを、身近な例えを交えてお話ししてきました。
- ZTNA は、従来の「お城の壁」に頼らず、すべての通信を厳しくチェックする新しいセキュリティの要です。
- セキュリティの関所であるからこそ、ZTNAゲートウェイの停止=業務の停止直結します。
- だからこそ、アクティブ・スタンバイ構成による冗長化と、通信の記憶を引き継ぐステートフルフェイルオーバーが不可欠になります。
インフラやネットワークの世界は、一見すると難解な用語や黒い画面のコマンドの連続に見えますが、その本質は「いかに人々の営みを止めることなく、安全に荷物(データ)を届け続けるか」という、とても人間臭くて泥臭い工夫の積み重ねです。
今回の記事が、皆さんの日々の学習や、現場での設計・運用のちょっとしたヒントになればこれ幸いです。
それでは、また次回の技術コラムでお会いしましょう!一歩ずつ、確実にスキルアップしていきましょうね。
コメント