player


MusicPlaylistView Profile
Create a playlist at MixPod.com

segunda-feira, 16 de abril de 2012

Curso basico de compartilhamento com o samba

Configuração

A configuração do Samba pode ser feita de duas maneiras: Via Web, utilizando um aplicativo distribuído juntamente com o Samba e via arquivo de configuração. Aqui optamos pela configuração via arquivo, este chamado smb.conf e localizado normalmente no diretório /etc ou ainda /etc/samba, dependendo da distribuição.

O arquivo de configuração não é sensível a maiúsculas (case sensitive), então tanto faz a utilização de maiúsculas como de minúsculas. Todas as linhas iniciadas pelo caractere "#" ou ";" são descartadas - para propósito de comentários, que trazem uma melhor organização do arquivo. O símbolo "\" indica continuação de linha, caso o parâmetro a ser configurado possui mais de uma linha.

Frisa-se novamente que o arquivo abaixo contém uma simples demonstração de configuração, compatível com o pouco tempo que temos. Para maiores detalhes, aconselho a leitura de um livro ou mesmo da documentação que acompanha o Samba (Man Pages, FAQs (Frequently Asked Questions), HOWTOs, eBooks, etc).

Seguem as configurações:

[global]
# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = NOME_DO_GRUPO_DE_TRABALHO
# server string is the equivalent of the NT Description field
   server string = STRING_IDENTIFICADORA_DO_SERVIDOR
   comment = COMENTARIO_DO_SERVIDOR
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
;   hosts allow = 192.168.1. 192.168.2. 127.
    hosts allow = 127. 192.168.0. 192.168.1.
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
   printcap name = /etc/printcap
   load printers = yes
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
   printing = lprng
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/%m.log
# Put a capping on the size of the log files (in Kb).
   max log size = 0
# Security mode. Most people will want user level security. See
# security_level.txt for details.
   security = user
# Use password server option only with security = server or
# security = domain
;   password server =
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
;  password level = 8
;  username level = 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
  encrypt passwords = yes
  smb passwd file = /etc/samba/smbpasswd
# The following is needed to keep smbclient from spouting spurious errors
# when Samba is built with support for SSL.
#   ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
# The following are needed to allow password changing from Windows to
# update the Linux sytsem password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
#the encrypted SMB passwords. They allow the Unix password
#to be kept in sync with the SMB password.
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n
;*passwd:*all*authentication*tokens*updated*successfully*
# Unix users can map to different SMB User names
  username map = /etc/samba/smbusers
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /etc/samba/smb.conf.%m
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
;   interfaces = 192.168.12.2/24 192.168.13.2/24
    interfaces = 192.168.0.1/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
#      a specific host or from / to a whole subnet (see below)
;   remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
   remote announce = 192.168.0.255
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
   local master = yes
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
   os level = 65
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
;   domain master = yes
   domain master = yes
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
   preferred master = yes
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
   domain logons = yes
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
;   logon script = %m.bat
# run a specific logon batch file per username
;   logon script = %U.bat
# Where to store roving profiles (only for Win95 and WinNT)
# %L substitutes for this servers netbios name, %U is username
#You must uncomment the [Profiles] share below
logon path = \\%L\%U\Profile
#logon path = \\%L\Profiles\%U
logon drive = x:
# All NetBIOS names must be resolved to IP Addresses
# 'Name Resolve Order' allows the named resolution mechanism to be specified
# the default order is "host lmhosts wins bcast". "host" means use the unix
# system gethostbyname() function call that will use either /etc/hosts OR
# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf
# and the /etc/resolv.conf file. "host" therefore is system configuration
# dependant. This parameter is most often of use to prevent DNS lookups
# in order to resolve NetBIOS names to IP Addresses. Use with care!
# The example below excludes use of name resolution for machines that are NOT
# on the local network segment
# - OR - are not deliberately to be known via lmhosts or via WINS.
; name resolve order = wins lmhosts bcast
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
   wins support = yes
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
;   wins proxy = yes
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
   dns proxy = no
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
;  preserve case = no
;  short preserve case = no
# Default case is normally upper case for all DOS files
;  default case = lower
# Be very careful with case sensitivity - it can break things!
;  case sensitive = no
client code page = 850
character set = ISO8859-1
domain admin group = root
admin users = root
#============== Share Definitions =====================
                (Definição de compartilhamentos)

[homes]
   comment = Home Directories
   browseable = no
   writable = yes
[apps]
    comment = Aplicativos
    path = /ftp/
    writeable = no
[cdrom]
    comment = CDROM
    path = /mnt/cdrom
    writeable = no
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
# Set public = yes to allow user 'guest account' to print
   guest ok = no
   printable = yes
# This one is useful for people to share files
;[tmp]
;   comment = Temporary file space
;   path = /tmp
;   read only = no
;   public = yes
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
;   comment = Public Stuff
;   path = /home/samba
;   public = yes
;   writable = yes
;   printable = no
# Other examples.
# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
;   comment = Fred's Service
;   path = /usr/somewhere/private
;   valid users = fred
;   public = no
;   writable = yes
;   printable = no
# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %u option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
;   path = /usr/somewhere/else/public
;   public = yes
;   only guest = yes
;   writable = yes
;   printable = no
# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
;   comment = Mary's and Fred's stuff
;    path = /usr/somewhere/shared
;    valid users = mary fred
;    public = no
;    writable = yes
;    printable = no
;    create mask = 0765
 

Testando as configurações do Samba

Para testarmos nosso arquivo de configuração, basta rodarmos o aplicativo testparm, que vem junto com o Samba.

# /etc/samba/testparm

Ou simplesmente executando o "testparm" no terminal.

Depois de devidamente configurado, devemos então inicializar o smbd e o nmbd. Para isto existem duas opções: Inicializar como daemon ou inicializar via inetd. Aqui, utilizaremos o primeiro método.

# /usr/local/samba/bin/smbd -D
# /usr/local/samba/bin/nmbd -D


Caso queira que tais daemons inicializem de forma automática, basta adicionar tais linhas ao seu /etc/rc.local. Nas distribuições comuns, o Samba já vem compilado e pré-configurado, não sendo necessárias as inicializações dos daemons de forma direta. Existem scripts para tais funções, onde é possível iniciar (start), parar (stop), reiniciar (restart) e outras funções - todas dependentes de distribuição! 
 
 

Aplicativos

Aplicativos que acompanham o pacote:
  • findsmb - Lista as informações das máquinas que respondem à requisição SMB.
  • make_unicodemap - Organiza um mapa de Unicode para o Samba.
  • make_smbcodepage - Organiza uma página de códigos para o Samba.
  • nmbd - Servidor de Nomes NetBIOS para clients.
  • nmblookup - Cliente NetBIOS sobre TCP/IP, para encontrar máquinas NetBIOS.
  • rpcclient - Executa funções do RPC no cliente.
  • smbcacls - Seta ou obtém ACLs
  • smbclient - Cliente para acesso à SMB/CIFS
  • smbcontrol - Envia mensagens para o smbd, nmbd e winbindd.
  • smbd - Servidor de SMB/CIFS.
  • smbmnt - Utilitário para agregar diretórios de clientes ao servidor (mount-like).
  • smbmount - Agrega (mount) um tipo de partição smbfs.
  • smbpasswd - Altera ou cria uma senha para o usuário.
  • smbspool - Envia um arquivo de impressão para uma impressora SMB
  • smbstatus - Retorna status atual do servidor.
  • smbtar - Script para backup de compartilhamentos no dispositivo de backup.
  • testparm - Checa a sintaxe do arquivo de configuração smb.conf.
  • testprns - Checa impressoras.
  • wbinfo - Obtém informações junto à daemon winbindd.
  • winbindd - Name Service Switch daemon, resolução de nomes em servidores NT

Segurança

Segurança do servidor Para este tópico, por se tratar de um assunto de suma importância, recomenda-se a leitura completa da seção 6 do The Unoffical Samba HOWTO, por David Lechnyr. Este HOWTO engloba o Samba de forma completa, se tratando de um referencial excelente para o assunto. O HOWTO se encontra em:

Segurança do cliente

Devido à grande gama de bugs no sistema operacional Windows, da Microsoft, a principal medida de segurança em nível de cliente consiste em atualizações constantes junto ao Microsoft Windows Update. Pode não ser tão eficiente quanto deveria ser, mas infelizmente é a única opção que nos resta quanto a bugs nos produtos Microsoft.

Outras medidas devem ser aplicadas na configuração dos compartilhamentos.

Recomenda-se uma constante conscientização dos usuários de clientes Windows quanto ao uso de senhas em todo e qualquer tipo de compartilhamento, bem como a não utilização do serviço "Compartilhamento Completo", nem mesmo com senhas, visto que tais senhas não oferecem segurança confiável.

Manter a rede longe dos vírus também é importante, pois pode haver infecção através do Compartilhamento de Arquivos e Impressoras do Windows.

Considerações finais

Aqui foi abordado ou pelo menos tentei resumir um pouco o uso do Samba numa rede.

Faz-se necessária a leitura de livros e ou apostilas sobre o assunto, já que uma rede de computadores para se ter total segurança, depende sempre de atualizações constantes, não só do sistema, mas também do profissional que esta à frente dela, o domínio dessas informações requer um certo sacrifício, mas vale a pena, pois um profissional bem preparado é sinal de bons frutos colhidos.

Abraços a todos!!!

Espero ter colaborado de alguma forma.
 

Nenhum comentário:

Postar um comentário