Firewall distribusi Linux dapat memblokir lalu lintas VPN Anda
Dua pengelola penyaringan, satu kumpulan aturan, dan terowongan yang mendarat di zona yang salah. Kenali pemiliknya dan arahnya sebelum menambahkan aturan apa pun.
Terowongan menyala, log menyatakan tersambung, dan satu aplikasi tetap tidak bisa menjangkau apa pun. Di klien Linux itu biasanya berarti firewall distribusi menyaring jalur yang tidak pernah dikelola klien VPN. Dua pengelola dapat aktif sekaligus, masing-masing punya gagasan sendiri tentang antarmuka, zona, dan arah lalu lintas. Mengenali pemiliknya sebelum mengubah apa pun lebih cepat daripada mencoba aturan sampai sesuatu berhasil.
Temukan pengelola dan backend
Mulailah dari yang benar-benar dimuat, bukan dari yang terpasang. Sebuah distribusi dapat menyertakan firewalld, ufw, dan layanan nftables biasa, dan hanya satu di antaranya yang memiliki kumpulan aturan yang berjalan. Paket-paket itu hidup berdampingan dengan tenang, dan aturan yang dimasukkan melalui frontend yang salah tidak pernah mencapai kernel. Baca layanan aktif, lalu baca kumpulan aturan yang dihasilkannya.
Backend sama pentingnya dengan frontend. Pemasangan firewalld dapat menggerakkan nftables atau backend iptables lama tergantung versi dan konfigurasi, dan keduanya menghasilkan keluaran pemeriksaan yang berbeda. Tuliskan distribusi, versi, dan backend ke dalam tiket sebelum membandingkan sistem Anda dengan panduan mana pun.
Cocokkan arah dan antarmuka
Permintaan keluar dari klien, pendengar masuk, dan paket yang diteruskan melewati kait yang berbeda, dan aturan untuk satu tidak mencakup yang lain. Zona yang mengizinkan LAN lokal sering tidak mencakup antarmuka terowongan atau kumpulan alamat VPN. Antarmuka terowongan biasanya mendarat di zona default, yang sering lebih ketat daripada zona tempat adaptor fisik berada. Ketidakcocokan itu menjelaskan mengapa penjelajahan berfungsi di LAN dan berhenti saat terowongan menyala.
Tanyakan arah mana yang gagal sebelum memilih aturan. Aplikasi yang tidak dapat menghubungkan ke luar membutuhkan jalur keluaran, sedangkan layanan masuk membutuhkan jalur masukan pada antarmuka terowongan. Menambahkan aturan ke rantai yang salah menghasilkan perubahan yang tampak diterapkan dan tidak melakukan apa pun.
Jaga pemilik aturan tetap sepakat
Kait klien VPN, runtime kontainer, dan layanan distribusi semuanya dapat mengubah jaringan, dan mereka tidak berkoordinasi satu sama lain. Aturan yang dimasukkan dengan tangan hilang pada pemuatan ulang berikutnya, dan aturan yang disisipkan ke rantai pengelola dapat dievaluasi dalam urutan yang tidak Anda maksudkan. Gunakan konfigurasi persisten pengelola dan periksa kumpulan aturan yang dihasilkan, bukan berkas yang Anda tulis. Menonaktifkan seluruh firewall karena satu layanan tidak terjangkau menukar masalah kecil dengan masalah besar.
Penghitung sempit adalah cara murah menemukan aliran yang ditolak. Aturan pencatatan yang dibatasi pada satu tujuan dan satu port menunjukkan apakah penolakan terjadi secara lokal tanpa menangkap lalu lintas orang lain. Hapus aturan pencatatan saat penyelidikan selesai, karena itu diagnostik bukan kebijakan, dan dokumentasi zona firewalld menjelaskan bagaimana antarmuka dan layanan bergabung.
Periksa perbaikan tanpa kehilangan penguncian
Periksa status yang diterapkan dengan pengelola yang memilikinya, menggunakan perintah yang sesuai dengan backend yang Anda catat. Daftar di bawah menganggap firewalld yang bertanggung jawab; gantikan dengan padanan untuk nftables atau ufw alih-alih menjalankan semuanya. Mencampur alat dalam satu sesi adalah cara sebuah mesin berakhir dengan dua kumpulan aturan yang bertentangan.
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --list-all
sudo nft list ruleset | head -40
Perintah pertama menyebutkan zona dan antarmuka yang ditugaskan padanya, yang menunjukkan di mana terowongan sebenarnya mendarat. Yang kedua mencetak aturan dan layanan suatu zona, sehingga Anda dapat melihat apakah antarmuka VPN tercakup sama sekali. Daftar nftables adalah kebenaran dasar bagi backend yang digunakan, dan aturan yang hanya ada di berkas konfigurasi tidak muncul di sana. Bandingkan ketiga keluaran dengan aturan yang Anda tambahkan, dan ketidakcocokannya biasanya menyebut dirinya sendiri.
Lalu ulangi permintaan awal dan perilaku kegagalan yang Anda perlukan. Situs yang baru berfungsi tidaklah cukup jika perubahan yang sama menghapus penguncian klien, jadi uji juga jalur tanpa perlindungan. Catat pengelola, backend, antarmuka, dan tujuan aturan, karena pembaruan paket yang menghidupkan kembali pengelola kedua akan membangun ulang seluruh kekacauan.