Зашто Samba одбија VPN клијенте који стижу до сервера
VPN клијент може да стигне до Samba сервера и ипак буде одбијен од hosts allow. Проверите извор који smbd види и политику на нивоу дељења пре измена.
VPN клијент пингује сервер датотека, разрешава његово име и ипак не може да отвори дељење. Хост политика Samba-е један је од четири слоја који могу да одбију ту везу, и то је слој који људи уређују последњи. Листа дозвољених проверава се према адреси извора коју smbd заиста прима, а то можда није адреса за коју клијент мисли да је има. Исправно утврђивање тог извора претвара нејасан проблем с дозволама у измену конфигурације од једног реда.
Четири слоја која падају са истом поруком
Одбијање може да дође са руте, са хост заштитног зида, из хост политике Samba-е или из SMB идентитета. Сваки слој ствара клијенту поруку која говори отприлике исто, зато нагађање кошта поподне. Ако се провере поређају од мреже ка унутра, највећи део нагађања нестаје.
Почните од транспорта. Ако порт 445 никада не стигне до сервера, ниједно подешавање Samba-е није важно, а снимак на интерфејсу сервера то решава у секундама. Затим долази хост заштитни зид на самом серверу, који може да одбаци дозвољен извор пре него што га smbd уопште види. Тек након што та два прођу, листа дозвољених постаје кандидат. Аутентификација је последња, јер неуспешна пријава и одбијање хоста изгледају различито у дневнику сервера, чак и када клијент оба пријави као одбијен приступ. Редослед је важнији од алата, јер сваки слој има команду која му одговара.
Пронађите адресу извора коју smbd заиста види
У рутираном приступу сервер обично види адресу клијента из VPN пула. Уз превођење извора на пролазнику он уместо тога види LAN адресу пролазника, и сваки клијент иза тог пролазника постаје неразлучив.
Та разлика одлучује да ли је запис на листи дозвољених политика или рупа. Дозволити преведену адресу пролазника пушта све иза њега, што правило по клијенту ретко жели да изрази. Читајте извор са сервера, а не из клијентове представе о сопственој адреси. Снимак на интерфејсу сервера најјефтинији је начин да га видите, и исти снимак доказује да ли је пакет уопште стигао. Ограничите снимак бројем пакета и додајте филтер хоста када будете знали који клијент пратите. Табела сесија Samba-е друга је половина одговора: у smbstatus -b колона клијента у сваком реду сесије је партнер који је smbd забележио, и то је најбрже потврђивање адресе која је заиста стигла до услуге.
sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'
Читајте листу дозвољених онако како је Samba чита
Подешавање hosts allow прихвата листу адреса, мрежа или имена и може да стоји глобално или унутар дељења. Два записа која вам изгледају једнако можда нису једнака за парсер, зато треба проверити управо ефективну конфигурацију. То значи обједињени приказ, а не датотеку коју сте случајно уредили.
Илустративан пар префикса изгледа као ред испод, и то је пример, а не замена за записе који већ постоје. Задржите административне и апликацијске клијенте који се данас законито повезују, и прочитајте сваку листу забрана у истом пролазу. Да ли ће хост бити прихваћен зависи од политике у целини, зато тестирајте тачно одређеног клијента уместо да расуђујете о приоритету. Дозвола хоста такође не говори ништа о дозволама за дељење или режимима система датотека, који су одвојене капије. Успех тест алата значи да хост политика прихвата тај извор, и ништа више.
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
Измените датотеку која преживљава поновно покретање
На обичном Linux хосту путања конфигурације је фиксна и услуга је поново чита при поновном покретању. На рутеру или уређају покренути smb.conf се често генерише при подизању, а ручна измена нестаје при следећем поновном покретању. Користите подржани механизам прилагођавања уређаја, који је обично сопствена конфигурацијска датотека.
Искушење је у овом тренутку да се упише алтернативни фирмвер јер је једна тема известила да ради. То је велика измена за мали проблем с политиком и изводи уређај из његовог подржаног стања. Прво утврдите подржану контролу, јер већина уређаја приказује листу дозвољених кроз сопствени интерфејс. Ако то заиста не чине, то ограничење је аргумент за други хардвер, а не за неподржану изградњу.
Забележите коју сте датотеку изменили и шта је поново ствара, да следећа особа не понавља дијагнозу.
Тестирајте једног дозвољеног и једног искљученог клијента
Тестирајте оба исхода, не само онај који сте желели. Дозвољени клијент који се повеже доказује да измена ради; искључени клијент који је и даље одбијен доказује да правило није једноставно отворило све.
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
Када веза никада не стигне до smbd, одговор је у рутирању или у заштитном зиду сервера. Ако је хост дозвољен, а пријава не успе, проблем је идентитет и даље ширење листе дозвољених неће помоћи. Држите дијагностички излаз приватним, јер опширан Samba дневник може да открије путање дељења и имена налога. Мењајте један слој по покушају, иначе вам следећи резултат неће рећи ништа.