Uno de los servidores, o servicios mas importantes dentro de la empresa son los servidores de archivos, donde Windows no se destaca mucho, pero soluciones robustas como las SAN o los pequeños NAS dan una solución eficaz a las necesidades de cada una.
En esta ocasión implementaremos un servidor de archivos con Debían 7 usando las cuentas que se encuentren en el AD de Windows Server 2008.
Antes de irnos con el taller/actividad debemos de tener algunos paquetes necesarios para el correcto funcionamiento de nuestro servidor de archivos.
- Winbind: Complemento Necesario de Samba para autenticar nuestro Debian contra Windows y obtener los grupos y usuarios de este.
- Kerberos: Necesario para autenticar del Debian contra el Windows (Relación de Confianza).
- SAMBA: Servidor de Archivos
- ClamAV: Antivirus, necesario para verificar los archivos que se encuentran en nuestro servidor.
Después de saber que necesitamos, manos a la obra.
- Verificamos que nuestro sistema este actualizado.
apt-get update && apt-get upgrade
- Instalamos los paquetes necesarios.
apt-get install samba winbind gcc clamav clamav-testfiles unzip krb5-user krb5-config ntpdate
Si les pide configuración del Kerberos, lo dejamos en blanco.
Configurando el Antivirus
1. Probamos el funcionamiento del Antivirus.
freshclam
clamscan /usr/share/clamav-testfiles/
Y si funciona tendremos un resultado como el siguiente:
/usr/share/clamav-testfiles/clam.exe.szdd: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam_IScab_ext.exe: ClamAV-Test-File …
2. Editamos el archivo /etc/clamav/freshclam.conf para cambiar la cantidad de veces que verifica actualizaciones (De 24 lo pasamos a 1, quedando asi).
# Check for new database 24 times a day
Checks 1
DatabaseMirror db.local.clamav.net
DatabaseMirror database.clamav.net
/etc/init.d/clamav-freshclam restart
Configurando SAMBA
nano /etc/samba/smb.conf
[global]
log file = /var/log/samba/log.%m
idmap gid = 10000-29999
force directory mode = 777 #Forzar a que todo directorio creado tenga estos permisos
encrypt passwords = true
winbind use default domain = yes
realm = SUGEEK.CO #Este es el dominio de mi empresa
template shell = /bin/false #Los usuarios no tienen shell
netbios name = fileserver #Nombre del Servidor de archivos
locking = no
writeable = yes
server string = fileserver
idmap uid = 10000-29999
template homedir = /home/%D/%U
force create mode = 777
workgroup = SUGEEK #Grupo de Trabajo predeterminado del Dominio
os level = 20
security = ADS #Tipo de autenticacion
create mode = 777
preferred master = no
directory mode = 777
;log level = 1
;syslog = 0
;winbind separator = + #Separador del usuario y grupo
;winbind enum users = yes #Listar Usuarios
;winbind enum groups = yes #Listar Grupos
;client use spnego = yes
;domain master = no #Indicar si soy el dominio principal
vfs objects = recycle #Activando la papelera del servidor de archivos
recycle: directory_mode = 0777 #Permisos de la papelera
recycle: subdir_mode = 0777 #Permiso de los subdiretorios de la papelera
recycle: versions = Yes #No remplazar archivos con el mismo nombre
recycle: keeptree = Yes #Mantener el orden si una carpeta se elimina
recycle: minsize = 512 #Tamaño en bytes del archivo mas pequeño
recycle: maxsize = 524288 #Tamaño en bytes del archivo maximo de la papelera[Compartida]
path = /Datos1/Compartida #Lugar donde esta la carpeta compartida
comment = Carpeta Compartida #Comentario
valid users = @gtecnologia,@gadmins,@grh #Grupos con permisos para ingresar
recycle: repository = /Datos1/Compartida/Papelera #Ubicación de la papelera
Configurando el Kerberos
Editamos el archivo del kerberos.
nano /etc/krb5.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
encryption = true
krb4_convert = false
}
[libdefaults]
default_realm = SUGEEK.CO
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = yes
default_tgs_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
default_tkt_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
preferred_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
[realms]
SUGEEK.CO = {
kdc = Winserver2008.SUGEEK.CO
admin_server = IPSERVER:749
default_domain = SUGEEK.CO}
[domain_realm]
.example.com = SUGEEK.CO
example.com = SUGEEK.CO
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
Configurando Winbind
nano /etc/samba/winbind.conf
[global]
security = ADS #Tipo de autenticación
password server = Winserver2008.SUGEEK.CO #Nombre completo del DC
realm = SUGEEK.CO #Nombre del Dominio
# handle logging
syslog only = Yes
log level = 0 winbind:2
syslog = 1max
log size = 1000
local master = no
hosts allow = 192.168.x.x/24 #Red
interfaces = br0 #Interfaz de conexion
bind interfaces only = yes
preferred master = no
dns proxy = no
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
workgroup = SUGEEK #Grupo de Trabajo
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = Yes
winbind separator = +unix
charset = UTF8
ntlm auth = Yes
min protocol = NT1
client NTLMv2 auth = Yes
lm announce = No
Otras Configuraciones
- Verificar que la IP este estática.
- Verificar que el reloj del fileserver este sincronizado con el DC.
- Verificar Nombre del Servidor que sea el que esta en los archivos de configuración.
- Verificar que el archivo /etc/hosts tenga la ip asociada al DC.
- Editamos el archivo /etc/nsswitch.conf para establecer el orden de consulta de las cuentas. Quedando de la siguiente manera.
- passwd: files winbind ldap
group: files winbind ldap
shadow: files winbind ldap
hosts: files dns wins
networks: files dns
protocols: files
services: files
ethers: files
rpc: files
netmasks: files
netgroup: files
publickey: files
bootparams: files
automount: files
aliases: files
- passwd: files winbind ldap
- Reiniciamos el servidor.
- Ingresar el Nuevo servidor al dominio.
net ads join -S SUGEEK.CO -U Administrador
- Verificamos que tengamos los usuarios y grupos con los comandos wbinfo -u wbinfo -g , si se realizo todo bien, mostrara los usuarios y grupos del dominio, y ya podemos ingresar a la carpeta compartida con un usuario del grupo permitido.
- Como extra debemos de borrar los archivos mayores a 7 días de la papelera, para no llenar de basura el disco duro. Esto se hace en el crontab.
* * * * * find /Datos1/Compartida/Papelera -mtime +7 -exec rm {} ;