martes, 1 de marzo de 2016

Ciencia y tecnología: Arma un sencillo Servidor Samba con un Computador de bajo recursos

Ciertamente hay mucha literatura al respecto sobre Samba para construir sencillos o robustos Servidores de Almacenamiento, pero muchas veces las misma no nos llevan directamente al grano en las opciones más practicas con sus respectivas aclaratorias y posibles escenarios reales de uso, es decir, siempre encontramos mucha información pero no ajustada a las necesidades de muchos y sobre todo novatos o principiantes en el área.


Primeramente les dejo las características técnicas del Computador de bajos recursos utilizado:
Hardware:
Software:
A continuación procedí a instalar y configurar el paquete samba en el Servidor de mi pequeña Red LAN casera de la siguiente manera:
1.- Instalar samba con la orden de comando:
aptitude install samba samba-common smbclient samba-doc smbfs winbind
2.- Procedí a respaldar la configuración predeterminada de samba ubicada en el archivo de configuraciónsmb.conf con la orden de comando:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bck
  1. Luego edite el archivo de configuración con un editor de mi preferencia con la orden de comando:
vi /etc/samba/smb.conf
Dejándolo de la siguiente manera:

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

workgroup = WORKGROUP
dns proxy = no
; wins support = no
; wins server = w.x.y.z
; server string = %h server
; name resolve order = lmhosts host wins bcast

#### Networking ####

; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes

#### Debugging/Accounting ####

log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
; syslog only = no

####### Authentication #######

server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
security = user
username map = /etc/samba/smbusers
; encrypt passwords = true

########## Domains ###########

; server role = primary classic domain controller
; server role = backup domain controller
; server role = domain logons
; logon path = \\%N\profiles\%U
; logon path = \\%N\%U\profile
; logon drive = H:
; logon home = \\%N\%U
; logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
; domain logons = yes

############ Misc ############

usershare allow guests = yes
; usershare max shares = 100
; include = /home/samba/etc/smb.conf.%m
; domain master = auto
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
; usershare max shares = 100
; SO_RCVBUF=8192 SO_SNDBUF=8192
; socket options = TCP_NODELAY
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &


#======================= Share Definitions =======================

[homes]

comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S

; [netlogon]

; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes

; [profiles]

; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]

comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]

comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
; write list = root, @lpadmin

; [cdrom]
; comment = Samba server's CD-ROM
; read only = yes
; locking = no
; path = /cdrom
; guest ok = yes
; /dev/scd0   /cdrom  iso9660 defaults,noauto,ro,user   0 0
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom

# EJEMPLO DE RECURSO COMPARTIDO

[RECURSO_COMPARTIDO]

comment = Servidor Disco Duro 500 GB
path = /media/usuario-sysadmin/RESPALDO
writeable = yes
browseable = yes
public = yes
valid users = usuario_samba
create mask = 0755
directory mask = 0755
guest ok = no
; read only = no
; write list = usuario_samba
; force group = usuario_samba
; hide dot files = yes
; guest only = yes
; guest account = nobody
; delete veto files = yes
; veto files = /*.exe/*.com/*.dll/*.mp3/*.avi/*.mkv/*.msi/*.mpg/*.wmv/*.wma

Como ya les dije, en Internet hay abundante información al respecto sobre samba y cada una de las opciones ha ser configuradas dentro del archivo smb.conf, lo cual no es la intención de esta publicación. Sin embargo, les dejo estos pocos enlaces al respecto sobre el tema:
A continuación procedí a crear el usuario samba “usuario_samba” dentro de mi Servidor Samba, el cual utilice para administrar (gestionar) los recursos compartidos remotamente desde mis otros ordenadores con GNU/Linux y MS Windows.  En mi caso en particular no voy a trabajar compartiendoCarpetas sino completamente mi Disco Duro secundario de 500 GB. Por lo cual requiero que dicho disco se monte automáticamente al iniciarse el servidor, aún sin cargarse la interfaz gráfica, por lo que procedí a realizar el siguiente procedimiento:
Montaje permanentemente del Disco Duro 500GB dentro del Sistema Operativo del Servidor
a) Valide (Tomé nota) del punto de montaje y la carpeta local donde mi Sistema Operativo montaba el Disco Duro de 500GB automáticamente. En caso contrario, hubiese podido crear una carpeta donde montar el recurso local ha compartir, con la orden de comando: mkdir -p /ruta_designada/carpeta_designada y luego darle permisología de usuario a la misma sobre mí usuario principal del Servidor llamado “usuario-sysadmin”.
b) Edite el archivo fstab con la orden de comando “nano /etc/fstab” e inserte la linea de montaje siguiente:
/dev/sdb1 /media/usuario-sysadmin/RESPALDO/ ntfs-3g rw,user_id=1000,group_id=1000
Nota: Utilice “ntfs-3g” ya que mi disco esta formateado en NTFS. Ustedes pueden agregar o no la opciónauto de la linea de montaje en el fstab, dependiendo de sus requerimientos o necesidades. A mí en particular, esta opción me causaba inestabilidad (intermitencia) al montarse el recurso durante el inicio delSistema Operativo. Ustedes pueden reiniciar el Servidor para verificar el montaje automático del Disco Duro o probar ejecutando la orden de comando “mount -a” para probar el punto de montaje. Si todo sale bien, reinicie para probar nuevamente el montaje desde el inicio. Esta linea puede ser configurada de muchas maneras y de formas más detalladas pero eso queda a la investigación personal, ya que no es el tema de la publicación. Para mayor información sobre las opciones de fstab, haga clic aquí.
Luego de esto procedí ha crear el usuario local que utilizare en samba para gestionar mis recursos compartidos remotamente. Esto puede hacerse de 2 distintas maneras:

1.- Básica:

1.1) Crear usuario local para gestionar samba:
adduser usuario_samba

2.- Avanzada:

2.1) Crear carpeta home del usuario local para gestionar samba:
mkdir /ruta_designada/usuario_samba
2.2) Crear grupo del usuario samba:
groupadd grupo_usuario
2.2) Crear perfil del usuario samba:
useradd -g usuario_samba -d /ruta_designada/usuario_samba -c “Carpeta Home del Usuario” -s /bin/false grupo_usuario
A continuación, y luego de instalado y configurado samba, habilitado y montado el recurso ha compartir, creado el usuario local, debemos:
Añadir el Usuario local al Servidor (Servicio) Samba instalado con la orden de comando:
adduser usuario_samba sambashare
Crear la contraseña de acceso que tendrá el Usuario local en Samba con la orden de comando:
smbpasswd -a usuario_samba
Reiniciar el Servicio Samba:
a) service samba reload
b) service smbd restart
c) service nmbd restart
Ahora solo debemos comprobar el acceso desde un Equipo en la red al recurso compartido. Para ello debemos abrir un explorador de archivos, explorar el entorno de red, y visualizar el recurso compartido desde el servidor. Sin embargo, para ver la disponibilidad vía terminal, se puede ejecutar las siguientes ordenes de comando, conociendo o no, la IP o el nombre del Servidor Samba:
1) smbclient –list=192.168.X.X
2) smbclient –list=192.168.X.X –user=usuario_samba
3) nbtscan 192.168.0.0/24
4) nmblookup nombre_del_servidor_samba
Y para accesar al recurso compartido desde un Equipo en la red, abra un explorador de archivos, explore el entorno de red, y haga doble clic en el recurso compartido desde el servidor, en introduzca los datos de acceso (Usuario / Contraseña / Dominio), o coloque la ruta directa con el siguiente formato:smb://192.168.x.x/RECURSO_COMPARTIDOPara conectarse vía terminal, ejecute la siguiente orden de comando: smbclient –user=usuario_samba //192.168.x.x/RECURSO_COMPARTIDO
Por ultimo, y si fuese necesario puede configurar que dicho recurso compartido se cargue automáticamente, en su equipo de red mediante el siguiente procedimiento:
a) Cree una carpeta local donde será montado el recurso compartido, con la orden de comando:
mkdir -p /ruta_designada/carpeta_designada
b) Edite el archivo fstab con la orden de comando “nano /etc/fstab” e inserte la linea de montaje siguiente:
//192.168.X.X/RECURSO_COMPARTIDO/  /ruta_designada/carpeta_designada  cifs  user,rw,username=usuario_samba,password=contraseña_usuario_samba,gid=100?,uid=100?,iocharset=utf8,dir_mode=0755,file_mode=0755  0  2
Nota: Utilice “cifs” ya que es el protocolo samba moderno que samba para conectarse a un recurso de red, en algunos casos usted tal vez deba usar “smb” en vez de “cifs”. El tipo de permiso asignado endir_mode y file_mode dependerá de lo que usted designe y /o el usuario de la carpeta compartida requiera, aunque preferiblemente deberían ser iguales a los designados en el archivo smb.conf para dicho recurso compartido. Y los valores correspondientes en id y uid deben ser los adecuados, es decir, los del usuario que montará el recurso en el computador remoto. Adicionalmente ustedes pueden agregar o no la opción auto de la linea de montaje en el fstab, dependiendo de sus requerimientos o necesidades. A mí en particular, esta opción me causaba inestabilidad (intermitencia) al montarse el recurso durante el inicio delSistema Operativo. Ustedes pueden reiniciar el Servidor para verificar el montaje automático del Disco Duro o probar ejecutando la orden de comando “mount -a” para probar el punto de montaje. Si todo sale bien, reinicie para probar nuevamente el montaje desde el inicio. Esta linea puede ser configurada de muchas maneras y de formas más detalladas pero eso queda a la investigación personal, ya que no es el tema de la publicación. Para mayor información sobre las opciones de fstab, haga clic aquí.
!!!Comparte si te gusto¡¡¡

No hay comentarios:

Publicar un comentario

El Neologismo Binario del siglo XXI

          En el siglo XXI, el hombre ha adoptado el neologismo binario como una forma de entender y comunicar ideas en un mundo cada vez má...