ZeroTier ke LAN: aturan rute UFW, bukan izin port
Mengizinkan port di gateway tidak sama dengan meneruskan ke host di belakangnya. Atur rute terkelola, aktifkan transit, dan pilih jalur balik.
Menjangkau printer di LAN kantor melalui anggota ZeroTier terdengar seperti satu aturan, padahal sebenarnya ada tiga keputusan di tiga tempat berbeda. Overlay harus tahu di mana LAN berada, host Linux harus bersedia meneruskan paket, dan LAN harus tahu cara mengirim balasan kembali. Aturan masuk yang membuka port di gateway tidak menyentuh satu pun dari itu. Itu alat yang salah pada host yang benar.
Tiga pekerjaan, tiga pemilik
Rute terkelola milik konfigurasi jaringan ZeroTier. Rute itu memberi tahu anggota bahwa sebuah prefiks dapat dijangkau melalui alamat anggota tertentu.
Penerusan milik kernel Linux dan pihak yang memiliki kebijakan firewallnya. Penerusan menentukan apakah paket yang tiba di overlay akan keluar lagi melalui antarmuka fisik. Host yang tidak meneruskan akan membuang paket itu diam-diam setelah menerimanya. Pengirim melihat batas waktu habis dan tidak ada apa pun yang muncul di log layanan.
Jalur balik milik LAN. Host dan router-nya perlu tahu bahwa prefiks overlay dapat dijangkau melalui alamat LAN gateway Anda, atau ada sesuatu yang harus menerjemahkan lalu lintasnya agar pertanyaan itu tidak pernah muncul.
Masing-masing bisa benar sementara yang lain gagal, dan itulah sebabnya uji yang hanya mem-ping gateway tidak membuktikan apa pun tentang layanan di belakangnya.
Arahkan rute terkelola ke anggota
Tambahkan rute untuk prefiks LAN yang dimaksud melalui alamat overlay gateway, bukan melalui alamat LAN-nya. Alamat overlay adalah alamat yang bisa dijangkau anggota lain; alamat LAN hanya bermakna di kabel.
Anggota harus menerima rute terkelola agar rancangan ini bekerja, dan jaringan lokal mereka sendiri tidak boleh sudah memakai prefiks yang Anda iklankan. Laptop jarak jauh yang di rumah berada di 192.168.60.0/24 juga tidak bisa merutekan 192.168.60.0/24 melalui overlay.
Jaga prefiks yang diiklankan sesempit yang diizinkan tugas. Mengiklankan agregat yang lebih besar untuk memengaruhi preferensi juga bisa mengklaim ruang alamat yang bukan milik Anda, dan konflik yang muncul terlihat pada perangkat yang terhubung ke kedua jaringan. Itu juga bisa membuat anggota lebih memilih jalur yang tidak menuju ke mana pun. Jaga rute tetap jujur dan biarkan kebijakan mengerjakan sisanya.
Tuliskan prefiks dan alamat anggota di catatan yang sama dengan aturan firewall, karena kegagalan paling umum adalah rute yang menunjuk ke anggota yang salah.
Aktifkan transit di kernel
Baca nilai penerusan yang sedang berjalan sebelum mengubah apa pun, lalu jadikan pengaturan itu permanen melalui mekanisme yang sudah dipakai sistem Anda, bukan melalui perintah sekali pakai yang hilang saat reboot.
Jika UFW yang memiliki kebijakan, aturan rutenya menyatakan penerusan untuk pasangan sumber, tujuan, dan antarmuka. Aturan itu terpisah dari aturan masuk yang membuka layanan di gateway itu sendiri:
sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose
Nama antarmuka adalah perangkat overlay yang sebenarnya pada host itu, yang bisa Anda baca dari ip link; nama itu bukan string tetap di semua pemasangan. Jika host meneruskan secara default dan UFW tidak ada di jalurnya, aturan rute akan diabaikan dan pengaturan kernel-lah yang menentukan.
Pilih bagaimana balasan kembali
Dengan pemeliharaan sumber, layanan di LAN melihat alamat overlay yang sebenarnya dan membalasnya. Itu memerlukan rute di host LAN atau router-nya yang mengarahkan prefiks overlay ke gateway Anda, dan itu perubahan di luar kotak Linux.
Ketika rute itu tidak bisa ditambahkan, penerjemahan sumber yang terbatas membuat permintaan tampak berasal dari gateway di LAN. Balasan lalu kembali secara lokal dan tidak perlu perubahan perutean LAN, dengan konsekuensi kehilangan sumber asli di log layanan.
Batasi penerjemahan pada sumber overlay dan tujuan LAN yang spesifik. Menerjemahkan semua yang keluar dari antarmuka LAN adalah versi luas yang kemudian mengejutkan siapa pun yang membaca aturannya, dan itu juga menyembunyikan lalu lintas yang seharusnya diblokir.
Tidak ada dari kedua pilihan itu yang memberi akses tanpa diminta dari LAN kembali ke anggota overlay sembarang. Jika itu diinginkan, itu aturan terpisah dengan tinjauannya sendiri.
Uji dari anggota sungguhan
Hubungkan dari anggota lain, bukan dari gateway, dan minta satu layanan yang diizinkan. Lalu coba layanan yang seharusnya tetap tertutup, dan ulangi kedua uji itu setelah menyambung ulang dan setelah gateway dinyalakan ulang.
Anggota yang melaporkan ONLINE, atau ping yang berhasil ke alamat overlay gateway, tidak memvalidasi rute, aturan penerusan, atau jalur balik:
zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered
Perintah kedua menunjukkan antarmuka mana yang akan dipakai paket menuju host LAN, dan yang ketiga menunjukkan apakah aturan rute ada dalam bentuk yang Anda maksudkan. Jika keduanya tampak benar dan layanan masih habis waktu, jalur balik adalah tersangka yang tersisa.