ASAのport-objectとservice-objectの違い

ASAのACLでは基本的にobjectが使用される。
セグメントやポート番号などをobjectとして作成し、
それをACLの対象として割り当てる方式だ。

もちろんACLに直接IPを記載しても良いのではあるが、
ASAのACLの性質上とても見づらくなる可能性もあり、
最近はあまり見かけなくなってきた。

objectは慣れないと理解しづらい部分もある。
特にポート番号部分のobjectに少々癖があるのでメモしておきたい。


port-object


こちらは一般的なFW製品にあるようなobjectを作成して、
グループでまとめてといった方法とは異なり、
直でobject-groupに記載していく形になる。

作成方法は以下になる。
元々object-groupなのでそのまま複数記載可能。

object-group service TCP-HTTP tcp
port-object eq 80
port-object eq 8080


ACLへの適用は以下になる。

access-list TEST extended permit tcp any any object-group TCP-HTTP


通常のACLと同様にpermit/denyの後にprotocolを指定して、
「eq xxx」の位置と同じ箇所でobjectを指定する形になる。
適用に関しては違和感はあまりないので取っ付き易いかなと思う。


service-object


こちらは一般的なFW製品にあるように個別のobjectを作成して、
必要に応じてグループでまとめていく方式になる。
作成に関してはあまり違和感なく入れると思う。

作成方法は以下になる。

■個別に作成
object service TCP-80
service tcp destination eq 80
object service TCP-8080
service tcp destination eq 8080


■必要に応じてグループ化
object-group service TCP-HTTP
service-object object TCP-80
service-object object TCP-8080


個別に作成しているため、グループ化の際にTCPやUDPを混ぜることができる。

ACLへの適用は以下になる。

access-list TEST extended permit object TCP-HTTP any any


このパターンでは通常のACLでprotocolを指定する箇所にobjectを適用する。
少々違和感があるが、そういうものだと覚えるしかない。


ちなみに、port-objectなのにprotocol部分へ適用しようとするとエラーになる。
逆に、service-objectなのにポート番号部分へ適用しようとしてもエラーになる。
ASAはConfigの書き方によって適用すべき箇所をちゃんと把握しているようだ。

個人的にはobjectの考え方は合わせたいのでservice-objectをよく使っているが、
人によって様々ではあるので、やりやすい方法で良いと思う。


以上。



Cisco ASA 5506-X Network Security Firewall Appliance


人気記事