フレッツ光ネクスト(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 は「わかりやすいファイアウォール」がコンセプトなので、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のアーキテクチャー |
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
Copyright © MURA All rights reserved.