pingコマンドオプションについて学んでいます。その中でパケットのフラグを設定する-mオプションが見つかりました。
次のコマンドは、10 とマークされたパケットを 192.168.2.65 に送信します。
ping -m 10 192.168.2.65
以下のコマンドを使用すると、宛先からパケットを受信できます。
iptables -A INPUT -m mark --mark 0xa -j ACCEPT
しかし、上記のコマンドは表示されたパケットを受信できませんでした。上記のiptablesコマンドは何も返しません。
注:私たちは皆rootアクセス権を持っています。
答え1
このタグは内部的であり、パケットやヘッダーのどこにも含まれません。
INPUT
つまり、実際のアウトバウンド接続を作成すると、その情報が失われ、ターゲットサーバーのテーブルには表示されませんが、元のシステムOUTPUT
のテーブルには表示されません。
pingでタグをサポートする目的は、アウトバウンドルーティングルールを許可することです。
答え2
@Julie Pelletierの答えは100%正確ですが、理解できない場合があります。
まず、コメントで何度も言及したように、マークアップはいいえ回線のイーサネットパケットに変換されます。したがって、サーバーAでサーバーBをpingすると、サーバーBはタグを検出しません。何でもするには、サーバーAを単独で使用する必要があります。したがって、OUTPUTチェーンにルールを挿入/追加する必要があります。送信者何でも見なさい。
それでは、どのように使用しているかを見てみましょうiptables
。まず、OUTPUTでどのルールが有効になっているかを確認します。
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
root@roran:~#
まあ、ルールはありません。ルールを定義しましょう。
root@roran:~# iptables -I OUTPUT -m mark --mark 0xa -j ACCEPT
root@roran:~#
ご覧のとおり、出力はありません。ただし、カーネルテーブルには次のエントリがあります。
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 177 packets, 120K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
まだパケットが送信されていないため、「pkts」列と「bytes」列は両方とも0です。今、別のサーバーにpingを送信すると、いいえタグ設定:
root@roran:~# ping -c 1 bermuda
PING bermuda (192.168.178.2) 56(84) bytes of data.
64 bytes from bermuda (192.168.178.2): icmp_seq=1 ttl=64 time=0.331 ms
[... some more lines omitted]
その後もカーネルテーブルはまだ何も一致しません。
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 348 packets, 160K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
次に、タグセットを使用してpingを試してみてください。
root@roran:~# ping -m 10 -c 1 bermuda
PING bermuda (192.168.178.2) 56(84) bytes of data.
64 bytes from bermuda (192.168.178.2): icmp_seq=1 ttl=64 time=0.324 ms
[... some more lines omitted]
テーブルをもう一度見てください。
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 631 packets, 319K bytes)
pkts bytes target prot opt in out source destination
1 84 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
これで、ルールは84バイトの長さのパケットを見つけました。
試したい場合は、タグ付きパケットがコンピュータから離れないようにし、タグがあるかどうかにかかわらず他のコンピュータをpingするのを防ぐために、iptables -F OUTPUT
テーブルを消去してください。iptables -I OUTPUT -m mark --mark 0x0a -j REJECT
表示されたパケットはルールに従って破棄されるため、応答を受け取っていないことがわかります。