カテゴリー
Network

Sophos XG Firewall+フレッツ網で家庭内からのIPv6 Reachabilityを確保する

普通のご家庭内でもIPv6アドレスをPCやスマホまで振らせておくと良いことが多い時代になってきました。Google系のサービス、YouTubeとかは大抵IPv6経由の方が快適にアクセス出来ますし。

IPv6アドレスをクライアント上で全て手動で構成するなんてのは普通じゃないので、だいたいのパターンは以下のどれかに当たると思います。

  • NTTからレンタルされるHGW直下でDHCPv6で受け取る
    一人暮らし+スマホがない+PCを有線接続するなら……
    NTTレンタル無線LANは遅くて高いから普通使わないだろ
  • IPv6ブリッジ機能を使う
    一昔前の家庭用ルーターで良く実装されてましたね。
    ファイアウォールは端末側で頑張れ。(HGWの簡易FWを除けばInternetと直結状態)
  • ND Proxy機能を使う
    最近の家庭用ルーターでは普通かな。
    簡易的ですがInbound通信のみOKっていうフィルタリングは出来ますね。
  • DHCPv6-Relayする
    あんまりこのパターンは見たことがない。やってることはIPv6ブリッジと同じですからね。
  • DHCPv6-PD (Prefix Delegation)する
    良く誤家庭ルータ=業務用ルータを使っている人たちが設定例を出してますね。ルーターがIPv6アドレスレンジ/64を管理して、RA+DHCPv6でLAN側に配るやつです。
  • DHCPv6 Serverを立てて管理する+WAN側にSoruce NATで出す
    Sophos XG Firewallはこの考え方です。

なお、現状のSophos XG FirewallではRA + DHCPv6の構成しかセットアップできないため、Android端末に対してはIPv6アドレスの配布しか出来ません。
※RDNSSによるIPv6 DNSサーバアドレスの通知が出来ない→DHCPを併用してIPv4 DNSサーバアドレスを通知することで実用上は無視できる

フレッツ網で割り当てられているIPv6プレフィックスを確認する

NTTから貸与されているHGW管理画面上でDHCPv6クライアント取得情報から自分の回線に割り当てられているIPv6プレフィックスが確認出来ます。

XG FirewallのPort 2にIPv6アドレスを付与する

始めは簡単のため、Port 2のIPv6設定でDHCP指定すると良いです。
そうするとIPv6アドレスとゲートウェイIPを拾ってきてくれます。
(画面は一度DHCPv6で拾ってきたIPアドレスを手動で入れています)

XG FirewallのPort 1にIPv6アドレスを付与する

HGWで確認したプレフィックスはひかり電話契約ありの場合は/56なのでLANに配布する/64との間の 8 octet分 (16進数表記だと2文字分) は自由に決めることが出来ます。うちではLAN側の第3オクテットと揃えて、IPv6アドレスをPort 1に付与しています。
このPort 1に付与したIPv6アドレスが、RAでデフォルトゲートウェイとして広告されます。

IPv6ルーターアドバタイズの指定をする

Port 1に指定したIPv6プレフィックス/64をLAN側に実際に広告していきます。

Mフラグは、DHCPv6でIPアドレスを管理する場合に立てておきます

Oフラグは、DHCPv6でDNSサーバーを配布するときに利用します。(Windows 10だとOフラグがあればIPv6 DNSサーバを受け取れます、AndroidはM/Oフラグを華麗に無視するけど)

DHCPv6の配布設定をする

ルールとポリシーでIPv6通信の許可をする

この辺はIPv4での設定の考え方と同じです。
LAN→WANの通信を全て許可、みたいな設定をします。

NATルールでSource NATを指定する

WAN側へ出て行くときにXG Firewallが持っているインターフェースIPv6アドレスにSource NATする設定を入れます。

IPv6ブリッジやND Proxy機能、DHCPv6-PD等に慣れていると、何でクライアントのIPv6アドレスのまま出していかないんだ?って不思議になるかもしれません。ただ、逆にIPv4な世界だとプライベートIPアドレスをWAN側グローバルIPアドレスにSource NATしていたのと同じことをIPv6でもやっているんだ、と考えてもらったほうが良いです。

実際にアクセス確認する

http://test-ipv6.com/ 等にアクセスしてIPv4/IPv6ともに通信出来ていることを確認します。このとき見えてくるアドレスは共にXG FirewallのWAN側ポートに持っているインターフェースIPアドレスになっていると思います。

カテゴリー
Network

Sophos XGのファイアウォール設定の考え方

上記のブログ記事の続きです。

XG Firewallにおけるゾーンの考え方

デフォルト状態ではXG Firewallには4つのゾーンが存在します。

各ゾーンには典型的に名前の通りの用途が想定されており、ゾーン内の端末からXG Firewallに対する通信は用途に合わせて制限されています。

例えば、WAN側からは基本的にSSL-VPNサービスへのアクセスのみ許可されており、Pingへの応答や管理用のWeb UIへのアクセスは許可されていません。

ファイアウォールルールの定義

ファイアウォールは前提として必要な通信は明示的に列挙する=列挙されていないものは許可しない (暗黙のDeny) が大前提です。
ルーターのような「とりあえずルーティングテーブルに載っていたらパケット転送しよう」「よく分からないやつはデフォルトルートに乗せてしまえ」とはちがいます。

ゾーンはXG Firewallからみた時の領域の割り振りみたいなものなので、現実で細かく設定するときはホストやグループを定義してそれらをルールで束ねるような形になると思います。

設定例) WANゾーンのIPホスト”LogonBox VM”から、LANゾーンのIPサブネット”WIREDNETネットワーク”に対する接続を許可する

NATルール

NATルールは通信パターンが合致したものに対してパケット先頭の送信先IPアドレスや送信元IPアドレス、ポート番号などを書き換える動作を指します。

よく使うのはInternetに対して、プライベートIPv4アドレス発のパケットをグローバルIPv4アドレスを送信元とするようにSource NATするとかでしょう。

ルーターやL3スイッチとかでACLでフィルタリストを頑張って定義してマッチしたものをSource NATすると言うよりは、セッションまで見ているファイアウォールなので分かりやすく設定出来ます。

ファイアウォールで通過させる通信の定義と、NATしたい通信の定義は往々にして同一なことが多いので、XG FirewallではファイアウォールとNATルールをリンクさせて管理することが出来ます。

複雑なことをやろうとすると下図のようなことも出来ます。おすすめはしませんが。

カテゴリー
Network

Sophos XG Firewallの初期セットアップ

上記のブログ記事の続きです。

ネットワーク > インターフェース

Port1に対してはインストール中にIPv4アドレスレンジを設定していたので、そのままで良ければ変更する必要はありません。

Port2 (WAN) 側はDHCPでIPv4アドレスを取得していると思います。
PPPoEを使う場合はここでインターフェース上に接続用ユーザ、パスワードを入れていきます。

ネットワーク > DNS

DNSアドレスはWAN側のPPPoE/DHCPで受け取ったものをそのまま使うことも、手動で指定することも出来ます。自分の場合はプロバイダーから割り当てられるDNSサーバが貧弱だったので手動でNTTフレッツ網内のDNSサーバ or Cloudflare DNSを利用するように指定しました。

ネットワーク > DHCP

LAN側に対してDHCPv4サービスの設定をしていきます。

LAN内でアドレスを固定したい場合は、DHCPv4アドレスプールの外側でMACアドレスとIPv4アドレスをマッピングしていきます。

ネットワーク > IPトンネル (DS-Lite/Transix)

DS-Lite (Transix)のIPv4 over IPv6トンネルを使って高速にインターネットを繋ぎたい時は、XG FirewallではIPトンネルを設定します。

ここでリモートエンドポイントは gw.transix.jp のIPアドレスを実際にIPv6アドレスに解決したものを値として指定する必要があります。

また、ローカルエンドポイントは素直にやろうとすると、HGWからDHCPv6で割り振られたIPv6アドレスを指定すると思いますが、フレッツの半固定IPv6アドレスの場合はXG Firewallで別名アドレス(セカンダリアドレス)を直接手動で設定してしまった方が良いです。

XG Firewallを再起動したりした時にDHCPv6で振ってくるIPアドレスが変わってくる→IPトンネルが確立しなくなることが多々あるので。(プロバイダーでも乗りかえない限りプレフィックスは変わらないので手動で振ってしまって良い)

Port2:1としてスタティックにIPv6アドレスを設定した

ネットワーク > ルーティング

Port2 (WAN) 側でDHCPv4でIPv4アドレスを受け取っているとき、もしくはPPPoEでIPv4アドレスをもらっているときは、表示はされませんが自動的にIPv4ユニキャストルートとしてデフォルトルートが設定されています。

IPトンネルでDS-Lite/Transixを利用するときは、この画面上でデフォルトルートとして手動設定する必要があります。

上記の画面ではIPv6ユニキャストルートに::/0を明示的に指定していますが、これはDS-Lite/Transix向けにローカルエンドポイントIPv6アドレスを固定するために手動でIPv6アドレスを指定したときの名残です。

ルールとポリシー > ファイアウォールルール

ここまで来たらもう一息です。

Traffic to WANルールとして以下のような設定を入れていきます。

リンクNATルールは指定しなければ、デフォルトのDefault SNAT IPv4ルールにマッチして自動的にPort 2 (WAN)側のインターフェースIPアドレスに化かされて(Source NATされて)外に出て行きます。

ここまでやればとりあえずIPv4なインターネットの世界には到達可能になったはずです。お疲れさまでした。