Cierre económico a final de mes, una total locura en las empresas cubanas[en otros lados no sé].
Problemática:
Se necesita un servidor de archivos compartidos[un lugar de almacenamiento rápido] donde se puedan almacenar los «excel», los «word» y cuanto formato de documento que se necesite para que se puedan pasar entre las económicas/financistas, el jefe de departamento y director de UEB para que los revisen. Sólo eso, documentos.
Solución: Samba!!!
Pero la OSRI golpea, y sin piedad cada carpeta compartida que encuentra, por las múltiples vulnerabilidades que presentan[en sistemas Windows].
Nota: Cabe destacar acá, que Samba emula el comportamiento de la compartición de archivos y carpetas, pero no emula las vulnerabilidades. Así que ya saben OSRI-seños.
Tomaremos para este tutorial, un CT de Proxmox con base Debian/Ubuntu, y por ejemplo, con 2GB de RAM y 4 núcleos. Estas prestaciones son necesarias si vamos a compilar Samba, pero si instalamos desde el repositorio, con la mitad resolvemos el asunto. De todas formas, explicaré las dos maneras acá.
Samba desde el repositorio
Asumo que ya hayan updateado/upgradeado el sistema, y si no lo han hecho ¿Qué esperan?:
apt update ; apt upgrade -y apt install -y samba samba-common
Lo primero que haremos será detener y deshabilitar NETBIOS, no lo necesitaremos[y de paso nos evitamos problemas con posibles escaners de red]:
systemctl stop nmbd systemctl disable nmbd systemctl mask nmbd
Ahora, smbd. Estado del servicio:
systemctl status smbd
Para reiniciar el servicio ante cualquier cambio, existen tres maneras, use la que usted considere mejor:
systemctl restart smbd
o:
service smbd restart
o:
/etc/init.d/smbd restart
Entonces… Editamos según nuestras necesidades, pero primero hacemos un backup:
mv /etc/samba/smb.conf{,.orig}
Un ejemplo de configuración pudiera ser:
nano /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = shares security = user map to guest = bad user dns proxy = no #----------- Shares ----------- [Economia] path = /mnt/samba/economia valid users = @sambashare guest ok = no writable = yes browsable = yes
Y reiniciamos el servicio. Ya vimos como hacerlo. Para comprobar que todo está OK, ejecutamos:
testparm
Es decir, para este ejemplo, creamos un recurso compartido[Economia] que apunta a una carpeta llamada «economia» dentro de /mnt/samba donde pondremos las cosas[documentos] del Departamento. En /mnt/samba tendremos un punto de montaje de nuestro Proxmox, con espacio suficiente para las operaciones que requieren nuestros compañeros de Economía. También debemos notar que los usuarios válidos a usar este recurso, deben pertenecer al grupo «sambashare».
Samba crea, en la instalación, un grupo por defecto en sistemas Debian/Ubuntu llamado: «sambashare», el cual usaremos para agregar usuarios en el próximo paso. A esta carpeta que creamos, debemos aplicarle estos permisos. Procedemos:
cd /mnt/samba mkdir economia chmod -R 0770 economia chown root:sambashare economia
Ahora crearemos un usuario que podrá trabajar en esta carpeta. Samba usa el sistema de usuarios y permisos pero tiene su propio mecanismo de autenticado, separado del que normalmente usa linux[el sistema], por lo que para que todo funcione correctamente, crearemos el usuario con el sistema de autenticado normal de linux y le pondremos la contraseña con la utilidad smbpasswd que trae samba. Una de las económicas se llama Yadira y para tomarla como ejemplo le crearemos el usuario de la siguiente forma:
useradd yadira -s /bin/false -G sambashare
Y para asignarle un password a Yadira:
smbpasswd -a yadira
Ahora sólo debemos ir al Explorador de Windows y crear una unidad mapeada en red, cosa trivial:
Configuración de la unidad:
Autenticándonos:
Y listo:
Como pudieron ver, algo ligero de configurar y llevar a cabo. Ahora veamos como hacer lo mismo, pero compilando samba.
Compilando Samba
Lo primero es obtener samba.
cd /opt wget -c https://download.samba.org/pub/samba/samba-latest.tar.gz
A día de hoy[en estoy escribiendo este tutorial 28-8-2020], la última versión estable de Samba, es la 4.12.6.
¿Updatearon/upgradearon el sistema?
apt update ; apt upgrade -y
Instalar las dependencias necesarias para compilar:
apt install -y rsync acl attr autoconf bind9utils bison build-essential \ debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev \ libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev \ libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl \ libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libicu-dev \ libpopt-dev libreadline-dev nettle-dev perl perl-modules pkg-config \ python-all-dev python-crypto python-dev python-dnspython libtasn1-bin \ python3-dnspython python3-gpg python-markdown python3-markdown \ python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils mc net-tools
Extraer y compilar:
tar -xvf samba-latest.tar.gz cd samba-latest ./configure -p --enable-fhs --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --enable-debug --enable-selftest --cross-answers \ --cross-execute --sbindir=/usr/sbin --mandir=/usr/share/man \ --with-logfilebase=/var/log/samba --with-piddir=/run/samba \ --with-systemd --systemd-install-services --with-systemddir=/etc/systemd/system \ --with-syslog --enable-spotlight --with-pam --with-automount \ --with-shared-modules=idmap_rid,idmap_ad,idmap_adex,idmap_hash,idmap_ldap,idmap_tdb2,vfs_dfs_samba4,auth_samba4,vfs_nfs4acl_xattr \ --with-smbpasswd-file=/etc/samba/smbpasswd --without-ad-dc -j 4 make -j`nproc` make install
Nota: En un futuro, si quieren actualizar Samba a la última versión, descargen y compilen con las mismas opciones de configuración que lo hicieron en el primer momento, sino, les dará error. Si desean ver cómo fue compilado samba anteriormente sólo debemos ejecutar:
smbd -b
Archivo de configuración[puede usar el anterior, o generar uno de base]:
cp examples/smb.conf.default /etc/samba/smb.conf
Habilitar el inicio Samba con systemd:
systemctl enable smb systemctl start smb
Creamos el grupo para los usuarios que deben trabajar con el recurso compartido:
addgroup sambashare
Y a partir de acá es lo mismo, que si lo instalaras del repositorio, crear la carpeta:
cd /mnt/samba mkdir economia chmod -R 0770 economia chown root:sambashare economia
Y crear los usuarios:
useradd tania -s /bin/false -G sambashare smbpasswd -a tania
Esto es todo. Adjunto la configuración usada la cual recomiento estudiarse pues tiene opciones muy interesantes, como son:
0- Evitar que los usuarios invitados vean los recursos compartidos.
1- Habilitar autenticación de usuarios obligatoria
2- Habilitar sólo los recursos para IPs específicos
3- Mejorar el tratamiento del tráfico de red
4- Deshabilitar el uso de impresoras por Samba
5- Deshabilitar NETBIOS a nivel de configuración
6- En caso de ser necesario deshabilitar SMB1
7- Evitar que se suban archivos no permitidos al recurso compartido y de haberlos que no los muestre.
Entre otras.
[Referencias]
http://www.linuxfromscratch.org/blfs/view/svn/basicnet/samba.html
https://docs.microsoft.com/en-us/windows/desktop/FileIO/microsoft-smb-protocol-and-cifs-protocol-overview
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Buenas tardes amigo, he implementado su manual para una infrastrucura de dominio ,la verdad funciona genial, muy bueno su aporte ademas de que en lo personal me ahorro muchos recursos de hardware, pero tengo un problema es que cada vez que reinicio la pc o la de los demas usuarios me desconecta la unidad de red me la deja con una cruzeta en rojo y tengo que eliminarla y volverla a crear, saludos y por favor ayudeme
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Hola Leslie. Te puedo hacer llegar mi tuto para que agregues la parte de fileserver usando usuarios virtuales por LDAP.
Tengo una variante usando OpenMediaVault y otra que es Debian puro (este último lo hizo Ariel Alvarez @Mutantix)
SL2
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36
Muy bueno, gracias por el tutorial!
Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.3
Un placer, hermano. Estamos para ayudarnos…