Instalación y configuración de Samba con autorización y autenticación de dominio (servidor de archivos)
El artículo tiene como finalidad que los colegas jóvenes que se enfrentan a una tarea similar puedan afrontarla más rápidamente. Tomé casi toda la información sobre el despliegue.
desde la oficina Documentación de Samba, porque los artículos en ruso son escasos y poco informativos.
Todo lo que se describe a continuación puede incluso denominarse listado de configuración. Se ha creado un artículo para proporcionar la secuencia de acciones para la configuración básica en ruso, porque no todo el mundo puede entender inmediatamente la documentación en inglés (por supuesto, puedes ir inmediatamente a la documentación oficial de Samba y buscar allí)
Banco: Debian 12, 1 CPU, 1 GB de RAM (máquina limpia, recién creada)
Instalar el programa sudo
apt install sudo
Agregue el usuario creado durante el proceso de instalación al grupo sudo
usermod -aG sudo имя_вашего_пользователя
Instalamos todos los servicios necesarios para que samba funcione como miembro de un dominio.
sudo apt-get install acl attr samba winbind libpam-winbind libnss-winbind krb5-config krb5-user dnsutils python3-setproctitle
Además, todos los comandos se ejecutan usando sudo o en modo privilegiado sudo – i
Especifique el servidor NTP
nano /etc/systemd/timesyncd.conf
(Time)
NTP=ваш_NTP_сервер
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
systemctl habilita systemd-timesyncd
systemctl inicia systemd-timesyncd
estado systemctl systemd-timesyncd
Especificación de configuraciones para Kerberos
nano /etc/krb5.conf
(libdefaults)
default_realm = полное_название_вашего_домена
dns_lookup_realm = false
dns_lookup_kdc = true
Comando para ver dónde está el archivo de configuración principal de samba:
smbd -b | grep CONFIGFILE
Edite el archivo de configuración, agregando las líneas necesarias.
nano /etc/samba/smb.conf
min domain uid = 0
security = ADS
workgroup = краткое_имя_домена
realm = полное_название_вашего_домена
log file = /var/log/samba/%m.log
log level = 1
# Default ID mapping configuration for local BUILTIN accounts
# and groups on a domain member. The default (*) domain:
# - must not overlap with any domain ID mapping configuration!
# - must use a read-write-enabled back end, such as tdb.
idmap config * : backend = tdb
idmap config * : range = 3000-7999
# - You must set a DOMAIN backend configuration
# idmap config for the краткое_имя_домена domain
idmap config краткое_имя_домена : backend = rid
idmap config краткое_имя_домена : range = 10000-999999
# Template settings for login shell and home directory
template shell = /bin/bash
template homedir = /home/%U
Releer los archivos de configuración
smbcontrol all reload-config
Crear una carpeta
mkdir -p /usr/local/samba/etc/
Agregar líneas a smb.conf
username map = /etc/samba/user.map
username map = /usr/local/samba/etc/user.map
Crear un archivo de asignación de usuario raíz a dominio
nano /usr/local/samba/etc/user.map
!root = краткое_имя_домена\логин_пользователя
El comando para verificar la sintaxis del archivo de configuración principal es testparm
En el archivo de hosts ingresamos la correspondencia entre la dirección IP y el nombre de dominio
nano /etc/hosts
X.X.X.X share-test.полное_название_вашего_домена share-test
Unir la máquina al dominio
net ads join -U логин_пользователя (должен иметь права для присоединения к домену)
En nsswitch.conf traemos las dos primeras líneas al siguiente formulario para que los usuarios del dominio puedan ver el sistema local
nano /etc/nsswitch.conf
passwd: files winbind
group: files winbind
Servicios de inicio
systemctl iniciar smbd
systemctl iniciar nmbd
systemctl iniciar winbind
Reiniciar
poweroff –reboot
Comprobamos que podemos conectarnos al controlador de dominio.
wbinfo --ping-dc
Comprobando si nuestra samba admite ACL extendidas
smbd -b | grep HAVE_LIBACL
Если вывод HAVE_LIBACL, то всё ок
Agregue un par de líneas más al archivo de configuración.
nano /etc/samba/smb.conf
vfs objects = acl_xattr
map acl inherit = yes
Agregar usuario de dominio a la asignación raíz a otro archivo
nano /etc/samba/usuario.map
!root = Домен\логин_пользователя
Asignamos derechos para cambiar derechos para carpetas públicas a administradores de dominio u otro grupo (también puede asignar un usuario)
net rpc rights grant "Домен\Domain Admins" SeDiskOperatorPrivilege -U "Домен\логин_пользователя"
Consultando la lista de quienes pueden cambiar derechos
net rpc rights list privileges SeDiskOperatorPrivilege -U "Домен\логин_пользователя"
Crear una carpeta para uso general
mkdir -p /srv/samba/Demo/
Cambiar el propietario y grupo de la carpeta
chown root:"Домен\Domain Admins" /srv/samba/Demo/
Establecer permisos en la carpeta
chmod 0770 /srv/samba/Demo/
Ingresamos información sobre nuestra carpeta en el archivo de configuración de samba.
nano /etc/samba/smb.conf
(Demo)
path = /srv/samba/Demo/
read only = no
Releyendo la conf. Archivo
smbcontrol all reload-config
Configurar derechos para una carpeta compartida a través de Windows
Presione Win+X -> Administración de computadoras
En la pestaña Acción y “Conectar a otra computadora”, ingresamos el nombre de nuestra máquina, por ejemplo, compartir-prueba
En Herramientas del sistema, abra Carpetas públicas y haga clic derecho en nuestra carpeta -> Propiedades -> Seguridad, configure los derechos
Agregue la línea al archivo smb.conf en la sección de nuestra carpeta
acl_xattr:ignore system acls = yes
Comprobando permisos de carpeta
getfacl /srv/samba/Demo/