Anda mahu trafik proksi SOCKS keluar melalui VPN sementara seluruh hos mengekalkan laluan biasa. Dua reka bentuk melakukannya, dan kedua-duanya berbeza dari segi apa yang rosak apabila sesuatu berlaku. Satu menolak laluan lalai ke dalam terowong dan kemudian mengelakkannya; satu lagi membiarkan jadual utama tidak berubah dan menghantar satu alamat sumber ke jadual kedua. Yang kedua lebih bersih, dan ia mempunyai perangkapnya sendiri.

Dua reka bentuk, dua jejari kerosakan berbeza

Reka bentuk terowong penuh ialah apa yang kebanyakan klien VPN lakukan secara lalai: ganti laluan lalai supaya semua mengikut terowong, kemudian kecualikan apa yang tidak sepatutnya. Ia mudah difikirkan dan sukar dikekalkan sempit, kerana setiap perkhidmatan tempatan yang anda tambah mewarisi terowong sehingga anda mengecualikannya. Mod kegagalan adalah luas, kerana satu laluan yang salah turut membawa konektiviti hos itu sendiri.

Reka bentuk pemilihan sumber berjalan sebaliknya. Jadual utama kekal seperti sebelum ini, dan satu peraturan dasar menghantar paket daripada alamat tempatan tertentu ke jadual dengan laluan lalai terowong. Tiada apa-apa lagi berubah, bermakna jejari kerosakan ialah satu alamat.

Kesempitan itu juga menjadi kekangan: reka bentuk ini hanya berfungsi jika paket keluar proksi benar-benar membawa alamat tersebut.

Apa yang tetapan external Dante lakukan

Tetapan external memilih alamat yang digunakan oleh proksi untuk sambungan keluar; ia tidak menyentuh dasar penghalaan kernel. Pemisahan itulah yang membolehkan reka bentuk kedua, dan di sinilah orang salah membaca dokumentasi. Menghalakan external ke alamat terowong menyebabkan proksi memulakan sambungannya daripada alamat itu, dan jadual penghalaan kemudian menentukan ke mana paket itu pergi.

Pendengar ialah perkara berasingan. Hadkan internal kepada klien yang sepatutnya menggunakan proksi, wajibkan pengesahan, dan tutup port dengan firewall, kerana pendengar terbuka bukan ciri keluaran VPN.

Sahkan bahawa alamat yang dikonfigurasikan benar-benar milik terowong dalam ruang nama rangkaian proksi.

Membina jadual pemilihan sumber

Untuk alamat TUN 10.90.0.2/24 dengan rakan sebaya yang boleh dicapai pada 10.90.0.1, dan nombor jadual yang tiada apa lain menggunakannya, susunannya kelihatan seperti ini:

ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100

Laluan yang tidak boleh dicapai ialah bahagian yang orang skip. Tanpanya, jadual yang laluan terowongnya hilang akan jatuh ke laluan lalai biasa dan proksi keluar secara senyap melalui WAN. Dengannya, carian gagal, yang merupakan kegagalan kelihatan dan bukan kebocoran senyap. Keutamaan peraturan juga mesti berada di hadapan apa-apa yang sepadan dengan sumber itu.

Nilai-nilai ini menerangkan satu topologi. Rakan sebaya titik-ke-titik, pengalamatan net30 dan klien yang mengagihkan awalan berbeza semuanya memerlukan laluan masing-masing, jadi salin bentuknya, bukan alamatnya.

Di mana peraturan sumber bocor

Peraturan yang sepadan dengan alamat sumber menjejaskan setiap proses yang menggunakannya, bukan hanya proksi. Jika daemon lain mengikat alamat yang sama, trafiknya juga mengambil terowong, dan kegagalan itu akan kelihatan seperti masalah perkhidmatan yang tidak berkaitan. Berikan proksi alamat yang tiada apa lain gunakan, atau terima bahawa skopnya ialah alamat dan bukan proses.

DNS ialah kebocoran yang lain. Soket penyelesai tidak semestinya menggunakan sumber data sambungan luar proksi, jadi carian nama masih boleh keluar melalui WAN. Uji penyelesaian secara berasingan daripada pembentukan sambungan, dan tentukan sama ada hasil itu boleh diterima.

IPv6 memerlukan peraturan dan laluan sendiri, kerana susunan IPv4 tidak membuktikan apa-apa tentangnya.

Pilih mengikut kegagalan yang anda boleh tahan

Pilih terowong penuh apabila hos perlu dilindungi secara keseluruhan dan anda boleh menyelenggara senarai pengecualian. Pilih penghalaan berasaskan sumber apabila hos mesti mengekalkan laluannya sendiri dan hanya satu perkhidmatan perlu dialihkan. Kedua-duanya sah; kesilapannya ialah memilih satu dan kemudian mengujinya seolah-olah yang lain.

Apa pun pilihan anda, sahkan dari kedua-dua belah: permintaan melalui proksi dan permintaan terus daripada hos, dengan alamat keluar yang diperhatikan direkodkan untuk setiap satu.

Jika terowong terputus, tentukan lebih awal sama ada proksi patut gagal atau berundur, dan biarkan jadual penghalaan menyatakan keputusan itu.

Artikel berkaitan