<前頁
次頁>
<<
>>
↓
目次 (番号順
(詳細)・
回線別
(詳細)・
機能別
(詳細))
CentreCOM AR550S 設定例集 2.9 #129
アプリケーションゲートウェイ(HTTPプロキシー)
HTTPクライアント(Webブラウザーなど)とWebサーバー間の通信を仲介することで、クライアントが特定のURLにアクセスできないようにしたり、サーバーからのCookies設定要求を拒否したりすることのできるHTTPプロキシーの設定例です。PPPoEによる端末型インターネット接続環境を例としています。なお、本機能を使用するためには別途ライセンスが必要です。
Note
- 本機能はファイアウォールのオプション機能ですので、ご使用にはフィーチャー(追加機能)ライセンスが必要です。
Note
- HTTPプロキシーによって監視できるのはHTTPプロトコルによるやりとりだけです。HTTPSやFTPなどには対応していません。
Note
- HTTPプロキシーは、内部のクライアントから外部のHTTPサーバーへの通信を代行する機能です。外部から内部へのHTTP通信に対しては機能しませんのでご注意ください。
Note
- 本機能はHTTP/1.1のみの対応です。利用するクライアントではHTTP/1.1を使用するようブラウザーの設定を行ってください。HTTP/1.0を使用した場合、本機能が正しく動作しない場合があります。
Note
- 本機能を有効にしている場合、Webブラウザーを利用したグラフィカル・ユーザー・インターフェース(GUI)は無効になります。
ISPからは次の情報を提供されているものとします。
表 1:ISPから提供された情報
PPPユーザー名 |
user@isp |
PPPパスワード |
isppasswd |
PPPoEサービス名 |
指定なし |
IPアドレス |
グローバルアドレス1個(動的割り当て) |
DNSサーバー |
接続時に通知される |
ルーターには、次のような方針で設定を行います。
- ファイアウォールを利用して、外部からの不正アクセスを遮断しつつ、内部からは自由にインターネットへのアクセスができるようにします。
- ファイアウォールのダイナミックENAT機能を使用して、LAN側ネットワークのプライベートIPアドレスを、ISPから与えられたグローバルIPアドレスに変換します。これにより、LANに接続された複数のコンピューターからインターネットへの同時アクセスが可能になります。
- ファイアウォールのオプション機能であるHTTPプロキシーを使って、LAN側クライアント(Webブラウザー)が特定のURLにアクセスできないようにします(URLフィルタリング)。
- ファイアウォールのオプション機能であるHTTPプロキシーを使って、外部のWebサーバーからLAN側クライアント(Webブラウザー)に対するCookies設定要求を拒否します(Cookiesフィルタリング)。
以下、ルーターの基本設定とDHCPサーバーの設定についてまとめます。
表 2:ルーターの基本設定
WAN側物理インターフェース |
eth0 |
WAN側(ppp0)IPアドレス |
接続時にISPから取得する |
LAN側(vlan1)IPアドレス |
192.168.10.1/24 |
DHCPサーバー機能 |
無効 |
- WAN側Ethernetインターフェース(eth0)上にPPPインターフェースを作成します。「OVER=eth0-XXXX」の「XXXX」の部分には、ISPから通知されたPPPoEの「サービス名」を記述します。ISPから指定がない場合は、どのサービス名タグでも受け入れられるよう、「ANY」を設定します。
CREATE PPP=0 OVER=eth0-ANY ↓
- ISPから通知されたPPPユーザー名とパスワードを指定し、接続時にIPアドレス割り当ての要求を行うように設定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。
SET PPP=0 OVER=eth0-ANY BAP=OFF IPREQUEST=ON USER=user@isp PASSWORD=isppasswd LQR=OFF ECHO=ON ↓
- IPモジュールを有効にします。
- IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。
- LAN側(vlan1)インターフェースにIPアドレスを設定します。
ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0 ↓
- WAN側(ppp0)インターフェースにIPアドレス「0.0.0.0」を設定します。ISPとの接続が確立するまで、IPアドレスは確定しません。
ADD IP INT=ppp0 IP=0.0.0.0 ↓
- デフォルトルートを設定します。
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓
- ファイアウォール機能を有効にします。
- ファイアウォールの動作を規定するファイアウォールポリシー「net」を作成します。
CREATE FIREWALL POLICY=net ↓
- ICMPパケットはPing(Echo/Echo Reply)と到達不可能(Unreachable)のみ双方向で許可します。
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
Note
- デフォルト設定では、ICMPはファイアウォールを通過できません。
- ルーターのidentプロキシー機能を無効にし、外部のメール(SMTP)サーバーなどからのident要求に対して、ただちにTCP RSTを返すよう設定します。
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
- ファイアウォールポリシーの適用対象となるインターフェースを指定します。
- LAN側(vlan1)インターフェースをPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓
- WAN側(ppp0)インターフェースをPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
- LAN側ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスには、ppp0のIPアドレスを使用します。
ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓
- クライアントからはHTTPプロキシーを使用するため、それ以外の直接インターネットに出る通信を破棄するように設定します。
ADD FIREWALL POLICY=net RULE=1 ACTION=ALLOW INTERFACE=VLAN1 PROTOCOL=TCP PORT=80 REMOTEIP=192.168.10.1 ↓
ADD FIREWALL POLICY=net RULE=2 ACTION=DENY INTERFACE=VLAN1 PROTOCOL=TCP PORT=80 ↓
- HTTPプロキシーを使用時は同一ページ内においてもDNSのクエリーがルーターから送信されるため、ファイアウォールへの負荷を軽減するように、DNSキャッシュを有効に設定します。
SET IP DNS CACHE SIZE=250 ↓
- HTTPプロキシーを有効にします。INTERFACEにはPRIVATE側インターフェースを、GBLINTERFACEにはPUBLIC側インターフェースを指定します。また、DIRECTIONは通常OUTを指定します。
ADD FIREWALL POLICY=net PROXY=HTTP INT=vlan1 GBLINT=ppp0 DIRECTION=OUT ↓
Note
- HTTPプロキシーは、内部のクライアントから外部のHTTPサーバーへの通信を代行する機能です。外部から内部へのHTTP通信に対しては機能しません。DIRECTIONパラメーターには必ずOUTを指定してください。DIRECTIONパラメーターにOUT以外を指定しても意図した動作になりませんのでご注意ください。
Note
- HTTPプロキシーを利用するクライアント(Webブラウザー)には、HTTPプロキシーとして本製品のPRIVATE側インターフェースを指定してください。ポート番号は80番です。
- フィルターファイルを作成します。フィルターファイルは、拒否・許可するURLやURL内のキーワード、ドメイン名などを記述したテキストファイル(拡張子は.txt)です。EDITコマンドで作成するか、他のコンピューター上で作成したものをダウンロードしてください。
次にフィルターファイル urllist.txt の例を示します。「#」で始まる行はコメントです。
### keywordsセクション: 以下のキーワードを含むURLにはアクセス禁止
keywords:
money drug
*crack.html *.mp3
### URLsセクション: 以下のサーバー、ディレクトリーにはアクセス禁止
urls:
# サーバーのフルドメイン名
www.evil.xxx
www.pandora.xxx
# サーバー+ディレクトリー。指定ディレクトリー以下にはアクセス禁止
www.howto.xxx/crackiis
www.nandemo.xx.xx/users/a12345/eroero
# 拒否サイト(の一部)を例外的に許可したいときは allow オプションを使う。
www.drugstore.xxx: allow
www.pandora.xxx/flux/chaos/anguish/sorrow/hope: allow
# Cookieだけを拒否
www.hiscompany.xxx: nocookies
www.moneymanagement.xxx: allow nocookies
|
フィルターファイルは、keywordsセクションとurlsセクションの2つのセクションで構成されています。どちらか一方のセクションだけでもかまいません。キーワードやURLは、ドメイン、ディレクトリー、ファイルともに、大文字小文字を区別しません。
- 「keyword:」で始まるセクションには、アクセスを禁止したいキーワードを列挙します。キーワードは1行に1個ずつ書くか、スペースで区切って並べてください。例では、URL内(ドメイン、ディレクトリー、ファイルなど)に「money」「drug」という文字列が(部分的にでも)含まれる場合、該当URLへのアクセスを拒否します。
よって、次のURLへはアクセスできません。
- http://www.makemoney.xxx/
- http://www.underground.xx.xx/enjoy_drug.html
また、キーワードの先頭に「*」(アスタリスク)を付けると後方一致になります。例では、クライアントの指定するURLが「crack.html」「.mp3」で終わる場合、アクセスを拒否します。
Note
- アスタリスクはキーワードの先頭に指定したときだけ特殊な意味(後方一致)を持ちます。「adult*」や「find*software」のような指定をした場合は、単なる文字(アスタリスク自身)として扱われます。
Note
- keywordsセクションはurlsセクションでマッチするものがなかった場合に(最後に)評価されます。
- 「urls:」で始まるセクションには、アクセスを禁止したいURL(サーバーのフルドメイン名やディレクトリー)を列挙します。URLは必ず一行に一個ずつ記述してください。例では「www.evil.xxx」「www.pandora.xxx」というドメイン名を持つサーバーへのアクセスを禁止しています。
また、ドメイン名のあとにディレクトリーを指定することもできます。指定したディレクトリー以下のファイルにはアクセスできません。
例では以下のURLにはアクセスできません。
- http://www.howto.xxx/crackiis/
- http://www.howto.xxx/crackiis/firststep.html
- http://www.nandemo.xx.xx/users/a12345/eroero/xxxxxxx.jpg
Note
- ディレクトリーは完全一致で指定する必要があります。例では「http://www.howto.xxx/crackiis5/readme.htm」へのアクセスは許可されます。
Note
- urlsセクションはkeywordsセクションよりも前に評価されます。また、複数のエントリーに一致する場合、より具体的なエントリーが採用されます。
keywords、urlsのどちらかのセクションで禁止したサイトに例外を設けたい場合は、URLの後ろにオプションを指定することができます。オプションには「allow」と「nocookies」の2種類があります。URLとオプションの間はコロン+スペース(: )で区切ります。両方のオプションを指定したい場合はオプションとオプションをスペースで区切ります。
- 「allow」オプションは、指定したURLへのアクセスを例外的に許可する指定です。例では、禁止キーワードの「drug」を含む「www.drugstore.com」を例外的に許可しています。また、禁止ドメインである「www.pandora.xxx」についても、「/flux/chaos/anguish/sorrow/hope」ディレクトリー以下に限ってアクセスを許可しています。allowオプションは最も効力が強く、マッチしたURLは必ずアクセスが許可されます。
- 「nocookies」オプションは、指定したサーバーからのcookie設定要求だけを拒否する指定です。同サーバーへのアクセスは(urls、keywordsセクションで拒否されていない限り)許可します。例では「www.hiscompany.xxx」からのcookie設定要求を拒否します。「allow」と「nocookies」は併用することも可能です。例では、禁止キーワードの「money」を含む「www.moneymanagement.xxx」へのアクセスを例外的に許可した上で、同サーバーからのcookieを拒否しています。
- フィルターファイルを用意したら、ADD FIREWALL POLICY HTTPFILTERコマンドでファイル名を指定します。
ADD FIREWALL POLICY=net HTTPFILTER=urllist.txt DIRECTION=OUT ↓
Note
- 1つのファイアウォールポリシーに設定できるフィルターファイルは最大5個です。
Note
- フィルターファイルの内容を変更するときは、DELETE FIREWALL POLICY HTTPFILTERコマンドでファイルをいったん削除してから編集し、編集が終わったら再度追加してください。単にファイルを編集するだけでは、HTTPプロキシーの動作には反映されません。
Note
- HTTPプロキシーは、内部のクライアントから外部のHTTPサーバーへの通信を代行する機能です。外部から内部へのHTTP通信に対しては機能しません。DIRECTIONパラメーターには必ずOUTを指定してください。DIRECTIONパラメーターにOUT以外を指定しても意図した動作になりませんのでご注意ください。
- 外部WebサーバーからのCookie要求を拒否するよう設定します。デフォルトでは、フィルターファイルで「nocookies」を指定したサーバー以外からのCookie要求はすべてプロキシーを通過します。
DISABLE FIREWALL POLICY=net HTTPCOOKIES ↓
- 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。
CREATE CONFIG=router.cfg ↓
SET CONFIG=router.cfg ↓
■ HTTPプロキシー機能を使用するには、DNSサーバーアドレスの設定が必要です。本設定例では、ISPへの接続時にIPCPで通知されるため明示的に設定していませんが、自動通知されない環境ではADD IP DNSコマンドを使って手動で設定してください。
ADD IP DNS PRIMARY=11.22.33.44 SECONDARY=11.22.33.55 ↓
■ フィルターファイルの内容を変更するときは、DELETE FIREWALL POLICY HTTPFILTERコマンドでフィルターファイルをいったん削除してから編集し、編集が終わったら再度追加してください。単にファイルを編集するだけでは、HTTPプロキシーの動作には反映されません。
DELETE FIREWALL POLICY=net HTTPFILTER=urllist.txt DIRECTION=OUT ↓
EDIT urllist.txt ↓
ADD FIREWALL POLICY=net HTTPFILTER=urllist.txt DIRECTION=OUT ↓
あるいは、フィルターを編集したあとでルーターを再起動してもかまいません(ただし、回線接続中にいきなり再起動すると再接続に支障をきたす場合がありますのでご注意ください。たとえば、PPPoEでISPに接続している場合は、DISABLE PPPコマンドを実行して接続を切ってから再起動してください)。
■ 本設定では、ルーター起動直後にPPPoEセッションが確立され、以後常時接続された状態となります。したがって、PPPoEセッションの切断、再接続は手動で行う必要があります。
- セッションを切断するには、次のコマンドでPPPインターフェースをディセーブルにします。
- 再接続するには次のコマンドでPPPインターフェースをイネーブルにします。
■ 常時接続ではなく、LAN側からインターネット側に対して通信要求が発生したときに自動的にPPPoEセッションを確立し、無通信状態が60秒続いたときにPPPoEセッションを切断するには、次のコマンドを入力します。
SET PPP=0 OVER=eth0-ANY IDLE=60 ↓
■ ファイアウォールで遮断されたパケットのログをとるには、次のコマンドを実行します。
ENABLE FIREWALL POLICY=net LOG=DENY ↓
記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=FIRE」により、ファイアウォールが出力したログメッセージだけを表示させています。
■ インターネット側からのPING(ICMP Echo Requestパケット)を拒否するには、次のようなIPフィルターをWAN側インターフェースに設定します。この例では、「LOG=HEADER」により、フィルターで拒否したパケットをログに記録しています。
ADD IP FILTER=0 SO=0.0.0.0 PROTO=ICMP ICMPTYPE=ECHO LOG=HEADER ACTION=EXCLUDE ↓
ADD IP FILTER=0 SO=0.0.0.0 ACTION=INCLUDE ↓
SET IP INT=ppp0 FILTER=0 ↓
記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=IPFIL」により、IPフィルターが出力したログメッセージだけを表示させています。
ルーターのコンフィグ
[テキスト版]
CREATE PPP=0 OVER=eth0-ANY ↓
SET PPP=0 OVER=eth0-ANY BAP=OFF IPREQUEST=ON USER=user@isp PASSWORD=isppasswd LQR=OFF ECHO=ON ↓
ENABLE IP ↓
ENABLE IP REMOTEASSIGN ↓
ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0 ↓
ADD IP INT=ppp0 IP=0.0.0.0 ↓
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓
ENABLE FIREWALL ↓
CREATE FIREWALL POLICY=net ↓
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓
ADD FIREWALL POLICY=net RULE=1 ACTION=ALLOW INTERFACE=VLAN1 PROTOCOL=TCP PORT=80 REMOTEIP=192.168.10.1 ↓
ADD FIREWALL POLICY=net RULE=2 ACTION=DENY INTERFACE=VLAN1 PROTOCOL=TCP PORT=80 ↓
SET IP DNS CACHE SIZE=250 ↓
ADD FIREWALL POLICY=net PROXY=HTTP INT=vlan1 GBLINT=ppp0 DIRECTION=OUT ↓
ADD FIREWALL POLICY=net HTTPFILTER=urllist.txt DIRECTION=OUT ↓
DISABLE FIREWALL POLICY=net HTTPCOOKIES ↓
|
CentreCOM AR550S 設定例集 2.9 #129
(C) 2005-2014 アライドテレシスホールディングス株式会社
PN: J613-M0710-04 Rev.P
<前頁
次頁>
<<
>>
↑
目次 (番号順
(詳細)・
回線別
(詳細)・
機能別
(詳細))