25-08-04 10:55
Samba i port 445
piše ACO DMITROVIĆ
Na jednom Linuxu davnih sam dana složio samba share, kojem pristupaju korisnici s Windows računala. Sve je godinama radilo bez greške, dok mi jednog dana nije stigla pritužba kako se nije moguće spojiti na taj share.
Treba li reći da je share imao access listu, da se na njega moglo spojiti samo s određenih IP adresa, i k tome samo točno određeni korisnici sa svojim zaporkama?
Prošetao sam do korisnika da vidim što se događa. Nakon ukucavanja zaporke iskočila bi poruka o grešci, autentikacija nije uspjela. Provjerio sam kada je napravljena dogradnja sambe na Linuxu. Prije otprilike dva mjeseca. Dakle, uzrok problema nije u novom Debianovom paketu. Konfiguracijska datoteka također nije mijenjana mjesecima. Jedina promjena koju sam mogao ustanoviti bile su zakrpe za same Windowse.
Provjerio sam na Googleu i otkrio da su i drugi zapazili isti problem, ali nitko još nije bio našao rješenje. Cijela je priča poprilično zagonetna, Windows klijenti se odjednom više ne mogu ulogirati na samba share na Linuxu. No, tada sam na jednoj mailing listi našao zanimljiv prijedlog: kolega sistemac napisao je kako je riješio problem zatvaranjem porta 445 na firewallu, naravno na Linuxu.
U /etc/services nalazi se popis zauzetih portova. Portovi vezani za Microsoftov mrežni protokol su:
loc-srv 135/tcp epmap # Location Service
loc-srv 135/udp epmap
netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp # NETBIOS session service
netbios-ssn 139/udp
[...]
microsoft-ds 445/tcp # Microsoft Naked CIFS
microsoft-ds 445/udp
Ukratko: portovi 135-139 koriste se za NETBIOS over IP, dok se port 445 počeo koristiti s novijim inačicama Windowsa, točnije WinXP/2K/2K3, pa ga definiraju kao "SMB over IP". Kao što je to lijepo objasnio Boris Trojan u članku NetBIOS i server 2003, objavljenom na ovom portalu prije nekoliko dana, Microsoft postupno napušta svoj stari mrežni protokol, temeljen na broadcastima, iz jednostavnog razloga jer mu ograničenja potječu u konceptu zasnovanom na ideji male mreže, a ne interneta.
Ukucao sam iptables pravilo koje odbija konekciju na port 445, ne očekujući da ću time nešto postići. Zaboga, kako bi neki servis radio ako mu zatvoriš port na kojem radi? Na moje veliko čuđenje, odjednom je sve proradilo! Čini se da se sam proces logiranja spustio na port 139, vjerojatno na neku stariju inačicu protokola. Nisam stručnjak za SMB protokol, pa ne mogu objasniti što se stvarno događa ispod kulisa šarenih Windowsa.
SMB nije javni protokol, u vlasništvu je Microsofta. Samba je nastala tako što su dečki snifali mrežni promet i napisali kod koji emulira upite/odgovore kako se događaju u Microsofoftovoj mreži. Kako je to zatvoren protokol, Microsoft ga može mijenjati kako i kad njemu odgovara. Svaki service pack ili svaka zakrpa može donijeti neku izmjenu, pa su tu i glavni uzroci potencijalno zbunjujućih reakcija sustava koji su do tada poslušno radili.
Sve u svemu, ovaj članak shvatite kao praktičnu pomoć, savjet kako riješiti problem ako se i sami susretnete s njim. No, očigledno je da time nismo iscrpili tematiku vezanu za dijeljenje resursa u mreži miješanih Windows i Linux računala. Stoga uskoro možete očekivati nove članke o toj temi.
|