Mi è stato dato un ZTE ZXHN H267N
router che consente di esportare un dispositivo di archiviazione USB collegato come condivisione samba.
Come puoi vedere nello screenshot qui sotto, non ci sono molte opzioni di configurazione, ed è piuttosto semplice.
Da Windows posso aprire la condivisione semplicemente accedendo \\192.168.1.1
: Posso sfogliarlo, leggere file, scrivere / copiare file in esso ... quindi tutto sembra funzionare come previsto.
Ma da Linux non riesco a montarlo in modalità lettura-scrittura. In realtà posso montarlo, ma non riesco a leggere né scrivere nulla. Ho provato qualsiasi combinazione logica di opzioni di mount senza alcun risultato.
root@host:/tmp# mount --verbose -t cifs -o rw,guest,file_mode=0777,dir_mode=0777 //192.168.1.1/samba ./asd
mount.cifs kernel mount options: ip=192.168.1.1,unc=\\192.168.1.1\samba,guest,file_mode=0777,dir_mode=0777,user=,prefixpath=,pass=********
root@host:/tmp# cd asd
root@host:/tmp/asd# LANG=C touch a
touch: cannot touch `a': Permission denied
root@host:/tmp/asd#
Nell'esempio sopra, la condivisione è montata, e a
non esiste Inoltre, se corro lsattr
su un file che esiste già, ottengo il seguente:
root@host:/tmp/asd# LANG=C lsattr existingfile
lsattr: Permission denied While reading flags on existingfile
Apparentemente non ho né leggi né permessi di scrittura. Ho provato altre opzioni come:
- specificando
uid
egid
, a partire dal1
a10000
. - specificando
sec
a qualsiasi opzione disponibile. - specificando
user
ad un utente locale. - Impostazione di un utente e una password e cercando di montarlo non come
guest
, ma specificandousername
epassword
anziché. - Alcune altre opzioni e combinazioni di quanto sopra.
Non riesco a capire quali altre opzioni dovrebbero essere specificate per montare questa condivisione come rw
. La documentazione del router non dice nulla su quali opzioni dovrebbero essere specificate per il corretto montaggio.
Qualcuno è riuscito a montare una condivisione da questo o un router simile come R / W?
Qualsiasi suggerimento è ben accetto.
--- EDIT 1 ---
Come di @gmelis
I suggerimenti, ho messo a tcpdump
ascoltatore sulla macchina appena prima del montaggio per vedere cosa sta succedendo. Il filtro che ho provato è stato: -i eth0 -n host 192.168.1.1
e il risultato è:
17:19:54.175169 IP 192.168.1.200.40703 > 192.168.1.1.445: Flags [S], seq 1716673820, win 29200, options [mss 1460,sackOK,TS val 45819160 ecr 0,nop,wscale 6], length 0
17:19:54.182221 IP 192.168.1.1.445 > 192.168.1.200.40703: Flags [R.], seq 0, ack 1716673821, win 0, length 0
17:19:54.186283 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [S], seq 170856558, win 29200, options [mss 1460,sackOK,TS val 45819161 ecr 0,nop,wscale 6], length 0
17:19:54.194053 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [S.], seq 2811302286, ack 170856559, win 14480, options [mss 1460,sackOK,TS val 50456624 ecr 45819161,nop,wscale 3], length 0
17:19:54.194931 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [.], ack 1, win 457, options [nop,nop,TS val 45819162 ecr 50456624], length 0
17:19:54.196654 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 1:73, ack 1, win 457, options [nop,nop,TS val 45819162 ecr 50456624], length 72 NBT Session Packet: Session Request
17:19:54.202629 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [.], ack 73, win 1810, options [nop,nop,TS val 50456625 ecr 45819162], length 0
17:19:54.202992 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 73:155, ack 1, win 457, options [nop,nop,TS val 45819163 ecr 50456625], length 82 NBT Session Packet: Session Message
17:19:54.209332 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [.], ack 155, win 1810, options [nop,nop,TS val 50456626 ecr 45819163], length 0
17:19:54.209336 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 1:5, ack 155, win 1810, options [nop,nop,TS val 50456626 ecr 45819163], length 4 NBT Session Packet: Session Granted
17:19:54.212933 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [.], ack 5, win 457, options [nop,nop,TS val 45819164 ecr 50456626], length 0
17:19:54.217108 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 5:86, ack 155, win 1810, options [nop,nop,TS val 50456627 ecr 45819164], length 81 NBT Session Packet: Session Message
17:19:54.219993 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [.], ack 86, win 457, options [nop,nop,TS val 45819165 ecr 50456627], length 0
17:19:54.220637 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 155:409, ack 86, win 457, options [nop,nop,TS val 45819165 ecr 50456627], length 254 NBT Session Packet: Session Message
17:19:54.231137 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 86:162, ack 409, win 1944, options [nop,nop,TS val 50456628 ecr 45819165], length 76 NBT Session Packet: Session Message
17:19:54.232949 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 409:527, ack 162, win 457, options [nop,nop,TS val 45819166 ecr 50456628], length 118 NBT Session Packet: Session Message
17:19:54.259669 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 162:213, ack 527, win 1944, options [nop,nop,TS val 50456631 ecr 45819166], length 51 NBT Session Packet: Session Message
17:19:54.260757 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 527:599, ack 213, win 457, options [nop,nop,TS val 45819169 ecr 50456631], length 72 NBT Session Packet: Session Message
17:19:54.267619 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 213:281, ack 599, win 1944, options [nop,nop,TS val 50456632 ecr 45819169], length 68 NBT Session Packet: Session Message
17:19:54.268189 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 599:671, ack 281, win 457, options [nop,nop,TS val 45819169 ecr 50456632], length 72 NBT Session Packet: Session Message
17:19:54.273042 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 281:363, ack 671, win 1944, options [nop,nop,TS val 50456632 ecr 45819169], length 82 NBT Session Packet: Session Message
17:19:54.273609 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 671:763, ack 363, win 457, options [nop,nop,TS val 45819170 ecr 50456632], length 92 NBT Session Packet: Session Message
17:19:54.277267 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 363:402, ack 763, win 1944, options [nop,nop,TS val 50456633 ecr 45819170], length 39 NBT Session Packet: Session Message
17:19:54.278342 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 763:841, ack 402, win 457, options [nop,nop,TS val 45819170 ecr 50456633], length 78 NBT Session Packet: Session Message
17:19:54.282561 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 402:565, ack 841, win 1944, options [nop,nop,TS val 50456633 ecr 45819170], length 163 NBT Session Packet: Session Message
17:19:54.283691 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 841:919, ack 565, win 473, options [nop,nop,TS val 45819171 ecr 50456633], length 78 NBT Session Packet: Session Message
17:19:54.287372 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 565:728, ack 919, win 1944, options [nop,nop,TS val 50456634 ecr 45819171], length 163 NBT Session Packet: Session Message
17:19:54.287949 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [P.], seq 919:997, ack 728, win 490, options [nop,nop,TS val 45819171 ecr 50456634], length 78 NBT Session Packet: Session Message
17:19:54.292238 IP 192.168.1.1.139 > 192.168.1.200.42696: Flags [P.], seq 728:830, ack 997, win 1944, options [nop,nop,TS val 50456634 ecr 45819171], length 102 NBT Session Packet: Session Message
17:19:54.329627 IP 192.168.1.200.42696 > 192.168.1.1.139: Flags [.], ack 830, win 490, options [nop,nop,TS val 45819176 ecr 50456634], length 0
Da quell'uscita concludo che c'è un tentativo iniziale di stabilire una connessione sul 445
porta che viene resettata dall'host remoto, quindi la prossima porta provata è 139
che sembra avere successo
Sono anche riuscito a correre a ngrep
comando con un filtro equivalente e il risultato è:
#
G 192.168.1.1 -> 224.0.0.1 17:100
..................
##
T 192.168.1.1:445 -> 192.168.1.200:40822 [AR]
......
####
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...D CKFDENECFDEFFCFGEFFCCACACACACACA. FCFAEJCOEEEFFGEFEMFDCOEFFDCACAAA.
##
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...N.SMBr......................~.....+..LM1.2X002..LANMAN2.1..NT LM 0.12..POSIX 2.
##
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
....
##
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
...M.SMBr......................~.....................Z...................N?...zTR
##
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
.....SMBs......................~.........T@..........F............D...+.Pm..0.a\...........'E....Tb.....F........W.O.R.K.G.R.O.U.P........W.O.R.K.G.R.O.U.P...L.i.n.
u.x. .v.e.r.s.i.o.n. .4...1...1.9.+...C.I.F.S. .V.F.S. .C.l.i.e.n.t. .f.o.r. .L.i.n.u.x...
##
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
...H.SMBs......................~d............Unix.Samba 1.9.16p10.WORKGROUP.
#
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...r.SMBu......................~d............G......?....{v....H...a....\.\.1.9.2...1.6.8...1...1.\.s.a.m.b.a...?????.
##
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
.../.SMBu...................'..~d............A:....
#
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...D.SMB2...................'..~d........................B..............
##
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
...@.SMB2.....A.............'..~d..................8................
#
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...D.SMB2...................'..~d........................B..............
#
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
...N.SMB2.....A.............'..~d..................8.........@..........S.a.m.b.a.
#
T 192.168.1.200:42815 -> 192.168.1.1:139 [AP]
...X.SMBu......................~d............-..\.\.1.9.2...1.6.8...1...1.\.I.P.C.$...?????.
#
T 192.168.1.1:139 -> 192.168.1.200:42815 [AP]
...#.SMBu......................~d......
#
[...]
Altre cose provate:
- Ho provato a montare il punto come
uid=nobody
egid=nogroup
, con gli stessi risultati. - io corro
chmod -R 777
sul punto di montaggio, non ha fatto nessuna differenza. - Una cosa interessante che ho scoperto: se corro
touch
Ottengo un errore di autorizzazione negato, ma se provo a eseguiremkdir
Ho sempre unmkdir: cannot create directory
blah ': File esiste` messaggio, non importa quale sia il nome della directory che ho specificato (e, naturalmente, non esiste).
--- EDIT 2 ---
Ho anche provato a correre smbclient -L //192.168.1.1
(senza un utente) e mi chiede una password che non ho. Se inserisco qualsiasi valore come password, vengono visualizzati gli errori sopra riportati ( NT_STATUS_ACCESS_DENIED
).
Ma ho anche provato ad attivare la sicurezza nel pannello del router (impostazione Anonymous
a no
e impostando un nome utente e una password) ed ecco cosa ho scoperto:
1) Se corro solo: smbclient -L //192.168.1.1
, Mi viene richiesta una password Se ho appena colpito accedere , Ottengo questo risultato:
# smbclient -L //192.168.1.1
Enter root's password:
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
OS=[楮x慓扭⸱⸹㘱ㅰ0佗䭒則問P] Server=[]
Sharename Type Comment
--------- ---- -------
samba Disk samba share dir
IPC$ IPC IPC Service (Samba Server)
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
OS=[楮x慓扭⸱⸹㘱ㅰ0佗䭒則問P] Server=[]
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP SMBSHARE
2) Se inserisco le credenziali 'corrette', ottengo questo risultato:
# smbclient -L //192.168.1.1 -U smbshare
Enter smbshare's password:
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
session setup failed: SUCCESS - 0
Sto iniziando a pensare che si tratti di una specie di bug nel router, ma la cosa strana è che montare la condivisione di samba funziona su macchine Windows senza alcun problema, dove posso anche leggere e scrivere nella condivisione.
noperm
l'opzione non fa differenza. L'output del smbclient
il comando è Connection to -U failed (Error NT_STATUS_BAD_NETWORK_NAME)
smbclient -L //192.168.1.1/ -U guest%
.
forceuid,uid=myuser,forcegid,gid=mygroup
(sostituzione myuser
e mygroup
con le tue rispettive, ovviamente) opzioni durante il montaggio?
nosetuid
, noperm
. Puoi anche provare il vers
parametro, come in vers=2.0
. Sono abbastanza sicuro che sia una cosa stupida, avere un server di samba su linux e non essere in grado di montarlo sotto linux. Ricordo un paio di anni fa che avevo una ZTE, e potevo telnet
con la mia password "admin" e poi su
con password zte
. Se funziona per te, prova a trovarne uno smb.conf
e pubblica una copia di esso.
mount --verbose -t cifs -o rw,guest,file_mode=0777,dir_mode=0777,noperm //192.168.1.1/samba ./asd
.Cosa fasmbclient //192.168.1.1/ -L -U guest%
mostrare?