Home

YAMAHA FWX120の3ポート デュアルスタック ファイアウォール実装


フレッツ光ネクスト(IPv4 PPPoE/IPv6 PPPoE)環境でファイアウオールとして使っていた FortiGate 100A のファンが死にそうになってきたのと、個人で FortiGate の維持がつらいので、インターネット接続機器を YAMAHA RTX1200 + FortiGate 100A + NVR500 構成から、YAMAHA FWX120 の All in one 構成に変更してみました。

YAMAHA FWX120は、GbE対応のファイアウオール製品なので、今まで回線ボトルネックになっていた FortiGate 100A(100Mbps)の制限も外れるので、通信速度向上って狙いもあります。

FWX120 は SRT100 の後継機種で、RTXシリーズとかのルーター製品と違い、ポリシーフィルターで方向制御が出来るので、ルーターではなくファイアウオール製品の位置付けとなっています。

実は、SRT100 の開発にちょいとかかわっていたのですが、SRT100 を購入していなかったので、ポリシーフィルターは、FWX120 が初の実装だったりします ^^;

 

FWX120本来の使い方

FWX120 は「わかりやすいファイアウォール」がコンセプトなので、Web ブラウザから GUI 設定するのが本来の使い方のようです。

ポリシー実装画面(IPv4)

ポリシー実装画面(IPv6)

FWX120は、IPv4 PPPoE、IPv6 PPPoE、IPv6 IPoE、CATV のようにイーサネットでのインターネット接続と多様な回線品目に対応しているので、こいつ1台ですべてをまかなう事も出来ます。
ポリシー実装も GUI だと簡単に出来ますし、FWX120 は、面白い事にブリッジ動作も可能なので、現在のネットワーク環境に FWX120 を追加して、ネットワーク設定を変更せずにセキュリティ向上にも使えます。

基本製品仕様は lan1/lan2 の2ポートファイアウールなので、DMZ を持たない中規模~ SOHO 向けなのですが、lan1 をポート分割すると、WAN/DMZ/LAN の3ポートファイアウオールとしても機能します。

ただし、3ポートにすると、GUI 設定が出来ないので、全て CLI 設定をする事になります。
FWX120 は、末っ子レンジとはいえ YAMAHA のエンタープライズモデルなので、CLI で設定すれば、びっくりするくらい多機能な設定が出来ます。

 

RTX1200 と FWX120 の違い

ルーター製品と何が違うのかは、内部アーキテクチャーを見ると良くわかります。

RTX1200のアーキテクチャー
FWX120のアーキテクチャー

FWX120 には、RTX1200 には無い「入力遮断フィルター」と「ポリシーフィルター」が追加されており、「ポリシーフィルター」はルーティングコアに至って近いところに位置して方向制御を担当しますので、こいつを使ってセグメントポリシーを実装します。

一番外側に「入力遮断フィルター」があるので、こいつを使ってインバウンドのサイトポリシー実装に使います。

残念ながら、出力遮断フィルターが無いので、アウトバウンドのサイトポリシーは従来通のパケットフィルターで実装します。

 

ポリシー実装場所

ポリシーはこのあたりに実装します。

 

サイトポリシー

サイトポリシーは、サイトとして好ましくないリスクを伴う通信を遮断し、それ以外は通過させるポリシーです。

今回はこんな感じのサイトポリシーにしてみました

方向 送信元 宛先 サービス 通信可否 備考
インターネット → サイト any any SSH 遮断 リスクがある通信
telnet
SMB
NetBios
リモートデスクトップ
DBアクセス
syslog
SNMP
ループバック any any ルーティング不能
ローカルアドレス
自サイトのグローバルアドレス
予約アドレス
any ループバック any ルーティング不能
(通常は到達しえない)
ローカルアドレス
予約アドレス
条件外 条件外 条件外 許可  
サイト → インターネット any any SSH 遮断 リスクがある通信
telnet
SMB
NetBios
リモートデスクトップ
DBアクセス
syslog
SNMP
ループバック any any ルーティング不能
ローカルアドレス
予約アドレス
any ループバック any ルーティング不能
ローカルアドレス
自サイトのグローバルアドレス
予約アドレス
条件外 条件外 条件外 許可  

 

サイトポリシーの実装方法

「インターネット <-> サイト」のサイトポリシーは以下のように定義して、pp にセットします。

# IPv4 サイトポリシー定義(インバウンド)
ip inbound filter 1000 reject-log * * tcp * 22
ip inbound filter 1001 reject-log * * tcp 22 *
ip inbound filter 2000 pass-nolog * * * * *

# IPv4 サイトポリシー定義(アウトバウンド)
ip filter 1000 reject * * tcp * 22
ip filter 1001 reject * * tcp 22 *
ip filter 2000 pass * * * * *

# IPv4 サイトポリシー実装
pp select 1
 # IPv4 PPPoE 実装は省略
 ip pp secure filter out 1000 1001 2000
 ip pp inbound filter list 1000 1001 2000
pp enable 1

########

# IPv6 サイトポリシー定義(インバウンド)
ipv6 inbound filter 1000 reject-log * * tcp * 22
ipv6 inbound filter 1001 reject-log * * tcp 22 *
ipv6 inbound filter 2000 pass-nolog * * * * *

# IPv6 サイトポリシー定義(アウトバウンド)
ipv6 filter 1000 reject * * tcp * 22
ipv6 filter 1001 reject * * tcp 22 *
ipv6 filter 2000 pass * * * * *

# IPv6 サイトポリシー実装
pp select 2
 # IPv6 PPPoE 実装は省略
 ipv6 pp secure filter out 1000 1001 2000
 ipv6 pp inbound filter list 1000 1001 2000
pp enable 2

 

セグメントポリシー

セグメントポリシーは、各セグメント間のポリシー実装で、サイトポリシーとは逆で許可した通信のみを通して、それ以外を遮断します。
今回はこんな感じのポリシーにしてみました。

FWX120は、自分自身に対するポリシーと、内部通信許可ポリシーも明示的に書く必要があります。

ポリシーの方向 送信元 宛先 サービス 通信可否 備考
any any any ICMPv4、ICMPv6 許可  
インターネット → DMZ any any dns(udp・tcp)、http、https、ftp、smtp、pop3、imap4、Submission、ike、esp 許可 公開サービス
条件外 条件外 条件外 遮断  
DMZ → インターネット any any smtp 許可 公開サービス
any any dns(udp・tcp)、ntp、セキュリティアップデート 許可  
条件外 条件外 条件外 遮断  
LAN → DMZ ドメインコントローラー ドメインメンバー any 許可 スタティック
any any any 許可  
条件外 条件外 条件外 遮断  
DMZ → LAN ドメインメンバー ドメインコントローラー any 許可 スタティック
any any any 許可  
条件外 条件外 条件外 遮断  
LAN → インターネット any any any 許可  
条件外 条件外 条件外 遮断  
インターネット → LAN any any any 遮断  
DMZ → FWX120 any any telnet tftp http https 遮断  
any any any 許可  
条件外 条件外 条件外 遮断  
FWX120 → DMZ any any any 許可  
条件外 条件外 条件外 遮断  
LAN → FWX120 any any any 許可  
条件外 条件外 条件外 遮断  
FWX120 → LAN any any any 許可  
条件外 条件外 条件外 遮断  
WAN → FWX120 リンクローカル any any 許可 IPv6のみ
any any any 遮断  
FWX120 → WAN リンクローカル any any 許可 IPv6のみ
any any any 遮断  
FWX120 → FWX120 any any any 許可  
LAN → LAN any any any 許可  
DMZ → DMZ any any any 許可  
条件外 条件外 条件外 条件外 遮断  

 

セグメントポリシーの実装方法

FWX120 のポリシーフィルターは、インターフェイスグループ定義、アドレスグループ定義、プロトコル定義、サービスグループ定義をして、それらをひとまとめにしてポリシーとして実装します。

サービス定義は、FWX120 のニーモニックとして定義されていないプロトコルだけを定義します。

普通のファイアウオール製品と違うのは、FWX120 そのものアクセスや、FWX120 からの通信もすべてポリシーとして書かなくてはならない点です。YAMAHA らしい実装ですが、一般的なファイアウォール製品に慣れているとハマりやすい点でもあります。

# IPv4プロトコル定義
ip policy service 1000 DNS-udp udp * 53
ip policy service 1001 DNS-tcp tcp * 53

# IPv4インターフェイスグループ定義
ip policy interface group 1000 pp1

# IPv4アドレスグループ定義
ip policy address group 1000 name=DCs [ドメインコントローラーのIPv4アドレス]
ip policy address group 1010 name=Connect-DC [DMZ配置のドメインメンバーIPv4アドレス]

# IPv4プロトコル定義
ip policy service 1000 DNS-udp udp * 53
ip policy service 1001 DNS-tcp tcp * 53

########

# IPv6プロトコル定義
ipv6 policy service 1000 DNS-udp udp * 53
ipv6 policy service 1001 DNS-tcp tcp * 53

# IPv6インターフェイスグループ定義
ipv6 policy interface group 1000 pp2

# IPv6アドレスグループ定義
ipv6 policy address group 1000 name=DCs [ドメインコントローラーのIPv6アドレス]
ipv6 policy address group 1010 name=Connect-DC [DMZ配置のドメインメンバーIPv6アドレス]

# IPv6プロトコル定義
ipv6 policy service 1000 DNS-udp udp * 53
ipv6 policy service 1001 DNS-tcp tcp * 53

これらの定義が出来たら、ポリシーフィルターをセグメントポリシーとして定義します。

ICMPは全方向通過とするので、こんな感じになります。

ip policy filter 100 static-pass-nolog * * * * icmp
ipv6 policy filter 100 static-pass-nolog * * * * icmpv6

セグメントポリシーとして定義と実装はこんな感じです。プロトコルはサービスグループとしてまとめるとすっきりします。

# IPv4 WAN -> DMZ ポリシー
ip policy service group 10000 name=WANtoDMZ-1 DNS-tcp DNS-udp http https ftp smtp pop3 IMAP4 Submission ike
ip policy service group 10001 name=WANtoDMZ-2 IPsec-NAT esp
ip policy filter 1000 pass-nolog 1000 vlan2 * * 10000
ip policy filter 1001 pass-nolog 1000 vlan2 * * 10001
ip policy filter 1999 reject-log 1000 vlan2 * * *

ip policy filter 9999 reject-log * * * * *

# IPv4 ポリシー実装
ip policy filter set 1000 name=IPv4-Policy 100 1000 1001 1999 9999

########

# IPv6 WAN -> DMZ ポリシー
ipv6 policy service group 10000 name=WANtoDMZ-1 DNS-tcp DNS-udp http https ftp smtp pop3 IMAP4 Submission ike
ipv6 policy service group 10001 name=WANtoDMZ-2 IPsec-NAT esp
ipv6 policy filter 1000 pass-nolog 1000 vlan2 * * 10000
ipv6 policy filter 1001 pass-nolog 1000 vlan2 * * 10001
ipv6 policy filter 1999 reject-log 1000 vlan2 * * *

ipv6 policy filter 9999 reject-log * * * * *

# IPv6 ポリシー実装
ipv6 policy filter set 1000 name=IPv4-Policy 100 1000 1001 1999 9999

これらの例に基づいて、フル CLI 設定をすると、こんな感じになります
(かなり膨大なので、新しくページを開きます)

>>> FWX120 の WAN/DMZ/LAN デュアルスタック設定例 <<<

この設定で、IPv6 PPPoE の速度計測したら、回線契約速度(200Mbps)限界超えていましたww

 

[ Back ]
[ Home ]

Copyright © MURA All rights reserved.