GeoIP 変換を使用して、IPv4 アドレスを、対応する国コード (CC) またはアドレスの自律システム番号 (ASN) に変換できます。GeoIP 変換では、IPv4 アドレスに加えて、IPv6 アドレスのサポートも利用できます。
WAF 機能の ModSecurity (ModSec) 言語で、2 つの新しい変換を使用できます。
t:IPtoCountryCode
t:IPtoASNumber
使用例
IP アドレスが米国からではない場合に IP アドレスをブロックする。
SecRule REMOTE_ADDR "!@streq US" "phase:1,id:1,t:IPtoCountryCode,deny,msg:'IP address is not from the US'"
IP アドレスが米国からではない場合に(米国のプロキシを経由する場合でも)IP アドレスをブロックする。
SecRule REMOTE_ADDR|REQUEST_HEADERS:X-Forwarded-For "!@streq US" "phase:1,id:2,t:IPtoCountryCode,deny,msg:'IP address is not from the US'"
IP アドレスが
AS64496
からの場合に IP アドレスをブロックする。SecRule REMOTE_ADDR|REQUEST_HEADERS:X-Forwarded-For "@streq 64496" "phase:1,id:3,t:IPtoASNumber,deny,msg:'IP address is from AS64496'"
DataScript Geo Lookup 関数との関係
DataScript 関数 get_geo_from_ip は、avi.utils.get_geo_from_ip(IP, "COUNTRY")
を使用して国コードを取得するか、指定した IP アドレスから avi.utils.get_geo_from_ip(IP, "ASN")
を使用して ASN を取得できます。これは WAF と同じデータとマッピングを使用しています。
ModSecurity の @geoLookup 演算子との関係
ModSecurity には、@geoLookup 演算子と GEO コレクションが含まれています。これは、さまざまな理由により、NSX Advanced Load Balancer ではサポートされていません。たとえば、次に示すように、ModSecurity の GEO ルールがあるとします。
# Configure geolocation database SecGeoLookupDb /path/to/GeoLiteCity.dat ... # Lookup IP address SecRule REMOTE_ADDR "@geoLookup" "phase:1,id:155,nolog,pass" # Block IP address when it is not from the US SecRule GEO:COUNTRY_CODE "!@streq US" "phase:1,id:156,deny,msg:'IP address is not from the US'"
新しい変換を使用して、これを次のルールに置き換えることができます。
SecRule REMOTE_ADDR "!@streq US" "phase:1,id:4,t:IPtoCountryCode,deny,msg:'IP address is not from the US'"
クライアント IP にはオプション Use_True_Client_IP が適用されます。クライアント IP は、レイヤー 3 ヘッダーの送信元 IP アドレスと等しいか、ユーザー定義の HTTP ヘッダーから取得された IP アドレスと等しい場合があります。詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「True Client IP in L7 Security Features」トピックを参照してください。
注意事項
- その他のメモリ要件
-
変換のテーブルは、追加の共有メモリが構成されている場合にのみメモリにロードされます。その他のメモリ要件と構成の詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「Extra Shared Memory」トピックを参照してください。