ファイアウォール:ルール
ファイアウォールの通信制御ルールを定義したものです。
ニフクラのファイアウォールは、基本的にはすべての通信を拒否し、ルールに列挙した通信のみ許可する方式です。
特定のIPアドレスからの通信のみを拒否する設定はできません。設定が必要な場合はサーバーOSのファイアウォール等の利用を検討してください。
INルールに設定されたルールは、サーバー・ルーター・拠点間VPNゲートウェイが通信を受信する場合のフィルタとして利用されます。
OUTルールに設定されたルールは、サーバー・ルーター・拠点間VPNゲートウェイが通信を送信する場合のフィルタとして利用されます。
構成の上限
パラメーター名 | 内容 |
---|---|
設定可能ルール数上限 | 100件/ファイアウォールグループ |
ファイアウォール ルールの設定要素
パラメーター名 | 内容 |
---|---|
プロトコル | 許可対象のプロトコルです。 |
ポート | 許可対象の宛先ポートの範囲です。プロトコルでTCP、UDPを選択した場合のみ設定が可能です。 |
接続元種別/接続先種別 | 許可対象の通信の接続元/接続先の種別です。 ルールがINルールに所属する場合「接続元種別」、ルールがOUTルールに所属する場合「接続先種別」となります。 |
IPアドレス・グループ | 接続元種別/接続先種別に対応した形式で記述された対象の情報です。 ルールがINルールに所属する場合、接続元のIPアドレス・グループを設定します。ルールがOUTルールに所属する場合、接続先のIPアドレス・グループを設定します。 |
プロトコル
選択可能なプロトコルは以下となります。
プロトコル名 | プロトコル番号 | ポート番号 |
---|---|---|
ICMP | 1 | - |
TCP | 6 | 任意の値の設定が可能 |
SSH | 6 | 22 |
HTTP | 6 | 80 |
HTTPS | 6 | 443 |
RDP | 6 | 3389 |
UDP | 17 | 任意の値の設定が可能 |
L2TP | 17 | 1701 |
GRE | 47 | - |
ESP | 50 | - |
AH | 51 | - |
ICMPv6-all | 58 | - |
VRRP | 112 | - |
※プロトコル番号の詳細につきましては、IANAのプロトコル番号一覧をご確認ください。
「接続元種別/接続先種別」と「IPアドレス・グループ」について
選択可能な接続元種別/接続先種別は以下となります。
接続元/接続先種別名 | 内容 | 「IPアドレス・グループ」の設定値 |
---|---|---|
IPアドレス(IPv4) | IPv4のIPアドレスです | IPv4のIPアドレスを1つ指定します(例:192.168.0.100)。 |
CIDR(IPv4) | CIDR表記のサブネットです | CIDR表記のサブネットを1つ指定します(例:192.168.0.0/24)。プレフィックス長が32の場合は IPアドレス(IPv4)を利用してください。 |
IPアドレス(IPv6) | IPv6のIPアドレスです | IPv6のIPアドレスを1つ指定します(例:2001:db8:20:3:1000:100:20:2)。 |
CIDR(IPv6) | CIDR表記のサブネットです | CIDR表記のサブネットを1つ指定します(例:2001:0DB8:0:CD30::/60)。プレフィックス長が128の場合は IPアドレス(IPv6)を利用してください。 |
グループ | ファイアウォールグループです | 同一ゾーンに所属するファイアウォールグループを1つ指定します。 |
接続元/接続先種別名でグループを指定した場合の動作
接続元/接続先種別名でグループを指定した場合、グループに所属しているサーバーのIPに対しての接続を許可するような動作をします。
注意点
グループに所属するサーバーのVMware Toolsが正しく動作している必要があります。
VMware Toolsが動作していない場合、サーバーのIPを認識できず、通信を正常に許可できない場合があります。
VMware Toolsのバージョンについては、以下のページからご確認ください。
参考: VMware Toolsバージョンアップのご案内について
フィルタの動作仕様
ニフクラのファイアウォールはLayer4レベルで解析し、ステートフルに動作いたします。
INルールを通過した通信の戻りの通信は自動的に許可されます。戻りの通信を許可するためにOUTルールを定義する必要はございません。
原則として、TCP(RFC793)またはUDP(RFC768)の仕様に即したフィルタリングを行います。
TCPに対する動作について
ファイアウォールルールで定義されている送信元/送信先、またはプロトコルでもファイアウォールの持つTCPの状態とパケットのTCPフラグの整合性が無い場合は、通信を拒否いたします。
TCPの状態は、サーバーのネットワークインターフェースごとに管理しています。
ハーフオープン発生時の挙動について
サーバーの異常による再起動などでコネクションを確立している片側のサーバーのコネクションがリセットされてしまった場合、以下の動作をします。
- ESTABLISHED状態のときにSYNを受信するとTCP状態の不一致を検知しファイアウォールが送信元へACKを返却します。このACKを受信すると送信元はRSTを送出しコネクションをリセットすることができます。
※一部の環境ではTCP状態の不一致で拒否します。 ESTABLISHED状態はタイムアウトすることにより、ハーフオープンを復旧することができます。
- SYNSENT状態時にACKを受信するとTCP状態の不一致を検知しファイアウォールが送信元へRSTを返却します。このRSTを受信する事により送信元のコネクションをリセットすることができます。
- ESTABLISHED状態時にSYNを送信するとTCP状態の不一致を検知し、ファイアウォールが送信元へACKを返却します。このACKを受信すると、送信元はRSTを送出し、コネクションをリセットすることができます。
ハーフクローズ発生時の挙動について
TCPコネクションの片側がクローズしている状態の場合には、以下の動作をします。NAT配下でポートの再利用が想定よりも早い場合などが該当します。
- CLOSE_WAIT状態時にSYNを受信すると、TCP状態の不一致で拒否します。CLOSE_WAIT状態はタイムアウトすることにより、ハーフクローズを復旧することができます。
非対称な通信に対する挙動について
ニフクラ上で往路(行き)と復路(戻り)で異なる経路を通過する通信を行った場合、ファイアウォールは正しく状態を更新できません。
そのような通信については、動作を保証することはできません。以下に該当する構成例を示します。
- 往路と復路で経由するルーターが異なる構成(図左)
- 同じプライベートLAN上にニフクラで作成したルーターと他のゲートウェイが存在する場合、他のゲートウェイから先にあるネットワーク宛の通信をニフクラのルーターに送信すると、ルートテーブル設定によっては他方のゲートウェイに転送して往路の通信を成立させることが可能ですが、復路においてニフクラのルーターを経由しないため、このルーターを保護するニフクラファイアウォールが正常に動作しません。
- サーバーが全ての通信をニフクラのルーターに送信するのではなく、他のゲートウェイから先にあるネットワークへの通信は最初からそちらのゲートウェイに転送するようサーバーのルーティングの設定を見直すことで問題を回避できます。
- Direct Server Return(図中央)
- ニフクラに作成したサーバーをロードバランサーとして利用し、その際にDirect Server Return(DSR)を採用すると、このサーバーを保護するニフクラファイアウォールを往路の通信しか通過しないため、正常に動作しません。
- DSRではなくサーバーでSNATすることで問題を回避できます。
- パケットを受信したインターフェースとは別のインターフェースから戻り通信を送信する構成(図右)
- ニフクラに作成したサーバーが、リクエストを受け付けたインターフェイスとは異なるインターフェイスからレスポンスを送信した場合、このサーバーを保護するニフクラファイアウォールが正常に動作しません。
- 経路上にニフクラで作成したルーターが含まれる場合、このルーターについて往路で利用するインターフェイスと復路で利用するインターフェイスが異なれば、同様にこのルーターを保護するニフクラファイアウォールが正常に動作しません。
コネクションのタイムアウトについて
コネクションは無通信状態が続くとタイムアウトいたします。
タイムアウト値はファイアウォール上のTCP状態によって異なります。TCP状態に応じたタイムアウト値は以下となります。
TCP状態 | タイムアウト値 | 内容 |
---|---|---|
first_packet | 2分 | 最初のパケットが送信された後の、接続のタイムアウト値です。 |
opening | 30秒 | 2番目のパケットが転送された後の、接続のタイムアウト値です。 |
established | 12時間 | 接続が完全に確立された後の、接続のタイムアウト値です。 |
closing | 2分(一部環境では15分) | 最初のFINが送信された後の、接続のタイムアウト値です。 |
fin_wait | 45秒 | 両方のFINが交換され、接続が閉じられた後の、接続のタイムアウト値です。 |
closed | 20秒 | 1つのエンドポイントがRSTを送信した後の、接続のタイムアウト値です。 |
ALGとして動作するプロトコルについて
以下のポート/プロトコルを指定した場合、特定のプロトコルであると判断します。その場合、ネットワークプロトコルを解釈し制御を行います。
プロトコル名 | ポート/プロトコル |
---|---|
FTP | 21/tcp |
SUN RPC | 111/tcp |
SUN RPC | 111/udp |
MS RPC | 135/tcp |
MS RPC | 135/udp |
※例えば、21/tcpを指定することにより、FTPのコントロールコネクション確立後にデータコネクションが自動的に許可されます。
ルールの適用順序について
パケットは、デフォルトルール → お客様に定義いただいたルール → ファイアウォールグループのデフォルトルールの順番で適用されます。