#Windows #Server 2008 + #Samba con #Debian7


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 montaremos un servidor de archivos con Debian 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 FOUND/usr/share/clamav-testfiles/clam.exe.bz2: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.chm: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.bin-be.cpio: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.zip: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-fsg.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-upack.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.odc.cpio: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.cab: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.pdf: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe.binhex: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam_IScab_int.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-nsis.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.ea06.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-upx.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-aspack.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.mail: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.newc.cpio: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.7z: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.sis: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.tnef: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam_ISmsi_int.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-mew.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.arj: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.ppt: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.ole.doc: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-v2.rar: OK/usr/share/clamav-testfiles/clam_ISmsi_ext.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.ea05.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.d64.zip: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-yc.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam_cache_emax.tgz: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.bin-le.cpio: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe.html: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe.mbox.uu: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe.rtf: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.exe.mbox.base64: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.bz2.zip: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-v3.rar: OK/usr/share/clamav-testfiles/clam.tar.gz: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-pespin.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-petite.exe: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam.impl.zip: ClamAV-Test-File FOUND/usr/share/clamav-testfiles/clam-wwpack.exe: ClamAV-Test-File FOUND
----------- SCAN SUMMARY -----------Known viruses: 2337163Engine version: 0.97.8Scanned directories: 1Scanned files: 46Infected files: 44Data scanned: 12.48 MBData read: 6.21 MB (ratio 2.01:1)Time: 7.860 sec (0 m 7 s)
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
3. Para que dicha configuración sea aplicada reiniciamos el servicio.
/etc/init.d/clamav-freshclam restart

Configurando el SAMBA

Editamos el archivo de configuración del samba:
nano /etc/samba/smb.conf
Y debería de quedar como el siguiente. 
Nota: Recordar realizar un Backup del archivo antes de hacer cualquier modificacion.
[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
Quedando de esta manera. (Editamos los valores que estén en negrilla según sea nuestro caso).
[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 el Winbind

Este archivo toca crearlo dentro del directorio del samba:
nano /etc/samba/winbind.conf
Y debe de quedar de esta manera
[global]
security = ADS #Tipo de autenticacion
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
interfaces = br0
bind interfaces only = yes
preferred master = no
dns proxy = no
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
workgroup = SUGEEK
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:

1. Verificar que la IP este estática.
2. Verificar que el reloj del fileserver este sincronizado con el DC.
ntpdate -u IPSERVIDOR
3. Verificar Nombre del Servidor que sea el que esta en los archivos de configuracion "fileserver".
echo $HOSTNAME
si el resultado es diferente configuramos el archivo HOSTNAME con el nombre "fileserver"
nano /etc/hostname
4. Verificar archivo Host que tenga la ip asociada al DC.
nano /etc/hosts
Estando de la siguiente manera.
127.0.0.1 localhost
127.0.1.1 fileserver
DireccionIP winserver2008.SUGEEK.CO winserver2008 SUGEEK.CO
5. Editamos el archivo NSSWITCH para establecer el orden de consulta de las cuentas.
nano /etc/nsswitch.conf
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

6. Reiniciamos el servidor.
7. Ingresar el Nuevo servidor al dominio.
net ads join -S SUGEEK.CO -U Administrador
8. Verificamos que tengamos los usuarios y grupos.
wbinfo -u
wbinfo -g 
Listo, 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.

9. Como extra debemos de borrar los archivos mayores a 7 dias 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 {} \;
NOTA: Recordemos mejorar la seguridad con fail2ban y denyhost, ademas de buenas practicas con ssh.


Articulos Relacionados


No hay comentarios: