SAMBA como Servidor Controlador de Dominio para pequeños entornos con Ubuntu

por admin

Esto es una descripcion detallada de como configurar Ubuntu server (Ubuntu 7.10) para actuar como servidor de archivos e impresoras para estaciones de trabajo Windows(tm) en pequeños grupos de trabajo. Este howto usa el tdb backend de SAMBA para almacenar los passwords la informacion de las cuentas. Esto es recomendable para entornos de no mas de 250 usuarios y es mucho mas facil que configurar LDAP

Software a instalar:

  • Samba como controlador de dominio
  • CUPS
  • Los driver de impresora Foomatic

Hay que decir que esta no es la única forma de configurar este tipo de sistemas, y que no es absolutamente seguro que funcione en otros entornos Linux.

Requisitos

Para poner en marcha dicho sistema necesitamos previamente:

Habilitando en usuario root

Iniciamos sesion con el usuario creado y habilitamos el root de la siguiente forma:

sudo passwd root
su

Ahora somos root.

NOTA: Este paso es opcional, no es necesariol, podemos realizar las tareas administrativas usando el comando sudo, pero yo prefiero trabajar como root en lugar de usar sudo.

Configurando la Red

Ubuntu por defecto emplea DHCP para configurar la red, es evidente que para configurar un servidor necesitaremos una IP privada fija, por lo que cambiaremos esto editando el archivo /etc/network/interfaces y estableciendo nuestra IP a 192.168.0.100, dependerá del direccionamiento de nuestro rooter:

nano /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

Ahora reiniciamos la red

/etc/init.d/networking restart

Editamos /etc/hosts y añadimos las nuevas IPs:

nano /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 el Hostname

echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh
echo ‘192.168.0.100 server1.example.com’ >> /etc/hosts

Instalando el SSH Daemon

apt-get install ssh openssh-server

Ahora podemos utilizar un cliente ssh para conectar a nuestro servidor remoto desde la ubicacion que deseemos, lo que nos facilitará la movilidad para controlar nuestro servidor, yo suelo usar putty para administrar las maquinas linux desde mis pcs Windows.

Cuota Linux

apt-get install quota

Editamos /etc/fstab para que parezca como esto (Es necesario añadir usrquota,grpquota a la particion raiz /):

nano /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
/dev/ /media/floppy0 auto rw,user,noauto 0 0

Ahora ejecutamos:

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

Recibiras estos errores cuando ejecutes el comando quotacheck -avugm la primera 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…

Esto es algo normal de lo que no hay que preocuparse.

El Servidor SAMBA

apt-get install libcupsys2 samba samba-common samba-doc smbclient winbind cupsys-common

Editamos /etc/samba/smb.conf para que quede como esto:

nano /etc/samba/smb.conf

[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
# 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
add user script = /usr/sbin/useradd -m '%u' -g users -G users
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

se crean los directorios para los inicios de sesion y perfiles del dominio:

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

Reiniciamos Samba:
/etc/init.d/samba restart

Editamos /etc/nsswitch.conf. Cambiando la linea:
nano /etc/nsswitch.conf

hosts: files dns
a:
hosts: files wins dns

Añadimos los equipos de nuestra red en el archivo /etc/hosts del servidor:
nano /etc/hosts

192.168.0.100 server1 server1.example.com 192.168.0.110 workstation1 192.168.0.111 workstation2 192.168.0.112 workstation3 192.168.0.113 workstation4

Añadimos el usuario root a la base de datos de passwords de SAMBA. El usuario root (alias: Administrator) sera el Administrador del Dominio. Esta cuenta es necesaria para agregar nuevos equipos al dominio SAMBA.

smbpasswd -a root

Creamos el archivo /etc/samba/smbusers y añadimos esta lienea ejecutando:
echo "root = Administrator" > /etc/samba/smbusers

Eston nos permitira usar el usuario Administrator de Windows como un alias de usuario root de Linux.

Comprobamos que la configuracion es correcta:
smbclient -L localhost -U%

El resultado debe ser similar a este:
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.26a]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (samba server (Samba, Ubuntu))
netlogon Disk Network Logon Service
print$ Disk Printer Drivers
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.26a]
Server Comment
--------- -------
SERVER1 samba server (Samba, Ubuntu)
Workgroup Master
--------- -------
MYWORKGROUP SERVER1
WORKGROUP FILESERVER

Configuramos los grupos por defecto de los dominios de windows:

net groupmap add ntgroup="Domain Admins" unixgroup="root" type=domain -U root
net groupmap add ntgroup="Domain Users" unixgroup="users" type=domain -U root
net groupmap add ntgroup="Domain Guests" unixgroup="nogroup" type=domain -U root

Añadiendo Usuarios a nuestro Dominio SAMBA.

Creamos un usuario, p.e.”tom”, para nuestro dominio Samba. Esto sera necesario para cada cuenta de usuario que queramos conectar al servidor de dominio SAMBA.

El usuario “tom” con password “secret” se añade a la base de datos Samba y Linux asi:

net rpc user add tom -U root
net rpc user password tom "secret" -U root
smbpasswd -e tom

Creando espacios compartidos

Ahora creamos un espacio compartido para todos los usuarios:

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

Añadimos las siguentes lineas al final del archivo /etc/samba/smb.conf:

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

y reiniciamos Samba:

/etc/init.d/samba restart

InstalandoCUPS

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 acceder al interfaz web desde cualquier equipo, como: (IP 192.168.0.70), configuramos CUPS para escuchar en la IP del servidor y permitir acceso desde la IP 192.168.0.70. Tendremos que cambiar la IP en el archivo de configuracion de CUPS

nano /etc/cups/cupsd.conf

Cambiamos la linea:

Listen localhost:631
a:
Listen 192.168.0.70:631

y:

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

a:

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

y reiniciamos el demonio CUPs:

/etc/init.d/cupsys restart

El interface web de CUPS es ahora accesible desde cualquier navegador desde mi equipo:
http://192.168.0.100:631/ Ahora puedo acceder al interfaz de CUPS con la cuenta de root.

Cada impresora creada para CUPS deberá ser añadida a Samba con el comando:
cupsaddsmb -a

___________________________________________
Manual extraido de HowToForge.
Traducido por dJgM.

Compartelo:
  • Meneame
  • BarraPunto
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google
Relacionado:
Samba como servidor de archivos en ubuntu 7.10
Instalar Lighttpd en Fedora y Ubuntu
Instalar Webmin en sistemas Debian y derivados
Fedora Directory (Open Source LDAP) Parte I

Responder