Gunakan Kepemilikan Socket untuk Memutus Loop Pengalihan Proxy Lokal
Kecualikan socket keluar milik proses proxy itu sendiri dari pengalihan OUTPUT lokal, alih-alih menebak port sumbernya.
Sebuah proxy intersepsi lokal membuka koneksi keluar baru. Jika pengalihan OUTPUT menyeluruh juga menangkap socket tersebut, proxy itu dikirim kembali ke listener-nya sendiri.
Untuk penyiapan IPv4 iptables NAT yang sudah ada, identitas layanan khusus dapat membedakan socket tersebut:
-A OUTPUT -p tcp -m owner ! --uid-owner proxyuser \
-m multiport --dports 80,443 -j REDIRECT --to-ports 8080
Fragmen aturan ini mengasumsikan listener yang mampu melakukan intersepsi sudah ada pada port 8080 dan socket keluar proxy dimiliki oleh proxyuser. Koneksi pengguna tersebut dikecualikan dari aturan ini; koneksi yang memenuhi syarat dari pengguna lain dialihkan.
Browser biasanya memilih port sumber efemeral. Mencocokkan port sumber 80 atau 443 bukan cara yang andal untuk mengenali koneksi situs webnya atau mengecualikan proxy.
Pencocokan pemilik berkaitan dengan lalu lintas yang dihasilkan secara lokal dengan kepemilikan socket. Ini bukan pengganti kebijakan alamat sumber untuk paket yang datang dari mesin lain.
Perhatikan urutan aturan yang ada dan kebijakan jaringan. Pengalihan tidak mengubah listener SOCKS mentah menjadi adaptor intersepsi, dan IPv6 juga memerlukan konfigurasi yang sesuai.