Mengapa Samba Menolak Klien VPN yang Bisa Mencapai Server
Klien VPN bisa mencapai server Samba dan tetap ditolak oleh hosts allow. Periksa sumber yang dilihat smbd dan kebijakan tingkat berbagi sebelum mengedit.
Klien VPN melakukan ping ke server file, menyelesaikan namanya, dan tetap tidak bisa membuka berbagi. Kebijakan host Samba adalah salah satu dari empat lapisan yang dapat menolak koneksi itu, dan itulah yang orang edit paling akhir. Daftar izin dievaluasi terhadap alamat sumber yang benar-benar diterima smbd, yang mungkin bukan alamat yang dianggap dimiliki klien. Menentukan sumber itu dengan benar mengubah masalah izin yang kabur menjadi perubahan konfigurasi satu baris.
Empat lapisan yang gagal dengan pesan yang sama
Penolakan bisa datang dari rute, firewall host, kebijakan host Samba, atau identitas SMB. Setiap lapisan menghasilkan pesan ke klien yang kurang lebih sama, karena itu menebak menghabiskan satu sore. Mengurutkan pemeriksaan dari jaringan ke dalam menghilangkan sebagian besar tebakan.
Mulailah dari transport. Jika port 445 tidak pernah mencapai server, tidak ada pengaturan Samba yang penting, dan tangkapan pada antarmuka server menyelesaikannya dalam hitungan detik. Berikutnya adalah firewall host di server itu sendiri, yang dapat membuang sumber yang diizinkan sebelum smbd melihatnya. Hanya setelah keduanya lolos, daftar izin menjadi kandidat. Autentikasi datang terakhir, karena kegagalan login dan penolakan host terlihat berbeda di log server, bahkan saat klien melaporkan keduanya sebagai akses ditolak. Urutan lebih penting daripada alat, karena setiap lapisan punya perintah yang menjawabnya.
Temukan alamat sumber yang benar-benar dilihat smbd
Dengan akses melalui rute, server biasanya melihat alamat klien dari kumpulan VPN. Dengan penerjemahan sumber di gateway, ia justru melihat alamat LAN gateway, dan setiap klien di belakang gateway itu menjadi tak bisa dibedakan.
Perbedaan itu menentukan apakah entri daftar izin adalah kebijakan atau lubang. Mengizinkan alamat gateway yang diterjemahkan menerima semua orang di belakangnya, yang jarang ingin diungkapkan aturan per klien. Bacalah sumber dari server, bukan dari anggapan klien tentang alamatnya sendiri. Tangkapan pada antarmuka server adalah cara termurah untuk melihatnya, dan tangkapan yang sama membuktikan apakah paket itu sampai. Batasi tangkapan dengan jumlah paket dan tambahkan filter host begitu Anda tahu klien mana yang diikuti. Tabel sesi Samba adalah separuh jawaban lainnya: di smbstatus -b kolom klien pada setiap baris sesi adalah rekan yang dicatat smbd, dan itu konfirmasi tercepat atas alamat yang benar-benar mencapai layanan.
sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'
Bacalah daftar izin sebagaimana Samba membacanya
Pengaturan hosts allow menerima daftar alamat, jaringan, atau nama, dan bisa muncul secara global atau di dalam berbagi. Dua entri yang tampak setara bagi Anda mungkin tidak setara bagi pengurai, jadi konfigurasi efektiflah yang perlu diperiksa. Itu berarti tampilan gabungan, bukan berkas yang kebetulan Anda edit.
Sepasang prefiks ilustratif tampak seperti baris di bawah, dan itu contoh, bukan pengganti entri yang sudah ada. Pertahankan klien administratif dan aplikasi yang terhubung secara sah hari ini, dan baca daftar larangan apa pun dalam sekali jalan. Diterima atau tidaknya sebuah host bergantung pada kebijakan secara keseluruhan, jadi ujilah klien yang tepat alih-alih menalar soal prioritas. Izin host juga tidak mengatakan apa pun tentang izin berbagi atau mode sistem berkas, yang merupakan gerbang terpisah. Keberhasilan alat uji berarti kebijakan host menerima sumber itu, dan tidak lebih.
hosts allow = 192.168.50.0/24 10.90.0.0/24
testparm -s
testparm -s /etc/samba/smb.conf client.example 10.90.0.14
Ubah berkas yang bertahan setelah reboot
Pada host Linux biasa jalur konfigurasi tetap dan layanan membacanya lagi saat restart. Pada router atau perangkat, smb.conf yang berjalan sering dihasilkan saat boot, dan suntingan manual hilang pada reboot berikutnya. Gunakan mekanisme penyesuaian yang didukung perangkat, yang biasanya berupa berkas konfigurasi tersendiri.
Godaan pada titik ini adalah mem-flash firmware alternatif karena satu utas melaporkan bahwa itu berhasil. Itu perubahan besar untuk masalah kebijakan kecil, dan memindahkan perangkat keluar dari status yang didukung. Identifikasi dulu kontrol yang didukung, karena sebagian besar perangkat menampilkan daftar izin melalui antarmukanya sendiri. Jika mereka benar-benar tidak melakukannya, batasan itu adalah argumen untuk perangkat keras lain, bukan untuk build yang tidak didukung.
Catat berkas mana yang Anda ubah dan apa yang menghasilkannya kembali, agar orang berikutnya tidak mengulangi diagnosis.
Uji satu klien yang diizinkan dan satu yang dikecualikan
Uji kedua hasil, bukan hanya yang Anda inginkan. Klien yang diizinkan dan terhubung membuktikan perubahan berhasil; klien yang dikecualikan dan tetap ditolak membuktikan aturan itu tidak sekadar membuka semuanya.
smbclient -L //fileserver -U alice
sudo testparm -s /etc/samba/smb.conf alice-laptop 10.90.0.14
sudo tail -n 40 /var/log/samba/log.smbd
Ketika koneksi tidak pernah mencapai smbd, jawabannya ada pada perutean atau firewall server. Jika host diizinkan dan login gagal, masalahnya adalah identitas dan memperluas daftar izin lagi tidak akan membantu. Jaga keluaran diagnostik tetap privat, karena log Samba yang rinci dapat membuka jalur berbagi dan nama akun. Ubah satu lapisan per percobaan, atau hasil berikutnya tidak memberi tahu apa pun.