LocalSubnet dalam aturan firewall SMB tidak akan mencakup klien VPN
Aturan izin LocalSubnet mencakup subnet milik server sendiri, bukan kumpulan VPN yang dirutekan. Bandingkan alamat sumber yang dilihat server sebelum memperluas cakupan.
Desktop kantor mencapai share, pengguna VPN kehabisan waktu, dan akun yang sama berfungsi dari hotspot ponsel. Izin share jarang menjadi pembedanya; alamat yang tiba di server file biasanya menjadi pembedanya. Aturan yang dibatasi ke LocalSubnet mengizinkan subnet terpasang milik server sendiri, dan kumpulan VPN yang dirutekan terpisah bukan salah satunya. Dua desain menutup celah itu, dan keduanya meninggalkan catatan yang sangat berbeda.
Dua desain, satu gejala
Desain pertama menambahkan kumpulan VPN ke kondisi alamat jarak jauh aturan. Server lalu melihat alamat tunnel setiap klien, sehingga lognya dapat memisahkan satu pengguna jarak jauh dari yang lain. Desain kedua merutekan lalu lintas VPN melalui gateway yang menerjemahkannya ke alamat LAN sebelum server melihatnya. Itu memulihkan konektivitas dan menghapus pembedaan dalam langkah yang sama.
Tabel itu menjelaskan peran, bukan alamat, dan prefiks Anda sendiri menentukan baris mana yang berlaku. Cetak nilai sebenarnya dari server alih-alih menyalin contoh dari pos blog:
Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixLength
Tabel itu adalah alat bantu keputusan, bukan klaim tentang setiap penerapan. Host dengan antarmuka tambahan, tautan situs kedua, atau mask berbeda memiliki kumpulan lokal yang berbeda.
| Path the packet takes | Address the server records | Filter scope that admits it | What the log can still tell you |
|---|---|---|---|
| Desktop on the server LAN | Its own LAN address | LocalSubnet or the LAN prefix | Which workstation connected |
| Client on the routed VPN pool | Its tunnel address | The VPN pool as a remote address | Which VPN account connected, if the pool is logged |
| Client behind source NAT at the gateway | The gateway's LAN address | The gateway address | Only that some VPN user connected |
| Site-to-site gateway | The remote gateway's tunnel address | The remote site's prefix | Which site connected, not which user |
Referensi New-NetFirewallRule dari Microsoft mendokumentasikan kondisi alamat jarak jauh dan kata kunci LocalSubnet. Bacalah sebelum Anda memutuskan bahwa kata kunci itu berarti semua alamat privat, karena tidak demikian.
Bandingkan apa yang benar-benar diterima server
Baca aturan yang berlaku, bukan aturan yang diingat seseorang pernah dibuatnya. Periksa bahwa aturan itu diaktifkan, berlaku pada profil aktif, dan kondisi alamat jarak jauhnya cocok dengan sumber yang dilihat server. Aturan yang hanya diaktifkan pada profil Domain tidak melakukan apa pun ketika adaptor telah berpindah ke Public setelah perubahan jaringan.
Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing' | Get-NetFirewallAddressFilter
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultInboundAction
Perintah pertama mencetak filter alamat yang terpasang pada aturan berbagi file, dan yang kedua menunjukkan profil mana yang aktif serta bagaimana lalu lintas masuk yang tidak cocok diperlakukan. Cari juga aturan pemblokiran dan kebijakan yang dikelola secara terpusat. Aturan pemblokiran lebih diutamakan daripada aturan izin, dan kebijakan yang menonaktifkan penggabungan aturan lokal dapat membuat pengecualian lokal baru menjadi tidak berfungsi.
Itulah kasus ketika aturan tampak benar di konsol dan tidak berpengaruh pada lalu lintas. Periksa penetapan profil pada saat yang sama, karena laptop yang bergabung ke jaringan lain dapat berpindah ke profil Public tanpa siapa pun menyentuh firewall.
Uji transport sebelum login
Pisahkan keterjangkauan dari autentikasi. Pendengar di TCP 445 membuktikan bahwa layanan terikat ke port; itu tidak membuktikan bahwa paket jarak jauh dapat mencapainya. Koneksi TCP yang selesai, sebaliknya, belum mengatakan apa pun tentang penyiapan sesi SMB atau izin share. Uji handshake dari kedua sisi sebelum Anda mengedit aturan.
Test-NetConnection -ComputerName files.corp.example -Port 445
Test-NetConnection -ComputerName files.corp.example -Port 445 -InformationLevel Detailed
Perintah pertama melaporkan apakah handshake TCP berhasil dari mesin tempat Anda menjalankannya, dan yang kedua menambahkan alamat yang telah diselesaikan serta detail antarmuka. Jalankan dari klien VPN dan dari desktop kantor, lalu bandingkan. Ping tidak menjawab kedua pertanyaan itu, karena ICMP dapat diblokir sementara SMB terbuka, atau diizinkan sementara firewall menjatuhkan 445.
Jika handshake gagal hanya dari VPN, cakupan sumber adalah tersangka utama. Jika berhasil dan share masih menolak Anda, beralihlah ke diagnosis sesi dan izin SMB alih-alih mengedit aturan firewall.
Ketika NAT sumber menghapus pembedaan
Dengan penerjemahan di jalur, server tidak dapat membedakan klien VPN satu per satu berdasarkan alamat. Setiap pengguna jarak jauh datang sebagai gateway. Otorisasi apa pun yang bergantung pada membedakan mereka harus ditegakkan di tempat identitas mereka masih terlihat, yang biasanya berarti konsentrator VPN atau proksi pengautentikasi. Aturan firewall dapat mengizinkan lalu lintas; ia tidak dapat memulihkan pembedaan yang telah dihapus oleh penerjemahan.
Setelah alamat gateway itu diizinkan, setiap pengguna jarak jauh tercatat di bawah satu alamat, sehingga aturan memberikan seluruh kumpulan kepada siapa pun yang dapat mencapai gateway. Jika keputusan per pengguna penting, pertahankan alamat asli tetap terlihat atau pindahkan keputusan ke lapisan yang masih mengenali pengguna. Jika tidak, setiap pengguna jarak jauh mewarisi izin dari satu alamat yang dapat dilihat server, dan jejak audit tidak dapat membedakan mereka setelahnya. Itu keputusan desain, bukan detail firewall.
Pilih dengan sengaja di antara kedua desain. Batasi aturan ke kumpulan VPN yang sebenarnya ketika server harus melihat siapa yang terhubung, dan terima jalur yang diterjemahkan hanya ketika server benar-benar tidak memerlukan informasi itu. Catat rentang sumber yang dipilih di samping aturan, karena orang berikutnya yang men-debug ini akan melihat tabel alamat lebih dulu.