SambaServer

Revision 4 as of 2007-06-21 04:47:55

Clear message


Samba Server como Controlador de Domínio para pequenas redes com Ubuntu 6.10


Esta é uma descrição detalhada sobre como configurar um servidor Ubuntu para funcionar como um servidor de arquivos e impressoras para estações de trabalho Windows em pequenas redes.

Softwares à serem instalados:

- Samba como Controlador de Domínio;

- Cups;

- Foomatic Printer Drivers.

Requisitos:

Para instalar o sistema você precisará:

- Um CD de instalação do Ubuntu Server disponível em: http://www.ubuntu.com/download;

- Uma conexão com a internet.

Na primeira parte deste tutorial, vamos instalar o sistema básico do Ubuntu. Você pode pular esta parte caso já tenha o seu sistema instalado.

1. Instalação do Sistema Básico.

Insira o seu CD de instalação do Ubuntu Server e dê o boot no sistema por ele.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_1.png

A instalação sera iniciada e primeiro você deve selecionar o seu idioma:

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_2.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_3.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_4.png

Escolha o seu layout do teclado:

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_5.png

Escolha sua localização:

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_6.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_7.png

A instalação começará a escanear os pacotes no CD-Rom:

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_8.png

Entre com o hostname. Neste exemplo, meu sistema se chamará "fileserver1", então digito "filesever1"

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_9.png

Particionando o disco no servidor. Eu usarei uma partição maior para o sistema operacional e os dados, e uma pequena partição de swap.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_10.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_11.png

Configure a hora do sistema com algum UTC (Hora Universal), ou com a hora local.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_12.png

Agora criaremos o primeiro usuário que será usado com objetivos de administração do sistema. Vamos chamá-lo de administrator.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_13.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_14.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_15.png

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_16.png

A instalação do sistema base será inciada.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_17.png

Não selecione nada aqui. Apenas mande continuar...

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_18.png

A instalação dos pacotes será iniciada:

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_19.png

A instalação básica irá terminar e seu servidor irá dar o boot com o seu novo sistema Ubuntu Linux.

http://images.howtoforge.com/images/samba_setup_ubuntu_6.10/img_20.png

2. Instalando e configurando o restante do sistema.

  • Habilitando o usuário root:

Agora iremos fazer login no sistema com o usuário administrator e o password escolhido durante a instalação. Iremos habilitar o usuário root primeiro para facilitar o restante da instalação. Se desejar, depois você pode desabilitá-lo.

sudo passwd root 
su

Agora estamos logados no sistema como usuário root.

Observação: Este procedimento é opcional e se você não deseja habilitar o usuário root por razões de segurança, por favor execute o comando abaixo para alternar para o usuário root sem habilitar o mesmo para poder efetuar login diretamente.

sudo su
  • Configurando a rede:

Como o instalador do Ubuntu configurou o sistema para utilizar as configurações de rede via DHCP, nós devemos alterar agora esta configuração pois o servidor deve possuir um endereço ip estático. Edite o arquivo /etc/network/interfaces e ajuste a configuração da maneira que você precisar. Neste exemplo, iremos utilizar o endereço ip 192.168.0.100.

vi /etc/network/interfaces

# This file describes the network interfaces available on your system 
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
        script grep
        map eth0

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

Agora de um restart no serviço de rede:

/etc/init.d/networking restart

Edite o arquivo /etc/hosts e adicione o seu endereço ip:

vi /etc/hosts

127.0.0.1       localhost.localdomain   localhost       server1
192.168.0.100   server1.example.com     server1


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
  • Configurando o Hostname:

echo server1.example.com > /etc/hostname 
/bin/hostname -F /etc/hostname
  • Edite o arquivo /etc/apt/sources.list e atualize a sua instalação do Linux: ( Neste momento precisaremos da sua conexão com à Internet )

Agora nós editaremos o arquivo /etc/apt/sources.list para habilitar o repositório universe do Ubuntu.

vi /etc/apt/sources.list 

Ele deverá ficar assim:

#
# deb cdrom:[Ubuntu-Server 6.10 _Edgy Eft_ - Release i386 (20061025.1)]/ edgy main restricted


#deb cdrom:[Ubuntu-Server 6.10 _Edgy Eft_ - Release i386 (20061025.1)]/ edgy main restricted

deb http://de.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ edgy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ edgy-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ edgy universe
deb-src http://de.archive.ubuntu.com/ubuntu/ edgy universe

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse


deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
deb http://security.ubuntu.com/ubuntu edgy-security universe
deb-src http://security.ubuntu.com/ubuntu edgy-security universe

Agora nós carregaremos as novas fontes e atualizaremos o nosso sistema:

apt-get update
apt-get upgrade
  • Instalando o Daemon SSH:

apt-get install ssh openssh-server
  • Os próximos passos:

Agora você pode efetuar o login no seu servidor à partir de uma máquina Windows cliente, com o Putty ( software cliente ssh ) (http://www.chiark.greenend.org.uk/~sgtatham/putty/). Esta é uma maneira fácil de você se conectar ao seu servidor SSH, e usar o Putty para copiar e colar os comandos. Mas se você desejar editar os arquivos de configuração no servidor, você pode usar os editores de linha de comando como vi, pico ou o joe, ou usar o programa WinSCP (http://winscp.net/eng/docs/lang:en) para editar os arquivos usando sua conexão SSH em um cliente Windows.

  • Quota:

apt-get install quota

Edite o arquivo /etc/fstab conforme mostrado abaixo. Note que foi adicionado usrquota,grpquota para as partições com o mount point: /

vi /etc/fstab 

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1
UUID=226d9304-88ca-44c0-a3e3-d1ad26cfc084 /               ext3    defaults,errors=remount-ro,usrquota,grpquota 0       1
# /dev/sda5
UUID=d824ce36-04b8-4870-83f4-f1a5037c2de4 none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0

E execute:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

Você verá a mensagem de erro abaixo quando rodar o comando quotacheck –avugm pela primeira vez:

quotacheck: WARNING - Quotafile //quota.user was probably truncated. Cannot save quota settings...
quotacheck: WARNING - Quotafile //quota.group was probably truncated. Cannot save quota settings...

Isto é normal, não se preocupe.

  • SAMBA Server:

apt-get install samba samba-common samba-doc libcupsys2-gnutls10 libkrb53 winbind smbclient

Edite o arquivo /etc/samba/smb.conf conforme mostrado abaixo:

[global]
   workgroup = MYWORKGROUP
   netbios name = SERVER1
   server string = %h server (Samba, Ubuntu)

   
   passdb backend = tdbsam
   security = user
   username map = /etc/samba/smbusers
   name resolve order = wins bcast hosts
   domain logons = yes
   preferred master = yes
   wins support = yes
   
   # Set CUPS for printing
   load printers = yes
   printcap name = CUPS
   printing = CUPS
   printer admin = @lpadmin
   
   # Default logon
   logon drive = H:
   logon script = scripts/logon.bat
   logon path = \\server1\profile\%U


   # Useradd scripts
   add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
   delete user script = /usr/sbin/userdel -r %u
   add group script = /usr/sbin/groupadd %g
   delete group script = /usr/sbin/groupdel %g
   add user to group script = /usr/sbin/usernod -G %g %u
   add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
   idmap uid = 15000-20000
   idmap gid = 15000-20000
   template shell = /bin/bash


   # sync smb passwords woth linux passwords
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   passwd chat debug = yes
   unix password sync = yes
   
   # set the loglevel
   log level = 3

[public]
   browseable = yes
   public = yes


[homes]
   comment = Home
   valid users = %S
   read only = no
   browsable = no


[printers]
   comment = All Printers
   path = /var/spool/samba
   printable = yes
   public = no
   writable = no
   create mode = 0700
   
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
   write list = root, @smbadmin


[netlogon]
   comment = Network Logon Service
   path = /home/samba/netlogon
   admin users = Administrator
   valid users = %U
   read only = no
   guest ok = yes
   writable = no
   share modes = no


[profile]
   comment = User profiles
   path = /home/samba/profiles
   valid users = %U
   create mode = 0600
   directory mode = 0700
   writable = yes
   browsable = no
   guest ok = no

Crie os diretórios para os logons de domínio e os perfis:

mkdir /home/samba
mkdir /home/samba/netlogon
mkdir /home/samba/profiles
mkdir /var/spool/samba
chmod 777 /var/spool/samba/ 
chown -R root:users /home/samba/
chmod -R 771 /home/samba/

Agora reinicie o serviço do Samba:

/etc/init.d/samba restart

Edite o arquivo /etc/nsswitch.conf e altere a linha:

vi /etc/nsswitch.conf

hosts: files dns

para

hosts: files wins dns

Agora adicione todos os computadores do seu grupo de trabalho no arquivo /etc/hosts do servidor:

vi /etc/hosts

[...]
192.168.0.100 server1
192.168.0.110 workstation1
192.168.0.111 workstation2
192.168.0.112 workstation3
192.168.0.113 workstation4
[...]

Adicione o usuário root ao banco de dados de senhas do SAMBA. O usuário root (alias: Administrator) também será o administrador do domínio. Esta conta de usuário será necessária para adicionar novos computadores no domínio SAMBA

smbpasswd -a root

Crie o arquivo /etc/samba/smbusers e adicione a linha "root = Administrator" com este comando:

echo "root = Administrator" > /etc/samba/smbusers

Isto permitirá usar o usuário Administrator do Windows como um alias para o usuário root do Linux.

Agora iremos testar se a configuração está correta:

smbclient -L localhost -U%

A saída deste comando, deverá ser vista como algo similar a isto:

Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.22]

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk
        print$          Disk      Printer Drivers
        netlogon        Disk      Network Logon Service
        IPC$            IPC       IPC Service (server1 server (Samba, Ubuntu))
        ADMIN$          IPC       IPC Service (server1 server (Samba, Ubuntu))

Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.22]

        Server               Comment
        ---------            -------
        SERVER1              server1 server (Samba, Ubuntu)

        Workgroup            Master
        ---------            -------
        MYWORKGROUP          SERVER1

Configure os grupos de domínios padrão para o windows: (Obs.: Execute estas linhas de comando no Prompt do Dos nas estações windows)

net groupmap modify ntgroup="Domain Admins" unixgroup=root
net groupmap modify ntgroup="Domain Users" unixgroup=users
net groupmap modify ntgroup="Domain Guests" unixgroup=nogroup
  • Adicionando usuários ao seu domínio samba:

Agora iremos adicionar um usuário, chamado Tom, ao seu domínio Samba. Você deverá criar esta conta, para que o usuário possa efetuar login no domínio do seu servidor Samba.

1. Adicionando o usuário Tom no Linux:

useradd tom -m -G users

2. Adicionando o usuário Tom do Linux ao banco de dados de senhas do Samba.

smbpasswd -a tom
  • Adicionando compartilhamentos:

Agora iremos adicionar compartilhamentos que estarão disponíveis para todos os usuários:

mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/

No final do arquivo /etc/samba/smb.conf adicionamos as seguintes linhas:

[allusers]
  comment = All Users
  path = /home/shares/allusers
  valid users = @users
  force group = users 
  create mask = 0660
  directory mask = 0771
  writable = yes

E reiniciamos o serviço do Samba:

/etc/init.d/samba restart
  • Instalando o Cups:

apt-get install cupsys cupsys-client cupsys-driver-gimpprint defoma fontconfig foomatic-db foomatic-filters libcupsimage2 libexpat1 libfontconfig1 libfreetype6 libjpeg62 libpaper1 libpng12-0 libslp1 libtiff4 patch perl perl-modules ttf-bitstream-vera ucf

Para a acessar a interface web à partir da minha estação (192.168.0.70), eu preciso configurar o cups para passar a escutar requisições dos ips desejados no servidor e permitir acessos da máquina com o IP 192.168.0.70.

vi /etc/cups/cupsd.conf

O arquivo cupsd.conf depois de modificado deverá estar assim:

#
#
#   Sample configuration file for the Common UNIX Printing System (CUPS)
#   scheduler.  See "man cupsd.conf" for a complete description of this
#   file.
#

# Log general information in error_log - change "info" to "debug" for
# troubleshooting...
LogLevel info

# Administrator user group...
SystemGroup lpadmin

# Only listen for connections from the local machine.
Listen localhost:631
Listen 192.168.0.100:631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing Yes
BrowseOrder allow,deny
BrowseAllow @LOCAL
BrowseAddress @LOCAL

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow localhost
  Allow @LOCAL
  Allow 192.168.0.70
</Location>

# Restrict access to the admin pages...
#<Location /admin>
#  Order allow,deny
#  Allow localhost
#</Location>

<Location /admin>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow localhost
  Allow 192.168.0.70
</Location>


# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow localhost
  Allow 192.168.0.70
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job-related operations must be done by the owner or an adminstrator...
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an adminstrator to authenticate...
  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
    AuthType Basic
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

Adicione o usuário cupsys ao grupo shadow:

adduser cupsys shadow

E dê um restart no daemon do Cups:

/etc/init.d/cupsys restart

Agora, o interface web do cups estará acessível de qualquer web browser na minha máquina:

http://192.168.0.100:631/

Agora eu posso efetuar login na interface web do cups com o usuário root e minha senha de root.

Notas: Se não houver um driver para Linux disponível para sua impressora e você precisa usar esta impressora à partir de qualquer estação Windows através do Samba, você pode contactar o fabricante do RAW da sua impressora e instalar o driver correto para sua estação Windows.

Se você criou uma nova impressora no Cups, você deve adicioná-la ao samba com o comando:

cupsaddsmb -a
  • Links:

- http://www.ubuntu.com

- http://www.samba.org

- http://www.cups.org


Bibliografia:

Autor:

Till Brehm

Fonte:

http://www.howtoforge.com/samba_domaincontroller_setup_ubuntu_6.10

Tradutor:

[:RicardoMartins:Ricardo Martins]