発信パケットを自動的にドロップする方法は?

発信パケットを自動的にドロップする方法は?

開発中のアプリケーションに対していくつかのテストを行っていますが、次のことができるはずです。何も言わずに可能なエラーモードを複製するために、短い時間に出てくるUDPパケットをドロップします。

これを行う方法はありますか?

メモ:iptables DROP 送信されたメッセージについて沈黙しません!send()通話が切れた場合、または同様の場合は、奇妙な理由でiptables電話が返されます(参照EPERMここ。残念ながら、目的地は1ホップの距離にあるため、この回答は使用できません。

xtables-addons 使用されるSTEAL動詞があります。しかし、数年前に削除され、理由が見つかりません。


これで、ルートテーブルで偽のルートを試してみましたが、残念ながらこの方法は機能しないようです。両方通信トラフィックの方向。
私がしなければならないテストのために、私は持つ許可する記入UDP トラフィックは、偽のパスをインストールした後に送信元からパケットを送信しているにもかかわらず、着信パケット ストリーミングはすぐに停止しました。

ベストアンサー1

仮想インターフェイスを追加し、そのインターフェイスへのパスを設定するにはどうですか?

# ip link add dummy0 type dummy
# ip link set dev dummy0 up
# ip route add 8.8.8.8/32 dev dummy0
# ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2015ms

常にパケットをすべての(ネイバーまたはリモート)アドレスのアップストリームに送信しますdummy0

# tshark -i dummy0
Running as user "root" and group "root". This could be dangerous.
Capturing on 'dummy0'
  1   0.000000   10.10.0.59 -> 8.8.8.8      ICMP 98 Echo (ping) request  id=0x1ce0, seq=1/256, ttl=64
  2   1.007348   10.10.0.59 -> 8.8.8.8      ICMP 98 Echo (ping) request  id=0x1ce0, seq=2/512, ttl=64
  3   2.015394   10.10.0.59 -> 8.8.8.8      ICMP 98 Echo (ping) request  id=0x1ce0, seq=3/768, ttl=64

おすすめ記事