Recebi um roteador ZTE ZXHN H267N
que permite exportar um dispositivo de armazenamento USB conectado como um compartilhamento de samba.
Como você pode ver na captura de tela abaixo, não há muitas opções de configuração e é bastante simples.
No Windows, posso abrir o compartilhamento simplesmente acessando \192.168.1.1
: posso navegar nele, ler arquivos, gravar / copiar arquivos nele ... então tudo parece funcionar como esperado.
Mas do Linux não consigo montá-lo no modo de leitura / gravação. Eu realmente posso montá-lo, mas não consigo ler nem escrever nada. Eu tentei qualquer combinação lógica de opções de montagem sem sucesso.
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#
No exemplo acima, o compartilhamento é montado e a
não existe. Além disso, se eu executar lsattr
em um arquivo que já existe, recebo o seguinte:
root@host:/tmp/asd# LANG=C lsattr existingfile
lsattr: Permission denied While reading flags on existingfile
Aparentemente não tenho permissões de leitura nem de gravação. Eu tentei outras opções como:
uid
e gid
, de 1
para 10000
. sec
para qualquer opção disponível. user
para um usuário local. guest
, mas especificando username
e password
. Não consigo descobrir quais outras opções devem ser especificadas para montar esse compartilhamento como rw
. A documentação do roteador não diz nada sobre quais opções devem ser especificadas para montá-lo corretamente.
Alguém conseguiu montar um compartilhamento deste ou de um roteador semelhante ao R / W?
Todas as dicas são bem-vindas também.
--- EDITAR 1 ---
A partir das sugestões de @gmelis
, coloquei um ouvinte tcpdump
na máquina antes de montar para ver o que está acontecendo. O filtro que tentei foi: -i eth0 -n host 192.168.1.1
e o resultado é:
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
A partir dessa saída, concluo que há uma tentativa inicial de estabelecer uma conexão na porta 445
que é redefinida pelo host remoto e, em seguida, a próxima porta testada é 139
, que parece ter êxito.
Também consegui executar um comando ngrep
com um filtro equivalente e o resultado é:
#
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]
[email protected].............'..~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.............'[email protected].
#
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......
#
[...]
Outras coisas tentadas:
uid=nobody
e gid=nogroup
, com os mesmos resultados. chmod -R 777
no ponto de montagem, também não fiz diferença. touch
, recebo um erro de permissão negada, mas se eu tentar executar mkdir
, recebo sempre uma mensagem mkdir: cannot create directory
blah ': File exists', não importa o que nome do diretório que eu especifico (e, claro, não existe). --- EDIT 2 ---
Eu também tentei executar o smbclient -L //192.168.1.1
(sem um usuário) e ele me pede uma senha que eu não tenho. Se eu inserir qualquer valor como uma senha, os erros acima serão mostrados ( NT_STATUS_ACCESS_DENIED
).
Mas também tentei ativar a segurança no painel do roteador (definindo Anonymous
para no
e definindo um nome de usuário e uma senha) e eis o que descobri:
1) Se eu apenas executar: smbclient -L //192.168.1.1
, me pedem uma senha. Se eu clicar em Enter , recebo esta saída:
# 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 eu inserir as credenciais 'corretas', recebo esta saída:
# 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
Estou começando a achar que isso é algum tipo de bug no roteador, mas o estranho é que montar o compartilhamento de samba funciona em máquinas Windows sem qualquer problema, onde eu também posso ler e gravar no compartilhamento.