Ia berfungsi pada Mac anda, jadi ia kelihatan seperti sesuatu yang boleh anda serahkan kepada pengguna. Andaian itu ialah perkara pertama yang perlu dilepaskan. Apple TN3165 menyatakan dengan jelas bahawa Packet Filter bukan API yang disokong untuk produk yang diedarkan secara umum, dan ia menganggap pentadbiran tapak yang istimewa dan terkawal sebagai kes yang munasabah. Oleh itu, kunci VPN yang dibina atas PF ialah dasar operasi tempatan dengan pemilik, bukan ciri yang boleh dihantar di dalam apl.

PF bukan permukaan pembungkusan

Perbezaan ini bukan akademik. Produk yang diedarkan yang bergantung pada PF mewarisi setiap perubahan yang Apple buat padanya, setiap konflik dengan alat lain yang juga menulis peraturan, dan tiada komitmen sokongan bahawa susunan ini akan terus berfungsi. Tapak yang mentadbir mesinnya sendiri mempunyai hubungan yang berbeza: ia boleh mendokumenkan kebergantungan, mengujinya terhadap setiap keluaran OS, dan menerima penyelenggaraan.

Sebahagian nasihat pemasangan melangkaui sempadan yang wajar dinamakan. Menulis semula seluruh set peraturan sistem supaya satu sauh dimuatkan, mengedit konfigurasi pelancaran sistem Apple, atau melumpuhkan System Integrity Protection bukan keperluan yang boleh diterima untuk resipi yang boleh diguna semula. Jika panduan yang diterbitkan memerlukan mana-mana daripadanya, ia menerangkan makmal, bukan dasar yang boleh dikerahkan.

Tulis niat keluar sebelum sintaks

Putuskan apa yang dibenarkan sebelum memilih satu kata kunci. Biasanya tiga laluan perlu wujud: pengangkutan klien VPN sendiri ke pelayannya, trafik apl yang dilindungi di dalam terowong, dan apa sahaja persediaan atau perkhidmatan tempatan yang benar-benar memerlukan laluan terus.

Beri setiap pengecualian yang dicadangkan destinasi, pengangkutan dan pemilik. Membenarkan setiap port ke satu titik hujung membenarkan jauh lebih banyak daripada satu pengangkutan yang digunakan oleh terowong, dan pendedahan tambahan itu datang tanpa sesiapa memutuskan ia sepatutnya. Membenarkan penyelesai awam ialah perangkap yang sama dalam pakaian yang lebih mesra: ia mencipta laluan DNS terus walaupun terowong mati, jadi carian nama masih bocor.

PathDestinationOwner
VPN transportGateway address, one UDP portNetwork team
Tunnel trafficInternal prefixesApplication owner
Resolver exceptionNamed internal resolverSecurity team

Ujian berguna untuk pengecualian ialah sama ada anda boleh menamakan orang yang memintanya dan kegagalan yang dihalangnya. Jika kedua-dua jawapan tidak wujud, peraturan itu mungkin jalan pintas untuk salah konfigurasi yang jika tidak akan kekal tidak kelihatan.

Nombor utun bukan identiti

MacOS mencipta antara muka terowong sebagai peranti utun, dan nombor yang diberikan kepada VPN anda tidak stabil merentas but semula, sambungan semula, atau kehadiran klien lain. Peraturan yang menyenaraikan beberapa nombor tekaan bukan dasar; ia ialah petikan satu petang.

Tambat peraturan pada sesuatu yang mengenal pasti pembekal yang dimaksudkan: pelan alamat yang diberikan oleh terowong, proses yang memiliki antara muka, atau konfigurasi yang diselenggara oleh klien VPN sendiri. Kemudian catat bagaimana pengenalan itu berfungsi, kerana orang yang menyemak peraturan itu setahun kemudian tidak akan mempunyai sejarah shell anda.

Jadikan dasar yang dimuatkan boleh diatribusikan

Nama sauh menyusun peraturan; ia tidak membuktikan bahawa dasar berkesan ialah apa yang anda maksudkan. Keutamaan antara sauh, peraturan yang dimuatkan oleh perisian lain, dan keadaan sedia ada semuanya boleh mengubah hasilnya. Semak set berkesan bersama sesiapa sahaja yang turut memiliki PF pada mesin itu, dan dokumenkan pemilikan di tempat yang sama dengan konfigurasi. Dua pemilik mengedit sauh berbeza dengan andaian berbeza ialah cara biasa kunci mendapat lubang.

Simpan set peraturan dalam laluan konfigurasi yang disokong tapak, versikannya, dan catat keluaran macOS mana yang diuji. Perubahan yang digunakan dengan tangan dan diingati oleh seorang sahaja bukan infrastruktur yang diselenggara, apa pun yang dikatakan oleh pengepala fail.

Uji peralihan, bukan keadaan bersambung

Tangkapan skrin yang diambil semasa terowong hidup hampir tidak membuktikan apa-apa. Jelajahi keadaan sebaliknya: permulaan sebelum sebarang sambungan, terowong yang berfungsi, terowong yang jatuh tanpa amaran, pemutusan yang disengajakan, dan peralihan daripada Wi-Fi ke titik panas. Setiap keadaan mempunyai jawapannya sendiri, dan yang menarik ialah kegagalan, bukan laluan gembira.

Dalam setiap keadaan, catat apa yang boleh dicapai dengan sengaja. Semak IPv4 dan IPv6 secara berasingan, uji penyelesaian nama, dan sertakan aliran yang telah ditubuhkan sebelum peralihan, kerana sambungan sedia ada tidak selalu mengikut dasar baharu. Pelayar yang gagal semasa terowong mati ialah satu titik data, bukan bukti bahawa setiap laluan lain disekat.

Akhir sekali, simpan kaedah pemulihan yang tidak bergantung pada laluan rangkaian yang anda ubah. Konfigurasi yang diketahui baik pada storan setempat dan cara yang didokumenkan untuk memuatkannya menjadikan kunci sebagai dasar; tanpanya, satu revisi buruk mengunci pentadbir keluar daripada mesin yang sepatutnya dilindungi.

Artikel berkaitan