ビジネスサポートポータルアカウントでログイン
下位の HTTP プロキシサーバが、InterScan Web Security Virtual Appliance 6.5 への接続に失敗することがあります。  

下位の HTTP プロキシサーバが、InterScan Web Security Virtual Appliance 6.5 への接続に失敗することがあります。

    • 更新日:
    • 31 May 2019
    • 製品/バージョン:
    • InterScan Web Security Virtual Appliance 6.5
    • OS:
    • Virtual Appliance すべて
概要
InterScan Web Security Virtual Appliance 6.5(以降、IWSVA) にて、下位の HTTP プロキシサーバ (IWSVA から見てクライアント) が IWSVA サーバへの HTTP/HTTPS 接続に失敗することがあります。IWSVA 側での対処策を教えてください。
 
詳細
Public
IWSVA の下位に HTTP プロキシサーバが存在する構成の場合、当該サーバが多数の Web クライアントからの HTTP/HTTPS 要求を引き受けて IWSVA へ渡すため、以下のような接続失敗の事象が起こりえます。

事象1:
下位 HTTP プロキシサーバで、クライアント IP アドレスに対するクライアントポート番号の短時間での再使用が発生しやすくなります。
IWSVA 側で下位 HTTP プロキシサーバとの特定の TCP セッションが TIME_WAIT 状態で残っている状態で、下位 HTTP プロキシサーバが当該 TCP セッションと同じ「クライアント IP アドレス/クライアントポート番号」で新規 TCP 接続 (TCP SYN) を試みた場合、IWSVA はその要求を「前回の TCP セッションの続き」と判断して、SYN/ACK 応答ではなく ACK 応答を返却します。
このとき、下位 HTTP プロキシサーバは、当該 ACK 応答を不正と判断して IWSVA に TCP RST を送信いたしますが、IWSVA はデフォルトで RFC1337 に従ってこの TCP RST を無視します。
下位 HTTP プロキシサーバは TCP SYN の再送を繰り返しますが、上述の TCP RST の無視が繰り返されることで、最終的に「TCP接続失敗」となることがあります。
 
事象2:
下位 HTTP プロキシサーバと IWSVA の間にロードバランサを設置している場合、ロードバランサ側での挙動によっては、IWSVA 側が「ロードバランサが送信した TCP セグメント」を不正と判断して破棄することがあります。IWSVA は、デフォルトで「OS 側で不正と判断した TCP セグメント」を破棄するようにしているためです。
 
これらの IWSVA 側での対処策は、以下になります。
下位 HTTP プロキシサーバを使用される環境では、事象への予防策として設定頂くことを強く推奨します。
 

事象1への対策

以下の手順を実施し、TIME_WAIT 状態の TCP セッションに対する TCP RST を受け付けるようにします。これにより、IWSVA は当該 TCP セッションを即座に終了するため、下位 HTTP プロキシサーバからの再度の新規TCP接続要求を処理できるようになります。
なお、下位 HTTP プロキシサーバ側で、使用可能なクライアントIPアドレス/クライアントポート番号を増やしていただくことでも対応可能です。

1. IWSVA の Linux コンソールに root ユーザでログインします。

2. /etc/sysctl.conf をバックアップしたのちに vi で開きます。

# cp /etc/sysctl.conf /etc/sysctl.conf.org
# vi /etc/sysctl.conf
3. tcp_rfc1337 を探し、値を1から0に変更します。

(編集前)
net.ipv4.tcp_rfc1337=1
(編集後)
net.ipv4.tcp_rfc1337=0
4.ファイルを保存し、sysctl -p で設定を反映します。
# sysctl -p


事象2への対策

以下の手順を実施して、下位 HTTP プロキシサーバからの TCP セグメントに対する明示的な許可ルールを追加します。

1. IWSVA の Linux コンソールに root ユーザでログインします。

2. /usr/iwss/iwsvafw.sh をバックアップしたのちに vi で開きます。

# cp /usr/iwss/iwsvafw.sh /usr/iwss/iwsvafw.sh.org
# vi /usr/iwss/iwsvafw.sh

3. stateful を検索し、下の行に以下のルールを追加します。

IPTABLE ipv4 -A INPUT -p tcp -s {下位 HTTP プロキシサーバのIPアドレス} -j ACCEPT

たとえば、下位 HTTP プロキシサーバの IP アドレスが 192.0.2.1 であれば、以下のようにします。

[編集前]
IPTABLE -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # stateful

# Create the custom chains
IPTABLE -N SCAN_SERV_IN
IPTABLE -N ACL_IN
IPTABLE -N LOCAL_SERV_IN
[編集後]
IPTABLE -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # stateful
IPTABLE ipv4 -A INPUT -p tcp -s 192.0.2.1 -j ACCEPT
# Create the custom chains
IPTABLE -N SCAN_SERV_IN
IPTABLE -N ACL_IN
IPTABLE -N LOCAL_SERV_IN

4. ファイルを保存し、以下のコマンドで iptables を再起動します。

# /etc/init.d/iptables restart

正しく設定されていれば、iptables に以下のようなルールが追加されます。

# iptables -nvL INPUT
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
...
    0     0 ACCEPT     tcp  --  *      *       192.0.2.1            0.0.0.0/0
...
 
Premium
Internal
Partner
評価:
カテゴリ:
機能/仕様; 操作方法/設定
Solution Id:
1120273
ご提案/ご意見
このソリューションはお役に立ちましたか?

フィードバックありがとうございました!


*こちらに技術的なご質問などをいただきましてもご返答する事ができません.

何卒ご了承いただきますようお願いいたします.


To help us improve the quality of this article, please leave your email here so we can clarify further your feedback, if neccessary:
We will not send you spam or share your email address.

*This form is automated system. General questions, technical, sales, and product-related issues submitted through this form will not be answered.


ユーザーガイド