Bagaimana saya bisa diam-diam menjatuhkan beberapa paket keluar?

8

Saya sedang melakukan beberapa pengujian aplikasi yang sedang saya kerjakan, dan saya harus dapat secara diam - diam menjatuhkan paket UDP keluar untuk waktu yang singkat untuk mereplikasi mode kegagalan yang mungkin.

Apakah ada cara untuk melakukan ini?

Catatan: iptables DROP tidak diam untuk pesan keluar! Ketika send()panggilan serupa atau dijatuhkan iptables, itu kembali EPERMuntuk beberapa alasan aneh (lihat di sini . Sayangnya, saya tidak dapat menggunakan jawaban itu karena tujuan saya adalah satu hop saja).

xtables-addons Dulu memiliki STEALkata kerja , tetapi dihapus beberapa tahun yang lalu tanpa alasan yang dapat saya temukan.


Saya sekarang telah mencoba menggunakan rute palsu di tabel routing, dan sayangnya, itu tampaknya memecah kedua arah lalu lintas kom.
Untuk pengujian yang harus saya lakukan, saya harus mengizinkan lalu lintas UDP masuk , dan segera setelah saya menginstal rute palsu, paket streaming yang masuk segera berhenti, meskipun sumber masih mengirimkannya.

Nama palsu
sumber
1
Jauh dari solusi yang lengkap / rapi tetapi saya membutuhkan kondisi pengujian yang sama di masa lalu. Dalam kasus saya menambahkan rute statis palsu ke server saya menghubungkan bekerja dengan baik.
steve
@steve - Rute palsu muncul untuk memecah hal-hal di kedua arah, dan saya perlu mempertahankan fungsi arah RX.
Nama Palsu

Jawaban:

2

Bagaimana dengan menambahkan antarmuka tiruan dan mengatur rute ke antarmuka itu?

# 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

Itu selalu mengirimkan paket untuk alamat (tetangga atau jarak jauh) aktif 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
yaegashi
sumber
Sayangnya, ini tampaknya melarang paket masuk yang cocok dengan rute dari antarmuka lain. Dengan demikian, itu tidak benar-benar berfungsi (itu merusak aliran UDP rx terbuka yang saya harus izinkan untuk melanjutkan).
Nama Palsu
2

Menambahkan rute melanggar lalu lintas masuk karena penyaringan jalur terbalik. Solusi sederhana: nonaktifkan penyaringan jalur balik pada antarmuka:

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

(gunakan antarmuka masuk Anda di tempat di eth0atas).

Anda juga dapat menggunakan REDIRECTtarget (mengirim paket ke, mis., Netcat mendengarkannya— nc -l -u -p 1234 > /dev/null). Versi yang lebih rumit adalah NFQUEUE.

derobert
sumber