Linux プラットフォームでのエージェントの適用
Linux プラットフォームでは、エージェントは iptables、ip6tables、または ipset を使用してネットワークポリシーを適用します。ホストでエージェントを有効にすると、デフォルトで iptables を制御およびプログラムします。IPv6 ネットワークスタックが有効になっている場合、エージェントは、ip6tables を使用して IPv6 ファイアウォールを制御します。
Linux iptables または ip6tables
Linux カーネルには、IPv4 および IPv6 パケットフィルタルールのテーブルをセットアップ、維持、および検査するために使用される iptables および ip6tables があります。iptables および ip6tables は、多数の定義済みテーブルで構成されています。各テーブルには、事前定義されたチェーンが含まれており、ユーザー定義のチェーンを含めることもできます。これらのチェーンには一連のルールが含まれており、各ルールでパケットの一致基準を指定します。事前定義されたテーブルには、raw、mangle、filter、および NAT が含まれます。事前定義されたチェーンには、INPUT、OUTPUT、FORWARD、PREROUTING、および POSTROUTING が含まれます。
Secure Workload エージェントは、パケットを許可またはドロップするルールを含むフィルタテーブルをプログラムします。フィルタテーブルは、事前定義されたチェーンである INPUT、OUTPUT、および FORWARD で構成されます。これらに加えて、エージェントはカスタム TA チェーンを追加して、コントローラからポリシーを分類および管理します。これらの TA チェーンには、ポリシーから派生した Secure Workload ルールと、エージェントによって生成されたルールが含まれています。エージェントは、プラットフォームに依存しないルールを受信すると、それらのルールを解析して iptable、ip6table、または ipset ルールに変換し、フィルタテーブルの TA 定義チェーンに挿入します。ファイアウォールのプログラミング後、エージェントはルールやポリシーの逸脱がないかファイアウォールを監視し、逸脱がある場合は、ファイアウォールを再プログラミングします。また、ファイアウォールでプログラムされたポリシーを追跡し、ポリシーのステータスを定期的にコントローラに報告します。
この動作を表す例を次に示します。
プラットフォームに依存しないネットワーク ポリシー メッセージの一般的なポリシーの構成は次のとおりです。
source set id: “test-set-1”
destination set id: “test-set-2”
source ports: 20-30
destination ports: 40-50
ip protocol: TCP
action: ALLOW
. . .
set_id: “test-set-1”
ip_addr: 1.2.0.0
prefix_length: 16
address_family: IPv4
set_id: “test-set-2”
ip_addr: 3.4.0.0
prefix_length: 16
address_family: IPv4
エージェントは、他の情報とともに、このポリシーを処理し、プラットフォームに固有の ipset および iptabels ルールに変換します。
ipset rule:
Name: ta_f7b05c30ffa338fc063081060bf3
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
1.2.0.0/16
Name: ta_1b97bc50b3374829e11a3e020859
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
3.4.0.0/16
iptables rule:
TA_INPUT -p tcp -m set --match-set ta_f7b05c30ffa338fc063081060bf3 src -m set --match-
˓→set ta_1b97bc50b3374829e11a3e020859 dst -m multiport --sports 20:30 -m multiport --
˓→dports 40:50 -j ACCEPT
不具合
ipset カーネルモジュール
エージェント設定プロファイルで、適用が有効になっており、ルールの維持が無効になっている場合、Linux ホストで実行されているエージェントにより、ipset カーネルモジュールの max_sets 設定が十分大きいことが確認されます。変更が必要な場合、エージェントは ipset カーネルモジュールを新しい max_sets 値でリロードします。[ルールの維持(Preserve Rules)] が有効になっている場合、エージェントにより現在の ipset モジュールの max_sets 値がチェックされますが、変更はされません。現在設定されている max_sets 値は、cat /sys/module/ip_set/parameters/max_sets で確認できます。
ホストファイアウォールのバックアップ
エージェント設定プロファイルで初めて適用が有効になると、Linux ホストで実行されているエージェントは、ホストのファイアウォールを制御する前に、ipset および ip[6] テーブルの現在のコンテンツを /opt/cisco/tetration/backup に保存します。
適用の設定を連続して無効化または有効化しても、バックアップは生成されません。このディレクトリは、エージェントのアンインストール後に削除されません。