Samba serverə çata bilən VPN müştərilərini niyə rədd edir
VPN müştərisi Samba serverinə çata bilir və yenə də hosts allow tərəfindən rədd edilir. Dəyişiklik etməzdən əvvəl smbd-nin gördüyü mənbəni və paylaşma səviyyəsindəki siyasəti yoxlayın.
VPN müştərisi fayl serverini ping edir, adını həll edir və yenə də paylaşmanı aça bilmir. Sambanın host siyasəti bu bağlantını rədd edə bilən dörd qatdan biridir və insanların ən son düzəltdiyi qat da elə budur. İcazə siyahısı smbd-nin həqiqətən aldığı mənbə ünvanına görə qiymətləndirilir və bu, müştərinin sahib olduğunu düşündüyü ünvan olmaya bilər. Bu mənbəni düzgün müəyyən etmək qeyri-müəyyən icazə problemini bir sətirlik konfiqurasiya dəyişikliyinə çevirir.
Eyni mesajla uğursuz olan dörd qat
Rədd marşrutdan, host firewallundan, Samba host siyasətindən və ya SMB kimliyindən gələ bilər. Hər qat müştəriyə təxminən eyni şeyi deyən bir mesaj verir, buna görə təxmin etmək günün yarısını yeyir. Yoxlamaları şəbəkədən içəriyə doğru sıralamaq təxminlərin çoxunu aradan qaldırır.
Nəqliyyatdan başlayın. Əgər 445 portu serverə heç çatmırsa, heç bir Samba ayarı əhəmiyyət daşımır və server interfeysində tutulan paket bunu saniyələr içində həll edir. Bundan sonra serverin özündəki host firewallu gəlir və o, icazəli mənbəni smbd onu görməmişdən əvvəl ata bilər. Yalnız bu ikisi keçəndən sonra icazə siyahısı namizədə çevrilir. Autentifikasiya ən sonda gəlir, çünki giriş uğursuzluğu ilə host rəddi server jurnalında fərqli görünür, hətta müştəri hər ikisini giriş qadağası kimi bildirdikdə belə. Sıra alətlərdən daha vacibdir, çünki hər qatın cavab verən bir əmri var.
smbd-nin həqiqətən gördüyü mənbə ünvanını tapın
Marşrutlaşdırılmış girişdə server adətən müştərinin ünvanını VPN hovuzundan görür. Şlüzdə mənbə tərcüməsi olduqda isə əvəzinə şlüzün LAN ünvanını görür və həmin şlüzün arxasındakı hər müştəri fərqləndirilə bilməz olur.
Bu fərq icazə siyahısındakı bir girişin siyasət, yoxsa deşik olduğunu müəyyən edir. Tərcümə olunmuş şlüz ünvanına icazə vermək onun arxasındakı hər kəsi qəbul edir, halbuki hər müştəri üçün qayda bunu nadir hallarda ifadə etmək istəyirdi. Mənbəni müştərinin öz ünvanı barədə təsəvvüründən deyil, serverdən oxuyun. Server interfeysində tutulan paket onu görməyin ən ucuz yoludur və eyni tutma paketin ümumiyyətlə gəlib çatdığını da sübut edir. Tutmanı paket sayı ilə məhdudlaşdırın və hansı müştərini izlədiyinizi bildikdə host filtri əlavə edin. Samba sessiya cədvəli cavabın digər yarısıdır: smbstatus -b çıxışında hər sessiya sətrinin müştəri sütunu smbd-nin qeydə aldığı qarşı tərəfdir və bu, xidmətə həqiqətən çatan ünvanın ən sürətli təsdiqidir.
sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'
İcazə siyahısını Samba necə oxuyursa, elə oxuyun
hosts allow parametri ünvanlar, şəbəkələr və ya adlar siyahısı alır və qlobal səviyyədə və ya paylaşmanın içində görünə bilər. Sizə ekvivalent görünən iki giriş parser üçün ekvivalent olmaya bilər, buna görə yoxlanmalı olan şey faktiki konfiqurasiyadır. Bu, təsadüfən düzəltdiyiniz fayl deyil, birləşdirilmiş görünüş deməkdir.
Nümunə üçün bir cüt prefiks aşağıdakı sətir kimi görünür və o, artıq mövcud olan girişlərin əvəzi deyil, sadəcə nümunədir. Bu gün qanuni qoşulan inzibati və tətbiq müştərilərini saxlayın və hər hansı qadağa siyahısını eyni keçiddə oxuyun. Hostun qəbul olunub-olunmaması bütövlükdə siyasətdən asılıdır, ona görə üstünlük barədə düşünmək əvəzinə dəqiq müştərini sınayın. Host icazəsi paylaşma icazələri və ya fayl sistemi rejimləri barədə heç nə demir, bunlar ayrı qapılardır. Test alətlərinin uğuru yalnız host siyasətinin həmin mənbəni qəbul etdiyini bildirir və başqa heç nə.
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
Yenidən başladılmadan sonra qalan faylı dəyişin
Adi Linux hostunda konfiqurasiya yolu sabitdir və xidmət yenidən başladıqda onu yenidən oxuyur. Marşrutlaşdırıcıda və ya cihazda işləyən smb.conf çox vaxt yüklənmə zamanı yaradılır və əl ilə edilən düzəliş növbəti yenidən başlatmada yox olur. Cihazın dəstəklənən fərdiləşdirmə mexanizmindən istifadə edin, bu adətən öz konfiqurasiya faylı olur.
Bu nöqtədə cazibə bir mövzunun işlədiyini bildirməsi səbəbindən alternativ proqram təminatı yazmaqdır. Bu, kiçik bir siyasət problemi üçün böyük dəyişiklikdir və cihazı dəstəklənən vəziyyətindən çıxarır. Əvvəlcə dəstəklənən nəzarəti müəyyən edin, çünki cihazların çoxu icazə siyahısını öz interfeysi ilə təqdim edir. Əgər həqiqətən təqdim etmirlərsə, bu məhdudiyyət dəstəklənməyən quruluş deyil, fərqli aparat üçün arqumentdir.
Hansı faylı dəyişdiyinizi və onu nəyin yenidən yaratdığını qeyd edin ki, növbəti şəxs diaqnozu təkrarlamasın.
Bir icazəli və bir istisna edilmiş müştərini sınayın
Hər iki nəticəni sınayın, yalnız istədiyinizi deyil. Qoşulan icazəli müştəri dəyişikliyin işlədiyini sübut edir; rədd edilməyə davam edən istisna edilmiş müştəri isə qaydanın sadəcə hər şeyi açmadığını sübut edir.
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
Bağlantı smbd-yə heç çatmırsa, cavab marşrutlaşdırmada və ya serverin firewallundadır. Host qəbul edilirsə və giriş alınmırsa, problem kimlikdədir və icazə siyahısını yenidən genişləndirmək kömək etməyəcək. Diaqnostik çıxışı məxfi saxlayın, çünki ətraflı Samba jurnalı paylaşma yollarını və hesab adlarını aşkara çıxara bilər. Hər cəhddə bir qatı dəyişin, əks halda növbəti nəticə sizə heç nə deməyəcək.