48.9.3.4. iptables の一致オプション
異なるネットワークプロトコルは、そのプロトコルを使用して特定のパケットに一致するように設定できる特殊なマッチングオプションを提供します。ただし、最初に iptables コマンドでプロトコルを指定する必要があります。たとえば、
-p < protocol-name
> は指定されたプロトコルのオプションを有効にします。プロトコル名の代わりにプロトコル ID を使用することもできます。以下の例を参照してください。それぞれの効果は同じです。
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT
サービス定義は
/etc/services
ファイルにあります。読みやすくするために、ポート番号ではなくサービス名を使用することが推奨されます。
重要な影響
/etc/services
ファイルを保護し、承認されていない編集を防ぎます。このファイルを編集すると、クラッカーがそれを使用して、閉じたマシン上でポートを有効にすることができます。このファイルのセキュリティーを保護するには、root で以下のコマンドを入力します。
chown root.root /etc/services chmod 0644 /etc/services chattr +i /etc/services
これにより、ファイルの名前が変更されたり、削除したり、リンクを作成したりできなくなります。
48.9.3.4.1. TCP プロトコル
これらの一致オプションは TCP プロトコル(
-p tcp
)で利用できます。
--dport
- パケットの宛先ポートを設定します。このオプションを設定するには、ネットワークサービス名(www、smtp など)、ポート番号、またはポート番号の範囲を使用します。ポート番号の範囲を指定するには、2 つの数字をコロン(:
)で区切ります。例:-p tcp --dport 3000:3200
許容可能な最大有効な範囲は0:65535
です。--dport
オプションの後に感嘆符(!
)を使用して、そのネットワークサービスまたはポートを使用し ない すべてのパケットに一致します。ネットワークサービスの名前とエイリアスと、それらが使用するポート番号を参照するには、/etc/services
ファイルを表示します。--destination-port
match オプションは、--dport
と同義です。--sport
---dport
と同じオプションを使用して、パケットの送信元ポートを設定します。--source-port
match オプションは、--sport
と同義です。--sYN
- 一般に SYN パケット と呼ばれる通信を開始するように設計されたすべての TCP パケット に適用されます。データペイロードを伝送するパケットには影響はありません。--syn
オプションの後に感嘆符(!
)を使用して、すべての非 SYN パケットに一致します。--tcp-flags <tested flag list> <set flag list
> - ルールに一致する特定のビット(フラグ)が設定された TCP パケットを許可します。--tcp-flags
match オプションは、2 つのパラメーターを受け入れます。最初のパラメーターはマスクで、パケット内で検査されるフラグのコンマ区切りリストです。2 番目のパラメーターは、ルールが一致するように設定する必要があるフラグのコンマ区切りリストです。使用できるフラグは以下のとおりです。ACK
FIN
PSH
RST
SYN
URG
ALL
NONE
たとえば、以下の仕様を含む iptables ルールは、SYN フラグが設定され、ACK フラグおよび FIN フラグが設定されていない TCP パケットのみに一致します。--tcp-flags ACK,FIN,SYN SYN--tcp-flags
の後にある感嘆符(!
)を使用して、一致オプションの影響を元に戻します。--tcp-option
- 特定のパケット内で設定できる TCP 固有のオプションと一致しようとします。この一致オプションは、感嘆符(!
)で逆にすることもできます。