SAMBA como Servidor Controlador de Dominio para pequeños entornos con Ubuntu
por adminEsto 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:
- Un install CD de Ubuntu server (disponible aqui: http://www.ubuntu.com/download/)
- Conexión a Internet.
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.






