Penghitung TPROXY bisa naik sementara aplikasi tidak menerima apa pun. Aturannya cocok, tetapi pengiriman lokal tetap bergantung pada perutean kebijakan dan soket penerima yang kompatibel.

TPROXY di Linux dapat menyadap lalu lintas tanpa menulis ulang tujuannya seperti DNAT. Karena itu paket yang dialamatkan ke tujuan nonlokal harus mencapai soket lokal yang layak.

Ikuti jalur pengiriman

  1. Lalu lintas mencapai hos penyadapan pada antarmuka dan keluarga alamat yang dimaksud.
  2. Aturan penyadapan dan tanda paket menentukan kebijakan pengiriman lokal.
  3. Aturan kebijakan yang cocok memilih rute yang mengirimkan paket secara lokal.
  4. Proksi memakai pendengar transparan yang didukung dengan opsi soket yang diperlukan.

Contoh IPv4 dari kernel memerlukan dukungan aplikasi untuk IP_TRANSPARENT. Pendengar biasa pada porta yang sama, atau pengaturan pengikatan nonlokal global, tidak membuktikan dukungan itu.

PengamatanPemeriksaan berikutnya
Tidak ada paket masuk yang relevanJalur lalu lintas dan antarmuka masukan
Paket tiba; penghitung penyadapan tidak bergerakKeluarga alamat, rantai, dan syarat pencocokan
Aturan cocok; pengiriman lokal gagalTanda dan pemilihan rute kebijakan
Soket mendengarkan; aplikasi tidak melihat apa punKemampuan soket transparan dan pemilik pendengar
Permintaan mulai; balasan berikutnya gagalPencocokan soket terbentuk dan rute balik

Simpan konfigurasi yang dimuat dan ruang nama jaringan bersama setiap pengamatan. Aturan berikutnya dapat menimpa tanda atau memilih rute lain. Jika penyadapan terjadi di hos sementara pendengar berjalan di kontainer, rute lokal hos yang sah tidak otomatis mengirim ke kontainer itu.

Perhitungkan paket berikutnya

Contoh kernel menyertakan pencocokan soket dan jalur DIVERT yang menandai paket milik soket transparan. Menghilangkannya dapat membuat lalu lintas berikutnya berada di jalur lain meski penyadapan awal berhasil.

Gunakan mode transparan yang didukung aplikasi dan dokumentasi kernel yang sesuai untuk setiap keluarga alamat. Perintah rute lokal IPv4 tidak mengonfigurasi IPv6, dan dukungan pada satu keluarga tidak membuktikan perilaku soket keluarga lainnya.

TPROXY juga tidak menghasilkan negosiasi SOCKS. Komponen dari transparan ke SOCKS tetap harus menemukan tujuan dan bernegosiasi dengan hulu.

Beralih dari REDIRECT

Catat bagaimana aplikasi yang ada memperoleh tujuan asli. REDIRECT mengubah tujuan dan mengandalkan mekanisme pemulihan yang sesuai; TPROXY memerlukan soket transparan dan penataan peruteannya. Pilih sesuai aplikasi dan kebijakan alamat sumber.

Pasangkan penghitung dengan rute yang dipilih, kemampuan soket, dan log aplikasi sebelum mengubah mode penyadapan. Pada distribusi yang menyediakan sarana yang diperlukan, langkah pengiriman yang hilang adalah titik awal yang lebih baik daripada kompilasi ulang kernel.

Artikel terkait