Terowong berfungsi untuk semua orang di belakangnya, get laluan memajukan trafik mereka, namun mesin itu sendiri tidak boleh memasang kemas kini keselamatan. Inilah bentuk biasa masalah ini: kebenaran pemajuan diberikan kepada klien, dan sambungan keluar get laluan itu sendiri tidak pernah dimasukkan ke dalam pelan. Pengurus pakej membuka soketnya sendiri, dari get laluan, ke repositori yang mungkin tidak pernah anda namakan di mana-mana dalam dasar tembok api.

Mengunci get laluan adalah betul. Menguncinya begitu rapi sehingga ia berhenti menerima tampalan ialah keputusan lain, dan biasanya keputusan yang tidak disengajakan.

Keluaran tempatan bukan pemajuan klien

Peraturan pemajuan mengawal paket yang tiba dari tempat lain dan keluar melalui get laluan. Trafik kemas kini get laluan itu sendiri tidak pernah sepadan dengannya; ia dijana secara tempatan dan melalui laluan keluaran. Perbezaan itulah yang menjelaskan kegagalan yang kelihatan mustahil sedangkan akses klien berfungsi dengan sempurna.

Ia juga menjelaskan jurang dasar yang bertahan dalam ujian, kerana pemeriksaan pantas dari komputer riba di belakang terowong membuktikan rantai pemajuan berfungsi dan tidak mengatakan apa-apa tentang sambungan hos itu sendiri. Anggap get laluan sebagai dua subjek: penghala dengan rantai pemajuan dan hos dengan rantai keluaran. Kedua-duanya memerlukan pendapat, dan biasanya hanya satu yang dituliskan.

Namakan peringkat yang gagal

Ralat kemas kini menamakan sempadan yang berbeza, dan mencapai peraturan port sebelum membaca yang mana gagal memakan satu petang. Nama repositori yang tidak dapat diselesaikan ialah persoalan penyelesai, bukan persoalan pengangkutan.

getent hosts deb.debian.org
curl -sSI https://deb.debian.org/debian/dists/stable/Release | head -n 1
apt-get -o Debug::Acquire::https=true update

Tamat masa selepas carian berjaya memindahkan persoalan ke pengangkutan: alamat mana, port mana dan proksi mana yang dikonfigurasikan benar-benar dicuba oleh pengurus pakej. Kegagalan pengesahan TLS ialah perkara ketiga yang sama sekali berbeza, dan ia bermaksud sambungan berfungsi cukup baik untuk berunding. Aduan pengesahan arkib ialah peringkat keempat, dan ia berkaitan metadata yang ditandatangani dan bukannya kebolehcapaian. Empat peringkat, empat pembaikan berbeza, dan ping sentiasa hanya menerangkan satu protokol yang tidak digunakan oleh mana-mana pengurus pakej.

Baca senarai sumber sebelum menambah peraturan

Senaraikan URI sumber yang sebenar dan konfigurasi proksi yang berkesan, bukan yang anda ingat. Peraturan yang ditulis untuk HTTP biasa tidak berguna apabila sumbernya HTTPS, dan proksi yang diketahui shell mungkin tidak kelihatan kepada perkhidmatan yang dimulakan semasa but dengan persekitaran yang berbeza.

Dokumentasi pengangkutan HTTP dalam APT merangkumi tetapan proksi persekitaran dan khusus APT, termasuk pilihan mengikut hos, dan pengangkutan HTTPSnya mempunyai tetapan pengesahan tersendiri. Laluan yang diambil pelayar dan laluan yang diambil pengurus pakej ialah laluan berasingan, walaupun pada mesin yang sama.

Perhatikan keluarga alamat yang diselesaikan oleh sumber. Peraturan yang hanya membenarkan IPv4 akan terus gagal pada hos yang sumbernya lebih suka rekod AAAA, dan ralat itu kelihatan berselang-seli kerana ia bergantung pada jawapan mana yang tiba dahulu.

Pilih satu laluan penyelenggaraan dan kekalkan

Terdapat tiga pilihan yang boleh dipertahankan: trafik penyelenggaraan melalui terowong, melalui proksi kemas kini terurus atau melalui pengecualian langsung yang sempit. Pilih satu dengan sengaja dan pastikan penyelesai bersetuju, kerana pemisahan di mana nama diselesaikan ke satu arah dan sambungan pergi ke arah lain menghasilkan kegagalan yang tiada siapa dapat jelaskan.

Apa pun yang anda pilih, ia tidak boleh menjadi sandaran tanpa had. Jika trafik keluar langsung dilarang apabila terowong mati, pengecualian penyelenggaraan yang secara senyap membenarkan segala-galanya ialah perubahan dasar yang menyamar sebagai pembaikan. Simpan titik akhir terowong itu sendiri dan keperluan bootstrap dalam kategori berasingan daripada akses repositori, kerana ia menunjuk ke destinasi berbeza dan gagal dengan cara berbeza, jadi satu pengecualian tidak boleh menampung yang lain.

Sahkan tanpa melemahkan pemeriksaan

Gunakan skop melalui tembok api yang sudah memiliki dasar itu, bukannya menambah pengurus kedua kerana satu panduan menggunakannya. Kemudian jalankan penyegaran metadata dan satu transaksi pakej sebenar di bawah dasar yang diselenggara, dan baca outputnya dan bukannya status keluar sahaja.

Kejayaan pengangkutan bukan kebenaran untuk melonggarkan pengesahan. Pengesahan arkib dan identiti pelayan TLS ialah jaminan berasingan, dan melumpuhkan mana-mana satu daripadanya untuk mendiamkan ralat mengubah apa yang anda percayai, bukan apa yang boleh anda capai.

Akhiri dengan sengaja menguji kes tanpa terowong. Mengetahui cara get laluan berkelakuan tanpa terowongnya ialah sebahagian daripada reka bentuk, menemukannya semasa gangguan bukan. Turunkan terowong, jalankan penyegaran metadata dan sahkan bahawa hos gagal dengan cara yang anda maksudkan dan bukannya secara senyap kembali ke laluan terbuka. Jauhkan kelayakan repositori dan proksi daripada diagnostik bersama, dan tinggalkan nota yang menamakan siapa pemilik laluan kemas kini.

Artikel berkaitan