6.2. mangleテーブル

前述したように、このテーブルは主にパケットの改変に使われる。つまり、このテーブル内では、 TOS (Type Of Service) の変更をはじめ、改変用ターゲットが大手を振って使用できる。

Caution

くれぐれも、mangle テーブルをフィルタリングに使わないように。DNATSNATマスカレード (MASQUERADE) もこのテーブルでは機能しない。

下記のターゲットは mangle テーブルでのみ有効なターゲットだ。 mangle テーブル以外で使用することはできない。

TOS ターゲットは、パケットの Type Of Service フィールドを設定または変更 (または両方) するために使う。この仕組みは、パケットをどういった具合にルーティングするかといったポリシーを、ネットワークに与えるのに利用できる。気を付けなくてはならないのは、 TOS は、インターネット上では扱いが不完全かあるいは全く考慮されておらず、ルータの多くは、 TOS フィールドの値を完全に無視したり、時には見当違いの振る舞いをしたりするということだ。つまり、設定しておいた TOS を (iproute2 を使って) ルーティング決定に利用するつもりなら話は別だが、インターネットへと出ていくパケットに TOS を設定するのは御法度だ。

TTL ターゲットは、パケットの TTL (Time To Live) フィールドを変更するのに使う。 TTL を特定の値にセットする場合などだ。活用法のひとつは、詮索好きなインターネットサービスプロバイダーにこちらの情報をさらけ出したくない場合だ。プロバイダの中には、ひとつの接続に対して複数のコンピュータをつないでいるユーザを許さないところがあり、その中にはさらに、発生する TTL の値が変化するようなホストを嗅ぎ回って、複数のコンピュータを接続している証拠のひとつとして取り沙汰するプロバイダも世に知られている。

MARK ターゲットは、パケットに特別なマークを付けるのに使う。マークの有無や、どんなマークが付いているかを iproute2 プログラムを使って調べることによって、パケットのルーティングを切り替えることができる。このマークは帯域制限や Class Based Queuing にも利用できる。

SECMARK ターゲットは、 SELinux をはじめ、セキュリティコンテキストを扱えるセキュリティ機構で使えるセキュリティコンテキストマークを、特定のパケットに付けることができる。そうしておけば、どのパケットにどのサブシステムがタッチできるかといったきめ細かなセキュリティが掛けられる。 SECMARK をコネクション単位で付けるには CONNSECMARK ターゲットが用意されている。

CONNSECMARK を使用すると、単一のパケットのセキュリティコンテキストをコネクション全体にコピーしたり、逆にコネクションからパケットへコピーしたりできる。そうしたことを行えば、 SELinux などのセキュリティ機構を利用してコネクションレベルのきめ細かなセキュリティ対策が施行できる。