Copyright © 2000-2005 eazyfox. All Rights Reserved.
HOME| Firewall | Security| 製品紹介| SecuTool| Forest| Hello| Link| 掲示板| 雑談掲示板| SiteMap| Contact

Firewallのルールを作る

ルールを考える

Firewallの設定は当然ながら提供するサービスと享受するサービスを考える必要がある。まずは提供サービスから。サーバ機は次のようなサービスを提供することが多い。これらのサービスはFirewallのInternet側からアクセスされることを前提として考えるのでInternet側の入力制限に関係してくる。

サービス名 説明
http httpサービスはApache、IISなどWebサーバが提供する機能
ftp ftpサービスはデータの転送を目的として公開データの提供や蓄積を行う
stmp smtpサービスはe-mailの転送で他のsmtpサーバへの送信とsmtpサーバからの受信を担当する
pop3 pop3サービスはメールクライアントへの送信を担当するサービス
dns dnsはアドレス変換を担当する。DynamicDNSを使用するならdnsサーバは必要ない

この他にもストリーミングやゲームのホストなどいろいろな機能が考えられるが、きりがないので上のような一般的なサービスに限定して考えてみる。では上のサービスを提供するサーバ機が必要とするプロトコルを定義する。ステートレスで定義すると

プロトコル 許可/遮断 方向 説明
http 許可 外→ 外部からhttpサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの80ポートへの着信を許可する
(2)自IPの80ポートから外部の不特定IPの1024以上のポートへの送信を許可する(セッション確立後)
https 許可 外→ 外部からhttpsサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの443ポートへの着信を許可する
(2)自IPの443ポートから外部の不特定IPの1024以上のポートへの送信を許可する(セッション確立後)
ftp 許可 外→ 外部からftpサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの21ポートへの着信を許可する
(2)自IPの21ポートから外部の不特定IPの1024以上のポートへの送信を許可する(セッション確立後)
(3)自IPの20ポートから外部の不特定IPの1024以上のポートへの発信を許可する
(4)外部の不特定IPの1024以上のポートから自IPの20ポートへの着信を許可する(セッション確立後)
smtp 許可 外→
内→
外部ISPやフリーメールアドレスの使用のため外部メールサーバとのアクセスを許可する
(1)外部の不特定IPの1024以上のポートから自IPの25ポートへの着信を許可する
(2)自IPの25ポートから外部の不特定IPの1024以上のポートへの送信を許可する(セッション確立後)
(3)自IPの1024以上のポートから外部の不特定IPの25ポートへの発信を許可する
(4)外部の不特定IPの25ポートから自IPの1024以上のポートへの着信を許可する(セッション確立後)
pop3 許可 内→ 外部のPCからPOP3サーバへのアクセスを許可する
(1)自IPの1024以上のポートから外部の不特定IPの110ポートへの発信を許可する
(2)外部の不特定IPの110ポートから自IPの1024以上のポートへの着信を許可する(セッション確立後)
dns 許可 外→
内→
外部ISPのDNS参照を許可する(UDP、TCP両方)
(1)自IPの53ポートから外部の不特定IPの53ポートへの発信を許可する
(2)外部の不特定IPの53ポートから自IPの53ポートへの着信を許可する
dhcp 許可 内→ 外部ISPのDHCPへの接続を許可する
(1)自IPの68ポートから外部の不特定IPの67ポートへの発信を許可する
(2)外部の不特定IPの67ポートから自IPの68ポートへの着信を許可する

すべてのルールに行きと戻りを定義しなければいけないステートレスだとこのような定義になる。定義は一回だけ行うだけであり面倒だとはあまり思わない。しかしステートフルで定義すると

プロトコル 許可/遮断 方向 説明
http 許可 外→ 外部からhttpサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの80ポートへの着信を許可する
https 許可 外→ 外部からhttpsサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの443ポートへの着信を許可する
ftp 許可 外→ 外部からftpサーバへのアクセスは許可する
(1)外部の不特定IPの1024以上のポートから自IPの21ポートへの着信を許可する
(2)自IPの20ポートから外部の不特定IPの1024以上のポートへの発信を許可する
smtp 許可 外→
内→
外部ISPやフリーメールアドレスの使用のため外部メールサーバとのアクセスを許可する
(1)外部の不特定IPの1024以上のポートから自IPの25ポートへの着信を許可する
(2)自IPの1024以上のポートから外部の不特定IPの25ポートへの発信を許可する
pop3 許可 内→ 外部のPCからPOP3サーバへのアクセスを許可する
(1)自IPの1024以上のポートから外部の不特定IPの110ポートへの発信を許可する
dns 許可 外→
内→
外部ISPのDNS参照を許可する(UDP、TCP両方)
(1)自IPの53ポートから外部の不特定IPの53ポートへの発信を許可する
dhcp 許可 内→ 外部ISPのDHCPへの接続を許可する
(1)自IPの68ポートから外部の不特定IPの67ポートへの発信を許可する

ずいぶん量が減ってすっきりする。しかしこの文字で表した一覧では大変判りにくいので

これらの情報から必要なフィルタを考えると

Inernet側インターフェイスで必要なフィルタ

Protocol Src. IP Src. Port Dst. IP Dst. Port Action 説明
Incoming TCP 80 Allow Internetからhttpへのリクエストは許可
TCP 25 Allow Internetからsmtpへのリクエストは許可
UDP 68 67 Allow DHCPサーバからのリクエストは許可
Outgoing TCP 80 Allow 外部httpへのリクエスト
TCP 443 Allow 外部httpsへのリクエスト
TCP 25 Allow 外部smtpへのリクエスト
TCP 110 Allow 外部pop3へのリクエスト
TCP 21 Allow 外部ftpへのリクエスト
TCP >1023 >1023 Allow 外部ftp-dataへのリクエスト
UDP 53 53 Allow 外部dnsへのリクエスト

PassiveモードのFTPは上記のように抜け抜けの状態になってしまうのであまりお勧めできません。NATでポートフォワードを指定して特定の1台だけFTPが使用できるようにしたほうがいいです。

LAN側インターフェイスで必要なフィルタ

Protocol Src. IP Src. Port Dst. IP Dst. Port Action 説明
Incoming TCP 192.168.1.0/24 >1023 80 Allow Internetからhttpへのリクエストは許可
TCP 192.168.1.0/24 >1023 25 Allow Internetからsmtpへのリクエストは許可
UDP 68 67 Allow DHCPサーバからのリクエストは許可
Outgoing TCP 80 192.168.1.0/24 >1023 Allow 外部httpへのリクエスト
TCP 443 192.168.1.0/24 >1023 Allow 外部httpsへのリクエスト
TCP 25 192.168.1.0/24 >1023 Allow 外部smtpへのリクエスト
TCP 110 192.168.1.0/24 >1023 Allow 外部pop3へのリクエスト
TCP 21 192.168.1.0/24 >1023 Allow 外部ftpへのリクエスト
TCP >1023 192.168.1.0/24 >1023 Allow 外部ftp-dataへのリクエスト
UDP 53 192.168.1.0/24 53 Allow 外部dnsへのリクエスト

Firewallの選定に関して

Windows2000でICSまたはIP Routerを機能させるときのFirewallとして選択できるのは
・RRAS(Routing and Remote Access Service)
・PktFilter
・NetCenturion
・CHX-I のPacket FilterとNATの組み合わせ
・SoftPerfect Personal Firewall
・Kerio(Tiny) Personal FirewallとICS機能の組み合わせ
になるかと思います。それぞれ一長一短があります。簡単に比較表を作っておきます。

機能 長所 短所
RRAS IP RouterとNATとDHCP、DNSの全ての機能が統合されているので設定は簡単 ポートが範囲指定できないのでルール作りが煩わしい。一覧性が無いのでバッチを作ってルール適用したほうが楽かも
PktFilter 機能はRRASと同じだが、テキストで設定できるので少しは楽(ポート指定も"<>"や"="が使える) 設定はテキスト形式なのでGUIになれた身にはつらい。サービスの起動に時間がかかる(2分くらい)
NetCenturion PktFilterと同じ機能だがGUIが使える。ログも分割できる まったく無名。参考サイトもまったく無い。インターフェイスの選択でIPを指定するのは??
CHX-I Packet Filterは大変高機能で設定もわかりやすい。が多機能すぎるのと事例が少ない RRASを有効にしないのならDHCPサーバ機能とDNSのリレーが必要(DHCPとBINDを別にインストールしなければならない)。ステートフルなので動作が重い
SoftPerfect GUIでの設定。ポートリストも使用可能 ログが貧弱。フォントの関係で画面が切れる
KerioVer.2
+ICS
一番お手軽な組み合わせ。サーバ公開に向いているかは不明 インターフェイスごとの指定はできないのでサーバをトポロジー的に隔離することは難しい

製品の紹介と実際の設定

で、実際にCHX-IとPktFilterでルールをつくってみました。
・PktFilterの紹介とルールのページはこちら

・CHX-I Packet Filterの紹介とルールのページはこちら

・SoftPerfectの紹介ページはこちら

Firewallのトップに戻る
製品別紹介をみる