labunix's blog

labunixのラボUnix

FortigateのGeoIPで日本のアドレスオブジェクトを使用する。

■FortigateのGeoIPで日本のアドレスオブジェクトを使用する。

$ get system status | grep ^Ver
Version: FortiGate-60C v5.2.4,build0688,150722 (GA)

■パケットキャプチャで監視しているログを見ると、
 海外からのSSLクライアントの接続失敗ログが多い。
 逆に国内からの接続失敗ログは無い。
 少なくとも、SSLv2にもTLSv1は対応していない。

$ for list in ssh_20160228_*.pcap;do tshark -r "$list" -n -nn -d "tcp.port==443,ssl"; done | \
    awk '/SSLv2/{print $(NF-3),$(NF-2),$(NF-1),$NF}'
SSLv2 345 Client Hello
SSLv2 345 Client Hello

$ for list in ssh_20160228_*.pcap;do tshark -r "$list" -n -nn -d "tcp.port==443,ssl"; done | \
    awk '/TLSv1/{print $(NF-3),$(NF-2),$(NF-1),$NF}'
Fatal, Description: Unexpected Message)
Fatal, Description: Unexpected Message)
Fatal, Description: Unexpected Message)

■アクセス元やアクセス先がある国に限定されることが
 分かっている場合に便利なので、設定してみる。

■日本のアドレスオブジェクトを作成。

$ show firewall address Japan 
config firewall address
    edit "Japan"
        set type geography
        set country "JP"
    next
end

■アプリケーションコントロールでも制御出来るのでポリシーを作成して追加。

$ show firewall policy 10
config firewall policy
    edit 10
        set srcintf "wan1"
        set dstintf "dmz"
        set srcaddr "Japan"
        set dstaddr "VWAN-SSL"
        set action accept
        set schedule "always"
        set service "HTTPS"
        set utm-status enable
        set logtraffic all
        set application-list "remote-ssl"
        set profile-protocol-options "default"
        set nat enable
    next
end

■2554種類のアドレス帯が確認出来る。

$ diagnose firewall ipgeo country-list 
Total countries loaded:1
JP

$ diagnose firewall ipgeo ip-list JP | grep JP
Country name:JP Total IP Range:2554

■24bitマスクのIPアドレスを探して、前後でチェック
 含まれて入れば、「is in」で、
 含まれていなければ、「is not in」と出る。
 外部からアクセスする場合は、自身のアクセス元IPが
 「kernel ip-country DB」に含まれているか確認しておく。

$ diagnose firewall ipgeo ip-list JP | grep 202.173.5.
         202.173.5.0 - 202.173.5.255
$ diagnose firewall ipgeo ip-list JP | grep 202.173.
         202.173.5.0 - 202.173.5.255
        202.173.96.0 - 202.173.111.255
$ diagnose firewall ipgeo ip2country 202.173.5.0
202.173.5.0 is in country:JP
$ diagnose firewall ipgeo ip2country 202.173.6.0
202.173.6.0 is not in kernel ip-country DB

■「IP Geography DB」のアップデート

$ execute update-geo-ip
$ diagnose autoupdate versions | grep -A 5 Geo
IP Geography DB
---------
Version: 1.047
Contract Expiry Date: N/A
Last Update Date: Sat Mar  5 05:51:45 2016