Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Samba )

Como Configurar o SAMBA 2.0.x

Por Victor Zucarino - Rio de Janeiro, dezembro de 2000 - atualizaçao 4.2 - vffz@hotmail.com

Referencias: Documentaçao e Manuais do SAMBA

Este manual é dedicado a todos aqueles que buscam divulgar o Linux no Brasil e no mundo, a todos que trabalham por sua documentaçao (LDP e todos os outros), a todos os sites nacionais que trabalham para disponibilizar informaçoes diversas, e em especial aos que acreditam e se esforçam para manter a proposta do GNU Linux.

O QUE É O SAMBA?

O SAMBA é uma aplicaçao 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çoes já trazem o SAMBA como padrao, mas seu download e atualizaçoes 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çao específica. O Windows NT e o 2000 (assim como o NetWare 5 e outros presentes no mercado) sao reconhecidos mundialmente por sua segurança e escalabilidade, mas o SAMBA possui muitas vantagens que podem se transformar em soluçoes e economia para sua empresa. Confira:

- Permite compatibilidade com estaçoes Windows (de WfW a 2000) e servidores WinNT 4.0 e 2000. Entre servidores e estaçoes Linux (com Interface Gráfica por exemplo) a compatibilidade é total.

- O SAMBA é 100% configurável, com a grande vantagem de centralizar esta configuraçao em um único arquivo, o smb.conf. Sem dúvida é muito interessante ter a possibilidade de restaurar toda a configuraçao 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 nao quer dizer que nao seja necessário o backup de outros arquivos de configuraçao... :)

- Todo o SAMBA pode ser configurado remotamente através de acesso seguro, além do recebimento por email de informaçoes do estado do servidor (bastando utilizar um script específico que busca informaçoes nos arquivos de log e cria um arquivo que pode ser enviado por email).

- Em se falando de economia nao 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çoes.

- 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 discussao dedicadas ao assunto, entre outras documentaçoes 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 sao especializados em Linux e Segurança para Linux.

Se a sua empresa busca uma soluçao estável e segura para Servidor de Arquivos da rede, o SAMBA é uma grande opçao.

INSTALAÇÃO

Se a distribuiçao que deseja utilizar já traz o SAMBA, a instalaçao nao é necessária. Se deseja atualizá-lo ou iniciar a instalaçao, 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 [ENTER]

Substituindo o "x" pelo número relativo a versao do pacote ou o nome correto do pacote dependendo da sua distribuiçao. 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 [ENTER]

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çao digite:

./configure [ENTER]

Em seguida digite:

make [ENTER]

Os binários do SAMBA serao criados. Quando terminar digite:

make install [ENTER]

Agora os binários e páginas do man serao instalados. Aguarde o processo e quando terminar confira o diretório /usr/doc/samba-2.0.x/docs para informaçoes sobre o SAMBA.

CONFIGURAÇÃO

Toda a configuraçao do SAMBA é centralizada no arquivo smb.conf, que deve ser guardado no diretório /etc. Nele é que sao descritos os compartilhamentos, permissoes de acesso, impressoras, dentre outras configuraçoes disponíveis. Quando instalado, o SAMBA disponibiliza os seguintes componentes:

O smb.conf é dividido basicamente em tres partes: a configuraçao do servidor SAMBA (parâmetros na seçao [global]), a configuraçao dos diretórios/pastas pessoais dos usuários (parâmetros na seçao [homes]) e as demais seçoes que correspondem aos diretórios compartilhados.

Cada seçao é representada entre colchetes [teste], e os parâmetros sao seguidos do sinal de igual (=) e o valor ou termo correspondente.

Confira abaixo um exemplo do smb.conf e em seguida a explicaçao de cada parâmetro presente nas seçoes:

   [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 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

A seçao [global] define as configuraçoes globais do SAMBA. A tabela abaixo apresenta a explicaçao dos parâmetros do exemplo:

Parâmetros

Funçoes

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), mas existem outras opçoes: 

security = share -> Senhas de acesso serao solicitadas por cada recurso compartilhado e nao por usuário, ou seja, cada diretório ou impressora poderá ter uma senha única conhecida pelos usuários autorizados. 

security = user -> As permissoes sao 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çao [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çoes de usuário e senha serao 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 nao é obrigatório se voce nao 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çao do login das estaçoes.

announce as 

Permite especificar o tipo de servidor NetBios (nmbd) que será divulgado na rede. As opçoes aceitas pelo SAMBA: "NT Server", "NT Workstation", "Win95" ou "WfW".

domain logons 

Usado para validar o login na rede, apenas para estaçoes 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çao 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çao. Mas tome cuidado: se voce possui uma rede com servidores Windows e SAMBA e já possui um servidor como Domain Master, nao use esta opçao 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 nao 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çoes tenham acesso a estas informaçoes e ganho em velocidade para encontrar e acessar os compartilhamentos e impressoras. O Wins Server deve ser especificado na configuraçao de rede (TCP/IP) das estaçoes, 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çoes Linux.

debug level 

Parâmetro usado para dar flexibilidade a configuraçao do sistema. Permite ao SAMBA trabalhar corretamente com algumas situaçoes de erro, por exemplo.

winpopup command 

Especifica qual commando será executado quando o servidor receber mensagens Winpopup. Aqui, muitas opçoes 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 nao 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çoes Windows) poderao trocar sua senha de login.

socket options 

Este parâmetro permite configuraçoes extras para o protocolo, possibilitando uma melhor performance do servidor em lidar com os pacotes na rede.

printing 

Indica qual o sistema de impressao padrao utilizado pelo Linux.

printcap name 

Indica o arquivo para busca das definiçoes 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.

A seçao [homes] define os parâmetros para as pastas pessoais dos usuários na rede (home dir):

Parâmetros

Funçoes

comment 

Comentário para este compartilhamento.

public 

Também conhecido como .guest ok., permite ou nao acesso de outros usuários.

browseable 

Define se o compartilhamento será ou nao visível para o Ambiente de Rede. Estaçoes Windows95 versao 4.00.950-C nao aceitam esta opçao, onde uma possível soluçao é utilizar o nome do compartilhamento seguido de $ (teste$ por exemplo), como faz-se no Windows.

writeable 

Indica se o usuário poderá ou nao ecrever em sua pasta pessoal (home dir).

As demais seçoes correspondem a compartilhamentos presentes na rede. Os parâmtros abaixo sao apenas alguns dos possíveis:

Parâmetros

Funçoes

comment 

Comentário para o compartilhamento.

path 

Caminho do diretório compartilhado

writeable 

Indica se será ou nao possível criar ou excluir arquivos ou diretórios do compartilhamento. 

public / guest ok 

Indica se será ou nao permitido o acesso de outros usuários.

browseable 

Define se o compartilhamento será ou nao 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á permissao de apenas leitura.

force create mode 

Diz ao SAMBA para forçar o tipo de permissao dos arquivos criados (o mesmo que usar o chmod). Esta permissao 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 sao os usuários com permissao completa para o compartilhamento (permissao de root).

copy 

Permite copiar os parâmetros de outra seçao, como um template por exemplo, útil se utiliza compartilhamentos semelhantes. Para alterar parâmetros basta informá-los na seçao 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).

A tabela abaixo apresenta variáveis que podem ser usadas em parâmetros:

Variáveis

Funçoes

%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çao 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 sao 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 [ENTER] [enter novamente]

Será criado o arquivo teste_config_samba. Confira este arquivo e caso exista alguma mensagem de erro (ERROR...) volte e corrija o problema. Acertadas as configuraçoes, deve-se ativar o SAMBA:

/etc/rc.d/init.d/smb start [ENTER]

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çao do servidor, execute o ntsysv [nota do editor: caso sua distribuição de Linux não use o ntsysv, utilize o método descrito no manual específico da mesma] 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 [ENTER]).

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" [ENTER].

A partir de agora, sempre que o computador for reiniciado o SAMBA será ativado automaticamente.

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çao, sem que nenhuma configuraçao 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 sao 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 sao acessados da mesma forma.

Para verificar quais compartilhamentos estao disponíveis em um determinado Host, execute:

/usr/sbin/smbclient -L host_desejado [ENTER]

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 nao tenha itens de segurança configurados, será solicitada uma senha antes de mostrar as informaçoes. Exemplo:

smbclient -L servidor1 [ENTER]

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 [ENTER]

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çao é muito útil para garantir backup de arquivos em estaçoes com pastas compartilhadas mas que nao 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 [ENTER]

Para conferir se o arquivo foi criado corretamente, digite:

tar -tvf vacina.tar [ENTER]

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çoes troquem suas senhas de logon, utilizando o smbpasswd. Ele age de forma similar ao comando passwd, mas as senhas sao 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çao junto ao Linux, a senha encriptada, o indicador de como está a conta e a data de última alteraçao 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çoes).

O smbstatus

Para saber a situaçao atual das conexoes SAMBA, utilizamos o smbstatus ($smbstatus [ENTER]). Abaixo está a lista das opçoes 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çao (smb.conf2 por exemplo), que deve ser especificado após a opçao.
-u -> Lista as informaçoes relevantes sobre o usuário, que deve ser especificado após a opçao.

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 impressao. Pode ser ativado da seguinte forma:

testprns [ENTER]

Encontrada uma impresora válida, a mensagem "Valid Printer" (ou outra semelhante, dependendo da distribuiçao 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: nao 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 [ENTER]

Se o comando foi bem sucedido, aparecerá a mensagem:

smbpasswd: Joined domain EMPRESA

Se algo deu errado, 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çao [global]:

   security = 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çao 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çoes Windows NT Workstation (utilizando senha encriptada), deve seguir o modelo abaixo para criar contas específicas para estas estaçoes.

Em primeiro lugar, crie o arquivo smbpasswd (se ele nao existir) conforme abaixo e de a permissao apropriada:

touch /usr/local/samba/private/smbpasswd [ENTER]
chmod go-rwx /usr/local/samba/private/smbpasswd [ENTER]

É interessante destacar que dependendo da distribuiçao este arquivo pode estar no diretório /etc como link (ou nao) para seu diretório original, guardando muitas vezes a configuraçao sem nada escrever em /usr/local/samba/private/smbpasswd. Confira a localizaçao 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 nao 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$ [ENTER]

Importante: quem utiliza FreeBSD, nao deve adicionar o $ no final do nome da conta pois o adduser deste sistema nao aceita tal caracter. Utilize o vipw ou outro similar para adicionar manualmente no arquivo /etc/passwd. [Nota do editor: para evitar riscos, coloque o teste$ entre aspas simples, assim: 'teste$' - tanto em FreeBSD como emqualquer outro SO]

Adicione agora a conta ao smbpasswd, digitando:

smbpasswd -a -m teste$ [ENTER]

Para que a estaçao 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 = ...). Nao marque a opçao "Create a Computer Account in teh Domain" pois nao 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çoes Windows95/98 e NTWorkstations. Lembre-se de que deve sre criado com o notepad (por exemplo) em uma estaçao Windows para que funcione corretamente! (Confira a seçao [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

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. Nao 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çoes importantes sobre o SAMBA:

O SAMBA permite ainda muitas outras configuraçoes que podem ser consultadas através do man do smb.conf. Uma documentaçao importante está em /usr/doc/samba-2.0.x/ com dicas e referencias a segurança, navegaçao, compatibilidades, etc.

Uma característa das versoes mais recentes do SAMBA é a possibilidade de um cliente WinNT usar sua interface nativa de configuraçao para ver e modificar permissoes no Linux. O parâmetro "nt acl support = yes" deve ser adicionado na seçao [global] do smb.conf.

É aconselhável reiniciar o SAMBA a cada modificaçao no smb.conf (embora nao 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 nao utiliza autenticaçao encriptada na rede, mas sim "clear text". Versoes mais atuais do Windows95 e 98 nao utilizam o modo "clear text". Para resolver este problema temos duas soluçoes:

Soluçao 1 - Inserir os parâmetros "encript passwords = yes" e "smb passwd file = /etc/smbpasswd" na seçao [global] do smb.conf e certificar-se de que todas as estaçoes na rede utilizam autenticaçao 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çoes 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 nao criptografadas.

Para maiores detalhes, leia os arquivos ENCRYPTION.txt, Win95.txt e WinNT.txt na documentaçao do Samba. Se seus clientes e seu servidor estao usando senhas criptografadas, voce nao será capaz de visualizar compartilhamentos no servidor até que uma conexao inicial tenha sido feita com a autenticaçao 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 sao válidos.

Se voce suspeita que seu serviço de nomes NetBIOS nao 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çoes na seçao 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çao 2 - Nao utilizar encriptaçao no logon, alterando uma chave no registro do Windows. O SAMBA trás o arquivo .reg para cada versao 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 nao possui estes arquivos, abaixo estao as chaves que devem ser modificadas nas estaçoes Windows para nao 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 nao estiverem encriptados serao 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çao redes heterogeneas, onde tem-se estaçoes 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 sao 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çao 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 nao segmentada. Para mais informaçoes sobre cálculo de sub-redes visite:

http://www.ziplink.net/~ralphb/IPSubnet/index.html

Lembre-se que a documentaçao do SAMBA (do protocolo SMB em geral) é extensa. Consulte os docs criados após a sua instalaçao. Voce pode também obter referencias em documentaçoes do LDP (Linux Documentation Project), que no Brasil está em: [4]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çao e segurança.

EOF


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.