やんちゃなネットワーク機器達が、今夜も寝かせてくれません。(笑)
おーねーがーいーだーかーらー、いーうーこーとーきーいーてーTωT
FORTIGATE触りたい…。TωT

※本当に寝床横にFORTIGATE 200Aが眠ってます。
※Catalyst 29[12|24]XLとIntel Pro1000が相性悪いのは有名な話(ぼくだけ?)

JunosとJunier MAG(SA)を組み合わせる時のポリシー設定

はい、今日も寝てないので、さくっといきましょう。
結論から言います。
HTTPS偽装…もとい、SSL通信する時は、UTMのポリシー設定に気を使う必要があります。

例えば、こんな設定をしたいとき。

SSL-VPNアプライアンスに、icmpとSSLをPermitしたい時、ついついこう書きたくなってしまうとします。
以下、Juniper SRX(junos)を例とします。

set security policies from-zone untrust to-zone dmz policy SSL-VPN match source-address any
set security policies from-zone untrust to-zone dmz policy SSL-VPN match destination-address SSLVPN_VIP
set security policies from-zone untrust to-zone dmz policy SSL-VPN match application junos-https
set security policies from-zone untrust to-zone dmz policy SSL-VPN match application junos-icmp-ping
set security policies from-zone untrust to-zone dmz policy SSL-VPN then permit

この時、以下のような症状が発生します。

  • SSL-VPNの通信ができない。
  • アプライアンスのウェブページ(HTTPS)は表示される。
  • icmpは通る。

つまり、443/tcpの通信に対して、ファイヤーウォールで挙動が変わっているように想えます。

対処法

junos-httpsが阻害の原因のようなので、代わりにapplicationを独自に定義する事で解決します。

set applications application SSL-VPN protocol tcp
set applications application SSL-VPN destination-port 443
set applications application SSL-VPN description "for MAG SSL-VPN"

UTMの傾向と対策

さて、そもそもCiscoIOSのようなルータとUTMの違いなのですが、ルータだとL4までしかACLが書けない事に対し、UTMでは通信の内容(アプリケーション)に対してもフィルタを掛ける事が可能です。
UTMの仕組みとして、通信の中身の暗号化有無に関わらず、通信の中身ではなく通信のシグネチャ(特徴)を監視している事が挙げられます。
これにより、例えばアンチウィルスライセンスを入れるとクライアントやサーバ上でパケットを展開する事なく遮断できたり、今回のようにSSLっぽい通信を遮断する事ができます。
(もちろん、追加ライセンスを入れるとASICではなくCPUで処理するので遅くなりますが…。)

今回、上記でアプリケーションの定義をした事により、「443/tcp宛のパケットはノーチェックで」といった定義をしています。
SSL-VPNに限らず、SSLトンネリングツールのstone( http://www.gcd.org/sengoku/stone/Welcome.ja.html )といったようなSquid Proxyを超えられるようなSSL通信を、明示的に許可したり塞いだりする事も可能です。

また、上記のアプリケーションの定義は、偽装したポートに対して通信のフィルタを掛ける場合にも有効です。
例えば、人間よく8080/tcpにhttpdを立ちあげたくなるものですが、このばあいDestPort 8080/tcpにApplication junos-httpを定義する事で、http以外のアクセスを弾いてくれるようにもなります。

(心の声:こういう時に、こう、ぜひ室見立華さんのお説教を・・・。)

いろんな心の声

  1. SSG550MがPentium4で、SSG320MがCeleron 2.0GHzだった時の衝撃。
     ギガビット処理するのに別にCPUスペックは要らないのですが、いまだにチップセット含めチップが手に入る事が衝撃です。
     ちなみに、シリアルポートにAMI BIOSが出てきます・・・。
  2. CPUといえば、たまにConsoleServer等でi386が現役だったりする件。
     まぁ、足回り16bitでもシリアル32ポート動かすくらいなら現役ですし、互換チップとか普通にあった時代ですしね…。
     あと、色々素直なのと、放熱周りが楽なあたりでしょうか。
     数年後にはARMか何かにでも変わってる頃でしょうか。
  3. FreeBSD分が足りない。
     OSXやないねん。FreeBSDやねん。ほら、栄養分とか言うやろ?シュークリーム分とか言うやろ?
     それと同じで、FreeBSD分が足らへんねん。
     ※デビューはFreeBSD 2.2.6R on PC-9821 V10です。
     4.11までは仕事で普通に使ってました。。。

おあとがよろしいようで。

元記事はこちらです。
TIPS:Juniper SRXとJuniper MAGを組み合わせる時のjunosポリシー設定