Laptop di belakang router rumah tanpa penerusan port tetap menerima koneksi SSH yang datang melalui VPN. Itu bukan kontradiksi, karena dua perangkat berbeda menilai dua paket berbeda. Router meneruskan transport terenkripsi, dan host memutuskan apa yang dilakukan dengan paket terdekripsi yang tiba di antarmuka terowongannya. Menjaga kedua keputusan itu tetap terpisah adalah seluruh latihannya.

Router meneruskan terowongan, host menilai paket

Gambarkan jalur dari sumber jarak jauh ke layanan sebelum Anda melihat satu aturan pun. Bagian luar adalah transport VPN, yang ditangani router dan gateway. Bagian dalam dimulai saat titik akhir melepas lapisan terowongan dan host menerima paket yang dialamatkan ke alamat VPN-nya.

Gabungkan kedua bagian itu dan router mendapat pujian atas keputusan yang diambil host. Halaman penerusan port atau log router hanya menggambarkan percakapan luar, dan tak satu pun mengatakan lalu lintas terdekripsi mana yang akan diterima host. Host menerapkan kebijakan masuknya sendiri pada paket dalam, sama seperti pada paket apa pun yang tiba di antarmuka. Di kebijakan itulah pertanyaan paparan sebenarnya diputuskan.

Pendengar wildcard bukan layanan publik

Di Linux, mengikat ke INADDR_ANY berarti setiap alamat lokal, sehingga layanan dapat menjawab pada antarmuka terowongan yang tidak pernah ia sebut. Referensi soket IP menjelaskan pengikatan itu, dan layak dibaca sebelum menarik kesimpulan dari daftar pendengar. Entri wildcard adalah fakta tentang soket, bukan pernyataan tentang keterjangkauan.

Dua baris di bawah adalah layanan yang sama dalam dua pengikatan berbeda, dan perbedaannya adalah seluruh jawaban atas apakah antarmuka itu penting. Baca di alamat mana soket berada sebelum hal lain.

ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))

Sebutkan susunan yang bisa mencapai port

Tiga susunan menempatkan paket pada antarmuka itu, dan mereka punya pemilik berbeda. Menyebutkan yang benar menentukan siapa yang harus mengubah kebijakan.

ArrangementWhat reaches the portWhere the decision lives
Another permitted VPN peerA packet from the same tunnel subnetGateway forwarding policy and host input rules
A deliberate public forwardTraffic the gateway publishes on purposeGateway service definition
A subnet routed behind the gatewayClient traffic from the far sideGateway route and host input rules

Hasil peramban yang menunjukkan alamat keluar publik tidak mengatakan apa pun tentang ketiganya, karena ia menggambarkan bagaimana lalu lintas keluar pergi dan bukan apa yang diizinkan bagi lalu lintas masuk. Bekerjalah mundur dari pendengar dan alamat sumber di log layanan. Jika sumbernya peer terowongan lain, kebijakan gateway adalah dokumen yang menarik. Jika itu alamat yang diterjemahkan, temukan terjemahannya sebelum mengubah aturan.

Batasi layanan pada jalur yang Anda maksudkan

Jika SSH hanya dibutuhkan dari jalur manajemen, tuliskan jalur itu sebagai rentang sumber plus antarmuka. Lalu batasi aturan masuk host berdasarkan antarmuka, tujuan, dan sumber alih-alih berdasarkan nama jaringan, karena nama yang tampak privat bisa mewakili alamat apa pun. Sisakan rute bagi orang yang akan memperbaiki masalah berikutnya.

nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input

Aturan yang menyebut antarmuka terowongan dan rentang manajemen menyatakan maksud di satu tempat. Bandingkan dengan aturan yang ditulis untuk jaringan Wi-Fi, yang tidak mengatakan apa pun tentang lalu lintas terowongan terdekripsi. Ketika kedua lapisan tidak sepakat, kebijakan host adalah yang ditemui paket.

Biarkan login dan patch tetap persis di tempatnya; mencapai port tidak pernah sama dengan diizinkan menggunakannya. Catat keluarga alamat dan waktu untuk setiap sumber yang tidak dikenal, dan selidiki sebelum menyalahkan fitur atau kerentanan. Aturan yang menerima setiap peer terowongan adalah desain berbeda dari yang menerima subnet manajemen, dan tidak ada baris log yang akan mengatakan mana yang dimaksud.

Terima perbaikan dengan satu keberhasilan dan satu penolakan

Buktikan kedua belahnya: satu koneksi yang disetujui berhasil dan satu jalur yang dikecualikan ditolak. Penolakan adalah bagian yang dilewati orang, dan itulah yang menunjukkan aturan itu bekerja alih-alih berdiri di samping nilai bawaan yang mengizinkan. Uji dari sisi yang dikecualikan alih-alih menalar tentangnya.

Ulangi pasangan itu setelah menyambung ulang, karena terowongan yang kembali dengan nama antarmuka berbeda dapat diam-diam melewati aturan yang dibatasi untuk yang lama. Batas yang penting adalah yang diterapkan host pada paket yang benar-benar diterimanya.

Artikel terkait