Subject:
(ldp-br) Como Configurar o SAMBA 2.0.x
Date:
Wed, 07 Mar 2001 08:56:16 -0300
From:
Ricardo
Organization:
Conectiva SA
To:
ldp-br@bazar.conectiva.com.br
Pessoal,
não pude ainda colocar este howto no site, mas ja deixo aqui uma cópia,
para quem quser ajudar revisando.
abraços
Como Configurar o SAMBA 2.0.x
Por Victor Zucarino - Rio de Janeiro, janeiro de 2001 - atualização 5b
vffz@hotmail.com Referencias: Documentação e Manuais do SAMBA,
documentos LDP, howtos selecionados
e contribuições.
Este manual é dedicado a todos aqueles que buscam divulgar o Linux no
Brasil e no mundo, a todos que
trabalham por sua documentação (LDP e todos os outros), a todos os sites
nacionais que trabalham para
disponibilizar informações diversas, e em especial aos que acreditam e
se esforçam para manter a proposta
do GNU Linux.
Quem contribuíu até o momento:
Luciano Linhares Martins (lmartins@matrix.com.br)
Marcelo Subtil Marçal (jason@unleashed.com.br)
Augusto César Campos (brain@matrix.com.br)
ÍNDICE
O QUE É O SAMBA?
ONDE CONSEGUIR O SAMBA?
VALE A PENA USAR O SAMBA?
INSTALAÇÃO
CONFIGURAÇÃO
COMO MIGRAR SENHAS DE DOMÍNIO NT PARA O SAMBA
ACESSANDO SERVIDORES ATRAVÉS DO LINUX
ADICIONANDO O SAMBA A UM DOMÍNIO NT
ADICIONANDO USUÁRIOS NT AO DOMÍNIO SAMBA
EXEMPLO DE SCRIPT PARA ESTAÇÕES WINDOWS95/98 E NT
MONTANDO UNIDADES DE CD-ROM AUTOMATICAMENTE
CONFIGURANDO O SAMBA REMOTAMENTE
CONSIDERAÇÕES
O QUE É O SAMBA?
O SAMBA é uma aplicação que utiliza o protocolo SMB (no Linux, os
"server daemons" SMBD e NMBD)
permitindo compatibilidade com redes que utilizam este protocolo,
principalmente redes NetBios da
Microsoft.
ONDE CONSEGUIR O SAMBA?
As mais recentes distribuições já trazem o SAMBA como padrao, mas seu
download e atualizações estao
disponívies em: http://us4.samba.org/samba/download.html
VALE A PENA USAR O SAMBA?
Com o SAMBA é possível compartilhar diretórios, impressoras, acessar
arquivos na rede exatamente como
em redes Microsoft. Mas neste caso, seu servidor é um Linux rodando uma
aplicação específica. O Windows
NT e o 2000 (assim como o NetWare 5 e outros presentes no mercado) são
reconhecidos mundialmente por
sua segurança e escalabilidade, mas o SAMBA possui muitas vantagens que
podem se transformar em
soluções e economia para sua empresa. Confira:
- Permite compatibilidade com estações Windows (de WfW a 2000) e
servidores WinNT 4.0 e 2000. Entre
servidores e estações Linux (com Interface Gráfica por exemplo) a
compatibilidade é total.
- O SAMBA é 100% configurável, com a grande vantagem de centralizar esta
configuração em um único
arquivo, o smb.conf. Sem dúvida é muito interessante ter a possibilidade
de restaurar toda a configuração
que disponibiliza seu Servidor de Arquivos (inclusive as permissoes de
acesso) através do backup de apenas
1 arquivo, em casos de desastre. Porém isso não quer dizer que não seja
necessário o backup de outros
arquivos de configuração... :)
- Todo o SAMBA pode ser configurado remotamente através de acesso
seguro, além do recebimento por
email de informações do estado do servidor (bastando utilizar um script
específico que busca informações
nos arquivos de log e cria um arquivo que pode ser enviado por email).
- Em se falando de economia não há o que discutir: o Linux e o SAMBA
estao disponíveis para download na
Internet sem ônus algum para qualquer usuário comum ou empresa que se
interesse em utilizá-lo, sem
custos com licensas ou atualizações.
- O suporte está disponível 24h por dia, o ano todo: além do próprio
site do SAMBA existem milhares de
sites e listas de discussão dedicadas ao assunto, entre outras
documentações e artigos em sites de renome
por Administradores e Engenheiros de Redes Linux. Muita coisa já está em
nosso idioma facilitando os
iniciantes e interessados em leitura. Muitos sites nacionais são
especializados em Linux e Segurança para
Linux.
Se a sua empresa busca uma solução estável e segura para Servidor de
Aqruivos da rede, o SAMBA é uma
grande opção.
INSTALAÇÃO
Se a distribuição que deseja utilizar já traz o SAMBA, a instalação não
é necessária. Se deseja atualizá-lo ou
iniciar a instalação, siga os passos abaixo:
Para instalar o SAMBA é necessário antes saber se o pacote está no
formato RPM ou .tar (.tgz ou .tar.gz). Se
o pacote for um RPM, execute o comando abaixo:
#rpm -ivh samba-2.0.x-i386.rpm
Substituindo o "x" pelo número relativo a versão do pacote ou o nome
correto do pacote dependendo da
sua distribuição. Para atualizar o SAMBA atual, substitua a sintaxe -ivh
por -Uvh. Se o pacote veio no
formato tar.gz, execute o comando abaixo:
#tar -zxvf samba-2.0.x-i386.tar.gz
Um diretório será criado com o nome samba-2.0.x. Entre neste diretório e
em seguida no subdiretório
source. Para iniciar a instalação digite:
#./configure
Em seguida digite:
#make
Os binários do SAMBA serão criados. Quando terminar digite:
#make install
Agora os binários e páginas do man serão instalados. Aguarde o processo
e quando terminar confira o
diretório /usr/doc/samba-2.0.x/docs para informações sobre o SAMBA.
CONFIGURAÇÃO
Toda a configuração do SAMBA é centralizada no arquivo smb.conf, que
deve ser guardado no diretório
/etc. Nele é que são descritos os compartilhamentos, permissoes de
acesso, impressoras, dentre outras
configurações disponíveis. Quando instalado, o SAMBA disponibiliza os
seguintes componentes:
smbd -> O servidor SAMBA.
nmbd -> O Servidor de nomes NetBios
smbclient -> Cliente SMB para sistemas Unix.
smbpasswd -> Alterar senhas de usuários smb.
smbprint -> Cliente para envio de impresão a sistemas Linux.
smbstatus -> Apresenta a situação atual das conexoes SMB no Host.
testparm -> Verifica o arquivo smb.conf (configuração do SAMBA).
testprns -> Verifica a comunicação via rede com as impressoras.
O smb.conf é dividido basicamente em tres partes: a configuração do
servidor SAMBA (parâmetros na seção
[global]), a configuração dos diretórios/pastas pessoais dos usuários
(parâmetros na seção [homes]) e as
demais seções que correspondem aos diretórios compartilhados.
Cada seção é representada entre colchetes [teste], e os parâmetros são
seguidos do sinal de igual (=) e o
valor ou termo correspondente. Confira abaixo um exemplo do smb.conf e
em seguida a explicação de cada
parâmetro presente nas seções:
[global]
comment = Servidor SAMBA
workgroup = EMPRESA
security = user
os level = 100
announce as = NT Server
domain logons = yes
logon script = %U.bat
logon path = \\%L\Profiles\%U
domain master = yes
local master = yes
preferred master = yes
guest account = nobody
# wins server = 192.168.0.2
wins support = yes
keep alive = 20
debug level = 3
winpopup command = csh -c 'xedit %s;rm %s' &
log file = /var/log/samba_log.%u
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY
printing = bsd
printcap name = /etc/printcap
load printers = yes
hosts allow = 192.168.0. 127.
hosts deny = 192.168.0.3 192.168.0.4
[homes]
comment = Pastas dos Usuarios
public = no
browseable = yes
writeable = yes
hosts deny = 192.168.0.250
[printers]
comment = Impressoras Linux
public = no
browseable = yes
printable = yes
read only = yes
create mode = 0700
path = /var/spool/samba
admin users = admin, usuario1
[netlogon]
comment = Compartilhamento de Scripts
path = /etc/scripts
public = no
browseable = yes
writeable = no
[diretoria]
comment = Grupo Diretoria
path = /home/diretoria
public = no
browseable = yes
valid users = @diretoria
writeable = yes
write list = @diretoria
force create mode = 0777
force directory mode = 0777
[comercial]
comment = Grupo Comercial
path = /home/comercial
public = yes
browseable = yes
writeable = yes
write list = @comercial
read list = @marketing
force create mode = 0777
force directory mode = 0777
[transf]
comment = Area de Transferencia
path = /home/transf
public = yes
browseable = yes
writeable = yes
write list = @todos
force create mode = 0777
force directory mode = 0775
max disk size = 200
[oculto$]
comment = Especifico do Admin
path = /home/admin/oculto
copy = homes
max connections = 1
Seção [global]
Define as configurações globais do SAMBA. A tabela abaixo apresenta a
explicação dos parâmetros do
exemplo:
comment
Comentário para este Host na Rede.
workgroup
Especifica o Domínio ou Workgroup a que o Host pertence na Rede.
security
Por padrao o SAMBA utiliza a segurança a nível de usuário (security =
user), com opções:
security = share -> Senhas de acesso serão solicitadas por cada recurso
compartilhado e não por usuário,
ou seja, cada diretório ou impressora poderá ter uma senha única
conhecida pelos usuários autorizados.
security = user -> As permissoes são dadas de acordo com o login do
usuário, ou através dos grupos
(@grupo).
security = server -> O SAMBA tentará validara senha do usuário enviando
os dados para outro servidor SMB,
como outro servidor SAMBA ou um servidor Windows. Deve-se incluir o
parâmetro .password server =
x.x.x.x. na seção [global] do smb.conf.
security = domain -> Usado se o Host for adicionado a um Domínio Windows
através do comando
smbpasswd. Neste caso as informações de usuário e senha serão enviadas
para o PDC da rede, exatamente
como o servidor NT faria. Note que é necessário que a conta do usuário
exista tanto no Linux quanto no
servidor primário.
os level
Este parâmetro não é obrigatório se voce não possui um servidor Windows
na rede, mas deve ser usado
caso tenha um ou mais. A variável é um número de 1 a 255, onde 65 é a
mesma variável utilizada pelo
servidor Windows. Especifique um número maior que este (como 100 por
exemplo) para garantir que o
servidor SAMBA seja eleito na escolha de validação do login das
estações.
announce as
Permite especificar o tipo de servidor NetBios (nmbd) que será divulgado
na rede. As opções aceitas pelo
SAMBA: "NT Server", "NT Workstation", "Win95" ou "WfW".
domain logons
Usado para validar o login na rede, apenas para estações Windows.
logon script
Indica qual arquivo de logon script será executado para os usuários. A
variável %u corresponde ao usuário
na rede. Deve também ser criado um compartilhamento de nome [netlogon]
apontando para o diretório dos
scripts.
logon path
Indica o caminho do perfil remoto do usuário. A variável %L corresponde
ao nome do servidor NetBios (que
pode ser o próprio SAMBA). O logon path é útil quando usuários costumam
efetuar logon em mais de um
Host na rede, pois seu perfil é trazido com o logon. No caso do exemplo,
o diretório "Profiles" deve conter os
scripts (em formato Microsoft usando NET USE e etc) e os scripts devem
ser criados com o notepad do
Windows por exemplo, a fim de conservar o formato do arquivo.
domain master
Indica se o Host será o Domain Master Browser da rede inteira (WAN).
local master
Indica se o Host será o Master Browser da rede local.
preferred master
Este parâmetro força a eleição do SAMBA como Master Browser para o
workgroup. É recomendável utilizar
este parâmetro em conjunto com o .domain master = yes. para garantir a
eleição. Mas tome cuidado: se voce
possui uma rede com servidores Windows e SAMBA e já possui um servidor
como Domain Master, não use
esta opção e deixe o parâmetro .os level = 65. para haver equilíbrio.
guest account
O SAMBA trabalha melhor em redes Microsoft com a existencia de uma conta
guest (visitante em ingles). Por
padrao a conta usada é .nobody..
wins server
Indica qual o servidor de Wins da rede. Se o próprio Host for o servidor
de Wins entao não utilize este
parâmetro, pois haverá um loop e o sistema travará!
wins support
Permite ao SAMBA ser o servidor de Wins na rede. Isto significa que o
SAMBA terá uma tabela com o
ambiente completo da rede, garantindo que as estações tenham acesso a
estas informações e ganho em
velocidade para encontrar e acessar os compartilhamentos e impressoras.
O Wins Server deve ser
especificado na configuração de rede (TCP/IP) das estações, que é o
endereço IP do servidor.
keep alive
Como máquinas rodando Windows tendem a travar de tempos em tempos, este
parâmetro é usado para
verificar o estado da conexao, evitando tráfego desnecessário na rede.
Também pode ser usado para
estações Linux.
debug level
Parâmetro usado para dar flexibilidade a configuração do sistema.
Permite ao SAMBA trabalhar
corretamente com algumas situações de erro, por exemplo.
winpopup command
Especifica qual commando será executado quando o servidor receber
mensagens Winpopup. Aqui, muitas
opções podem ser usadas de acordo com a preferencia do Administrador. Se
sua rede utiliza mensagens
deste tipo, é interessante definir um comando para o parâmetro, evitando
assim possíveis mensagens de
erro para quem enviou a mensagem ao servidor.
log file
Indica o arquivo de log do SAMBA. A variável %u corresponde ao nome de
logon do usuário.
null passwords
Indica se será ou não possível que usuários tenham senha nula de logon
(logon sem senha).
unix password sync
Se este parâmetro for ativado (= yes) entao clientes SMB (como estações
Windows) poderão trocar sua senha
de login.
socket options
Este parâmetro permite configurações extras para o protocolo,
possibilitando uma melhor performance do
servidor em lidar com os pacotes na rede.
printing
Indica qual o sistema de impressão padrao utilizado pelo Linux.
printcap name
Indica o arquivo para busca das definições das impressoras.
load printers
Disponibiliza as impressoras para a rede.
hosts allow
Indica quais máquinas tem acesso ao servidor SAMBA. Pode-se utilizar o
endereço IP ou o nome da
máquina. Para garantir acesso a toda uma rede por exemplo, escreva:
"hosts allow = 192.168.1.".
hosts deny
Como em "hosts allow", mas para restringir o acesso ao servidor SAMBA.
Seção [homes]
Define os parâmetros para as pastas pessoais dos usuários na rede (home
dir):
comment
Comentário para este compartilhamento.
public
Também conhecido como .guest ok., permite ou não acesso de outros
usuários.
browseable
Define se o compartilhamento será ou não visível para o Ambiente de
Rede. Estações Windows95 versão
4.00.950-C não aceitam esta opção, onde uma possível solução é utilizar
o nome do compartilhamento
seguido de $ (teste$ por exemplo), como faz-se no Windows.
writeable
Indica se o usuário poderá ou não ecrever em sua pasta pessoal (home
dir).
Demais Seções
Correspondem a compartilhamentos presentes na rede. Os parâmtros abaixo
são apenas alguns dos
possíveis:
comment
Comentário para o compartilhamento.
path
Caminho do diretório compartilhado
valid users
Este parâmetro é usado para destacar quem terá acesso ao
compartilhamento na rede. É importante
destacar que estações Win95/98/Me têm diferenças entre si que em muitas
situações representam um
problema para acesso e segurança. Acontece algumas vezes de vc definir o
"write list" e o "read list"
corretamente mas mesmo assim usuários do "read list" conseguem escrever
no compartilhamento. Para
resolver este problema, inclua o "valid users" com os usuários que têm
acesso e em seguida inclua o "write
list" e o "read list" conforme sua necessidade.
writeable
Indica se será ou não possível criar ou excluir arquivos ou diretórios
do compartilhamento.
public / guest ok
Indica se será ou não permitido o acesso de outros usuários.
browseable
Define se o compartilhamento será ou não visível para o Ambiente de
Rede.
write list
Define os usuários e/ou grupos com acesso de escrita no
compartilhamento. Para mais de um usuário,
separe os nomes por vírgula (user1, user2, etc) e para grupos utilize @
antes do nome do grupo.
read list
Como em .write list., mas define quem terá permissão de apenas leitura.
force create mode
Diz ao SAMBA para forçar o tipo de permissão dos arquivos criados (o
mesmo que usar o chmod). Esta
permissão tem menor prioridade que os parâmetros .write list. e .read
list..
force directory mode
O mesmo que .force create mode., mas para os diretórios criados no
compartilhamento.
admin users
Indica quais são os usuários com permissão completa para o
compartilhamento (permissão de root).
copy
Permite copiar os parâmetros de outra seção, como um template por
exemplo, útil se utiliza
compartilhamentos semelhantes. Para alterar parâmetros basta informá-los
na seção atual.
hosts allow
Indica quais máquinas podem acessar o compartilhamento. Pode-se utilizar
o endereço IP ou o nome da
máquina. Para garantir acesso a toda uma rede classe C por exemplo,
escreva: "hosts allow = 192.168.1.".
hosts deny
Como em "hosts allow", mas para restringir o acesso ao compartilhamento.
max connections
Permite especificar o número máximo de conexoes simultâneas ao
compartilhamento.
max disk size
Permite especificar qual o limite de espaço em disco que o
compartilhamento pode utilizar. Este valor é
definido em Mb (megabytes).
Abaixo temos variáveis que podem ser usadas em parâmetros:
%S - Nome do Serviço (compartilhamento) atual.
%u - Nome do usuário.
%g - Nome do grupo.
%H - Nome do diretório pessoal do usuário (home dir).
%m - Nome da máquina cliente fornecido pelo NetBios.
%L - Nome do servidor NetBios, permitindo que a configuração desejada
seja alterada de acordo com o
cliente que vai acessar o sistema.
%M - Nome Internet da máquina cliente.
%a - Sistema Operacional da máquina remota, onde os reconhecidos são
WfW, WinNT e Win95.
%I - O endereço IP da máquina cliente.
%T - Data e horário.
Agora que o smb.conf está configurado faça um teste para saber se está
tudo certo, com o comando
testparm:
#testparm > teste_config_samba
#
Será criado o arquivo teste_config_samba. Confira este arquivo e caso
exista alguma mensagem de erro
(ERROR...) volte a corriga o problema. Acertadas as configurações,
deve-se ativar o SAMBA:
#/etc/rc.d/init.d/smb start
Se quiser conferir se o SAMBA está realmente no ar, execute o comando
acima mas substitua o "start" por
"status".
Para que o SAMBA seja iniciado sempre após a inicialização do servidor,
execute o ntsysv e marque o SMB.
Voce também pode escrever a linha de "start" do smb no arquivo
/etc/rc.d/rc.local, da seguinte forma:
1. De um vi no rc.local (#vi /etc/rc.d/rc.local ).
2. Tecle "i" para editar e vá até o final do arquivo (Page Down).
3. Escreva a seguinte linha: /etc/rc.d/init.d/./smb start
4. Tecle "Esc" e em seguida ":" e depois "wq" .
A partir de agora, sempre que o computador for reiniciado o SAMBA será
ativado automaticamente.
COMO MIGRAR SENHAS DE DOMÍNIO NT PARA O SAMBA
(Contribuição Luciano Linhares Martins (lmartins@matrix.com.br))
Quando se deseja migrar de um servidor Windows NT para o SAMBA um dos
problemas mais comuns é o
fato de que as senhas de logon são perdidas, pois entre o NT e o SAMBA a
criptografia está em formatos
diferentes. Para resolver este problema existe um pequeno programa que
converte todo o registro de "nome
e senha" do Windows NT para um arquivo smbpasswd compatível com o SAMBA.
Siga os passos abaixo:
Primeiro é preciso conecte-se ao ftp do Samba e baixar o utilitário
pwdump.exe, no seguinte endereço:
ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe
Efetue logon como usuário Administrator no servidor NT (que
disponibiliza a autenticação). Em seguida,
abra um Command Prompt e vá até o diretório que você colocou o pwdump.
Rode o comando pwdump da
seguinte maneira:
#pwdump > smbpasswd
Será gerado um arquivo smbpasswd com as informações de autenticação
(logon e senha) do Windows NT no
formato criptografado utilizado pelo SAMBA.
Agora copie o arquivo smbpasswd gerado para o servidor Linux (através de
diskete ou diretório
compartilhado, por exemplo). No Linux, jogue o arquivo smbpasswd criado
para o diretório /etc e defina as
permissões para 600:
#chmod 600 /etc/smbpasswd
Para q funcione corretamente, é importante destacar que o ID dos
usuários seja o mesmo tanto no
smbpasswd quanto no passwwd do Linux. Abra o smbpasswd e exporte os
dados de autenticação (nome do
usuário, ID, etc) mas não é possível fazer o mesmo com as senhas. Se
você quiser exportar as senhas vai ter
que quebrá-las com algum password cracker :) Na verdade não é necessário
ter a senha no passwd, apenas
o login, ID e home.
Para rodar o SAMBA e ele autenticar os usuários, não é preciso ter a
senha no passwd do Unix, apenas o
login, ID e home se você quiser exporta-los. Vão ser utilizadas as
senhas do smbpasswd.
Luciano Linhares Martins (lmartins@matrix.com.br) criou um script
baseado no mksmbpasswd para
converter as senhas em formato smbpasswd para o passwd. Funciona bem e
pode ser modificado conforme
a necessidade de cada um. É um script bem simples e pode ser alterado de
acordo com a sua necessidade.
Crie o arquivo mkpasswd.sh com o conteúdo abaixo:
#!/bin/sh
awk 'BEGIN {FS=":"
printf("#\n# Unix password file.\n#\n")
}
{ printf( "%s:*:%s:103:%s:/home/%s:/bin/bash\n", $1, $2, $5, $1) }
'
Dê um chmod 700 no arquivo e execute da seguinte maneira:
#cat /etc/smbpasswd | ./mkpasswd.sh > passwd-smb
Se o seu arquivo smbpasswd e o script mkpasswd.sh estiverem em outro
local, configure de acordo com a
sua necessidade. Após isso, você vai gerar um arquivo chamado passwd-smb
com os logins, id's, home, etc
no formato do passwd do seu sistema.
Normalmente, os ID's do smbpasswd vão começar a partir de 1000 e você
não vai ter problemas para
junta-lo com o seu passwd do Unix sem nenhum conflito. Eu recomendo que
você confira antes de juntar as
bases. Procure por logins com o mesmo ID, mesmo username e username com
espaços.
Se você utiliza shadow é importante desabilitá-lo antes de juntar os
arquivos. Desabilita o shadow através
do comando pwunconv. Em seguida para passar o arquivo passwd-smb para o
passwd do sistema entre no
diretório onde esta o arquivo passwd-smb que você gerou. e digite:
#cat passwd-smb >> /etc/passwd
Se você utiliza o shadow, pode reativá-lo agora através do comando
pwconv. Reinicie o Linux para q as
alterações entrem em vigor.
ACESSANDO SERVIDORES ATRAVÉS DO LINUX
O smbclient
Da mesma forma que o SAMBA permite que o Linux atue como servidor em
redes Microsoft, ele também
permite atuar como estação, sem que nenhuma configuração seja necessária
no servidor Microsoft.
Com o smbclient é possível acessar dados em um servidor Windows (lembra
o comando net da Microsoft,
mas os comandos utilizados são similares aos de FTP). Ele pode ser usado
para receber e enviar arquivos,
listar diretórios, navegar pelos diretórios, renomear e apagar arquivos,
entre outros. Diretórios
compartilhados por um servidor SAMBA são acessados da mesma forma.
Para verificar quais compartilhamentos estao disponíveis em um
determinado Host, execute:
$/usr/sbin/smbclient -L host_desejado
A resposta será uma lista de serviços, ou seja, nomes de dispositivos ou
impressoras que podem ser
compartilhados com os usuários na rede. A menos que o servidor SMB não
tenha itens de segurança
configurados, será solicitada uma senha antes de mostrar as informações.
Exemplo:
$smbclient -L servidor1
A resposta será semelhante a:
Server time is Fri Dec 22 15:58:02 2000
Timezone is UTC+10.0
Password:
Domain=[EMPRESA] OS=[Windows NT 4.0]
Server=[NT LAN Manager 4.0]
Server=[servidor1] User=[] Workgroup=[EMPRESA] Domain=[]
Sharename Type Comment
ADMIN$ Disk Remote Administration
Public Disk Public
C$ Disk Default Share
Print$ Disk Printer Control
Para acessar uma pasta compartilhada, basta especificar o caminho na
rede, conforme abaixo:
$smbclient //maquina/pasta1 senha
Onde "senha" é literalmente a senha de acesso. Se o caminho estiver
correto a resposta será algo como:
Server time is Fri Dec 22 16:01:12 2000
Timezone is UTC+10.0
Domain=[EMPRESA] OS=[Windows NT 4.0] Server=[NT LAN Manager]
smb:\>
Digite h para obter ajuda sobre os comandos do smbclient.
O smbtar
Também é possível fazer backup (cópias de segurança) para o formato .tar
de arquivos que estao em
compartilhamentos na rede. Esta operação é muito útil para garantir
backup de arquivos em estações com
pastas compartilhadas mas que não pertencem ao Domínio da rede (por
exemplo). O comando utilizado é o
smbtar:
$smbtar -s HOST -p SENHA -x COMPARTILHAMENTO -d PASTA -t FITA (.tar)
Como exemplo vamos criar um arquivo chamado vacina.tar que será o backup
de
//servidor1/vacinas/vacina.exe sem senha para acesso:
$smbtar -s servidor1 -x vacinas -d vacina.exe -t vacina.tar
Para conferir se o arquivo foi criado corretamente, digite:
$tar -tvf vacina.tar
Se o empacotamento teve sucesso, voce verá o nome original do arquivo e
seu tamanho. Para que o backup
seja guardado em fita deve-se mudar a sintaxe do comando, substituindo o
nome do arquivo pela unidade
de fita instalada (geralmente /dev/st0).
O smbpasswd
O SAMBA permite também que as estações troquem suas senhas de logon,
utilizando o smbpasswd. Ele age
de forma similar ao comando passwd, mas as senhas são armazenadas no
arquivo smbpasswd. É posível
ainda alterar a senha dos usuários em um servidor Primário de um Domínio
NT (PDC). Utilizado pelo
superusuário, ele permite que contas sejam adicionados ou removidos e
atributos sejam alterados.
Mantenha o "localhost" especificado no parâmetro "allow hosts" para seu
perfeito funcionamento.
O smbpasswd é um arquivo em formato ASCII e contém o nome do usuário,
identificação junto ao Linux, a
senha encriptada, o indicador de como está a conta e a data de última
alteração da senha do usuário.
Vale destacar que o smbpasswd somente é útil quando o SAMBA está
configurado para utilizar senhas
criptografadas (veja detalhes em Considerações).
O smbstatus
Para saber a situação atual das conexoes SAMBA, utilizamos o smbstatus
($smbstatus ). Abaixo
está a lista das opções aceitas:
-b -> Fornece uma resposta resumida.
-d -> Fornece uma resposta comentada.
-L -> Lista somente os recursos em uso.
-p -> Lista os processos smbd e finaliza em seguida. Útil quando
utilizado em programas.
-S -> Lista todos os compartilhamentos definidos.
-s -> Permite utilizar outro arquivo de configuração (smb.conf2 por
exemplo), que deve ser especificado
após a opção.
-u -> Lista as informações relevantes sobre o usuário, que deve ser
especificado após a opção.
O testprns
O testprns verifica o nome da impressora junto ao smbd, a fim de
determinar se há um nome válido (entrada
encontrada em printcap para a impressora) sendo informado para uso pelo
serviço de impressão. Pode ser
ativado da seguinte forma:
#testprns
Encontrada uma impresora válida, a mensagem "Valid Printer" (ou outra
semelhante, dependendo da
distribuição utilizada) será apresentada. O arquivo /etc/printcap define
as impressoras.
ADICIONANDO O SAMBA A UM DOMÍNIO NT
Se sua rede já possui um servidor PDC (WindowsNT) e voce deseja
adicionar um servidor SAMBA, é
necessário antes de tudo configurar o SAMBA: não utilizar o parâmetro
"domain master" e "domain logons"
(conforme o caso) e também manter o parâmetro "os level" igual ou
inferior a 65.
O nome NetBios do servidor SAMBA deve também ser adicionado ao PDC do
Domínio NT (através do
Gerenciador de Servidores para Domínios). Assim, uma conta será criada
para o SAMBA no PDC.
Como exemplo, vamos citar um servidor SAMBA como o nome NetBios "Samba"
e o Domínio chamado
"EMPRESA". O PDC terá o nome "File_Server" e existem também 2
controladores de backup com os nomes
"Backup1" e "Backup2".
Para juntar-se ao Domínio, o servidor SAMBA deve executar o comando
abaixo:
#smbpasswd -j EMPRESA -r File_Server
Se o comando foi bem sucedido, aparecerá a mensagem:
#smbpasswd: Joined domain EMPRESA
Se algo deu erado, confira o nome NetBios dos servidores, se o SAMBA
está ativado, os parâmetros do
smb.conf e tente novamente.
O comando acima ativa o protocolo de mudança de senhas, gerando um nova
conta aleatória para o
servidor SAMBA, normalmente guardada em: /usr/local/samba/private.
O nome do arquivo será semelhante a: EMPRESA.Samba.mac
Em seguida, edite o smb.conf e inclua os seguintes parâmetros na seção
[global]:
sercurity = domain #Pois agora o SAMBA pertence a um Domínio existente.
workgroup = EMPRESA #Este é o Domínio utilizado.
encrypt passwords = yes #Para logon encriptado.
password server = File_Server Backup1 Backup2 #Autenticação no domínio.
Reinicialize o SAMBA para validar as mudanças.
ADICIONANDO USUÁRIOS NT AO DOMÍNIO SAMBA
Se voce possui um PDC SAMBA e estações Windows NT Workstation
(utilizando senha encriptada), deve
seguir o modelo abaixo para criar contas específicas para estas
estações.
Em primeiro lugar, crie o arquivo smbpasswd (se ele não existir)
conforme abaixo e de a permissão
apropriada:
#touch /usr/local/samba/private/smbpasswd
#chmod go-rwx /usr/local/samba/private/smbpasswd
É interessante destacar que dependendo da distribuição este arquivo pode
estar no diretório /etc como link
(ou não) para seu diretório original, guardando muitas vezes a
configuração sem nada escrever em
/usr/local/samba/private/smbpasswd. Confira a localização correta do
arquivo e só entao siga em frente.
Agora adicione a conta NT, onde o exemplo abaixo utiliza o nome de
usuário "teste" e o grupo "estacoes"
(que deve ser criado manualmente com o comando groupadd), que não contém
password, shell ou diretório
home. Perceba que o $ foi adicioando ao final do nome:
#adduser -g estacoes -c NTWorkstation -d /dev/null -s /bin/false -n
teste$
Importante: quem utiliza FreeBSD, não deve adicionar o $ no final do
nome da conta pois o adduser deste
sistema não aceita tal caracter. Utilize o vipw ou outro similar para
adicionar manualmente no arquivo
/etc/passwd.
Adicione agora a conta ao smbpasswd, digitando:
# smbpasswd -a -m teste$
Para que a estação NTWorkstation possa agora participar do Domínio, vá
até o Painel de Controle do NT e
selecione Network -> Identification Tag. Peça para mudar o Domínio para
o especificado no smb.conf
(workgroup = ...). Não marque a opção "Create a Computer Account in teh
Domain" pois não funciona!
Pressione OK e após alguns segundos a mensagem "Welcome to Whatever
Domain" aparecerá na tela.
Reboot e o logon estará disponível.
EXEMPLO DE SCRIPT PARA ESTAÇÕES WINDOWS95/98 E NT
O login script (ou logon script) é uma ferramenta muito útil para
disponibilizar recursos na rede. O script
abaixo é um exemplo que pode usado em redes com estações Windows95/98 e
NTWorkstations.
Lembre-se de que deve sre criado com o notepad (por exemplo) em uma
estação Windows para que
funcione corretamente! (Confira a seção [global] no início do documento
para saber mais sobre o logon
script). Note que a sintaxe do comando net é diferente para sistemas
95/98 e NT.
rem Logon script padrao para a rede.
net time \\servidor1 /set /yes
@echo off
if %OS%.==Windows_NT. goto WinNT
:Win95
net use X: \\servidor1\pasta_01
net use Z: /HOME
goto end
:WinNT
net use X: \\servidor1\pasta_01 /persistent:no
net use Z: /HOME /persistent:no
:end
MONTANDO UNIDADES DE CD-ROM AUTOMATICAMENTE
(Contribuição Linux Unleashed)
Para você utilizar o cdrom em rede sem ter o incômodo de montar e
desmontá-lo a toda hora que ele é
trocado, basta utilizar-se do comando de pré-execução (root preexec) e
pós-execução (root postexec) do
samba, com isto o mount será executado quando o diretório compartilhado
for acessado e umount quando
não houver nenhuma conexão com o diretório compartilhado. Bom para isto,
basta acrescentar as seguintes
linhas no smb.conf:
[CDRom_1]
comment = Acesso ao CDROM 1
path = /mnt/cdrom
guest account = nobody
valid users = @users
root preexec = /bin/mount /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
Obs: Para simplicar a linha de comando de montagem do cdrom, este deve
já estar dimensionado no
/etc/fstab:
/dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0
CONFIGURANDO O SAMBA REMOTAMENTE
Além de ser um software de uso livre e compatível com redes existentes,
o SAMBA ainda possui outra
característica: permite ser administrado remotamente. Para isso deve
utilizar um programa específico que
geralmente trabalha via http. Não vou entrar em detalhes de como
instalar estes programas ou utilizá-los,
mas abaixo está o link para downloads, inclusive de programas para
administrar o SAMBA através da
Interface Gráfica do Linux:
http://us4.samba.org/samba/GUI/
CONSIDERAÇÕES
Abaixo estao algumas considerações importantes sobre o SAMBA:
O SAMBA permite ainda muitas outras configurações que podem ser
consultadas através do man do
smb.conf. Uma documentação importante está em /usr/doc/samba-2.0.x/ com
dicas e referencias a
segurança, navegação, compatibilidades, etc.
Uma característa das versoes mais recentes do SAMBA é a possibilidade de
um cliente WinNT usar sua
interface nativa de configuração para ver e modificar permissoes no
Linux. O parâmetro "nt acl support =
yes" deve ser adicionado na seção [global] do smb.conf.
É aconselhável reiniciar o SAMBA a cada modificação no smb.conf (embora
não seja realmente necessário),
principalmente em se tratando de parâmetros como "path", "logon master",
e outros que definem acesso ou
segurança.
Por padrao o SAMBA não utiliza autenticação encriptada na rede, mas sim
"clear text". Versoes mais atuais
do Windows95 e 98 não utilizam o modo "clear text". Para resolver este
problema temos duas soluções:
Solução 1 - Inserir os parâmetros "encript passwords = yes" e "smb
passwd file = /etc/smbpasswd" na seção
[global] do smb.conf e certificar-se de que todas as estações na rede
utilizam autenticação encriptada no
logon. Para fazer o Windows trabalhar com senhas criptografadas, use o
regedit e crie a seguinte chave:
Windows 95/98
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword Data:
0x01.
Windows NT 4.0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters
Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword Data:
0x01
Uma vez que as alterações no registro tenham sido feitas, reinicie a
máquina Windows e tente mapear um
drive de rede no servidor Samba de novo. Isto deve funcionar, já que o
servidor Samba está usando senhas
não criptografadas.
Para maiores detalhes, leia os arquivos ENCRYPTION.txt, Win95.txt e
WinNT.txt na documentação do Samba.
Se seus clientes e seu servidor estao usando senhas criptografadas, voce
não será capaz de visualizar
compartilhamentos no servidor até que uma conexao inicial tenha sido
feita com a autenticação apropriada.
Para conseguir a conexao inicial, entre o nome do compartilhamento
manualmente no Gerenciador de
Arquivos ou na caixa de diálogo do Explorer, na forma '\\\'. Registre-se
no servidor com um nome de
usuário e senha que lhe são válidos.
Se voce suspeita que seu serviço de nomes NetBIOS não está corretamente
configurado (talvés porque voce
tenha obtido erros 'host not found' ao tentar se conectar), tente usar
somente o endereço IP do servidor:
'\\\'. Para que o nome dos arquivos apareçam corretamente, voce pode
precisar configurar algumas opções
na seção de compartilhamento apropriada. Adicione o seguinte parâmetro
para clientes Windows 85/98/NT,
mas pode apresentar problemas para clientes WfW: "mangle case = yes".
Solução 2 - Não utilizar encriptação no logon, alterando uma chave no
registro do Windows. O SAMBA trás
o arquivo .reg para cada versão do Windows com a chave modificada.
Execute o arquivo correspondente
para validar a mudança (eles estao em /usr/doc/samba-2.0.x/docs).
Se voce não possui estes arquivos, abaixo estao as chaves que devem ser
modificadas nas estações Windows
para não utilizar o "clear text":
Windows 95/98
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
WindowsNT 4.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]
"EnablePlainTextPassword"=dword:00000001
Windows 2000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]
"EnablePlainTextPassword"=dword:00000001
É claro que se sua rede for "sniffada", os passwords que não estiverem
encriptados serão descobertos. Em
alguns casos vale a pena tirar a criptografia de login e monitorar a
rede com um anti-sniffer. Deve-se levar
em consideração redes heterogeneas, onde tem-se estações DOS6.x, WfW, 95
(A, B e C), 98 (1st e SE), NT,
2000.
Se o SAMBA deve diferenciar maiúsculas e minúsculas quando procurando
por arquivos, adicione "case
sensitive = no". Para utilizar como padrao letras maiúsculas ou
minúsculas quando os arquivos são criados,
adicione "default case = lower". Para preservar maiúsculas e minúsculas
para todos os nomes de arquivo,
adicione "preserve case = yes". Para preservar maiúsculas e minúsculas
para nomes DOS (8.3), adicione
"short preserve case = no".
Se o servidor possui mais de uma placa de rede, o smb.conf deve conter
uma especificação para qual
placa(s) será utilizada. Adicione o seguinte parâmetro: "interfaces =
192.168.1.1/24", onde o número depois
da / é uma referencia a máscara de sub-rede. "24" é o valor a usar para
uma rede Classe C não segmentada.
Para mais informações sobre cálculo de sub-redes visite:
http://www.ziplink.net/~ralphb/IPSubnet/index.html
Lembre-se que a documentação do SAMBA (do protocolo SMB em geral) é
extensa. Consulte os docs criados
após a sua instalação. Voce pode também obter referencias em
documentações do LDP (Linux
Documentation Project), que no Brasil está em:
http://ldp-br.conectiva.com.br/.
Se voce encontrou algum erro neste manual, tem alguma sugestao, dica ou
crítica a fazer, por favor, entre
em contato através do meu email: vffz@hotmail.com
Sou atualmente administrador de redes Linux, com enfase em aplicação e
segurança.
EOF
--
Ricardo Soares Guimarães (GNOME - Brazil / KDE Brazil)
LDP-BR - LIE-BR
ricardo@conectiva.com.br +55 041-360-2682 uin: 39252777
As esplendidas fortunas - como os ventos impetuosos -
provocam grandes naufragios.
-- Plutarco
Assinantes em 07/03/2001: 333
Mensagens recebidas desde 07/01/1999: 1802
---------------------------------------------------------------------
Visite o canal IRC oficial da ldp-br em irc.linux.org canal #ldp-br
Histórico e informações: http://ldp-br.conectiva.com.br
Sair da lista: mailto:ldp-br-unsubscribe@bazar.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:ldp-br-owner@bazar.conectiva.com.br