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.
Verificamos que nuestro sistema este actualizado.
apt-get update && apt-get upgradeInstalamos los paquetes necesarios.
apt-get install samba winbind gcc clamav clamav-testfiles unzip krb5-user krb5-config ntpdateSi les pide configuración del Kerberos, lo dejamos en blanco.
Configurando el Antivirus
1. Probamos el funcionamiento del Antivirus.freshclamY si funciona tendremos un resultado como el siguiente:
clamscan /usr/share/clamav-testfiles/
/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.
5. Editamos el archivo NSSWITCH para establecer el orden de consulta de las cuentas.127.0.0.1 localhost
127.0.1.1 fileserver
DireccionIP winserver2008.SUGEEK.CO winserver2008 SUGEEK.CO
nano /etc/nsswitch.confQuedando 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 Administrador8. 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.
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.
No hay comentarios:
Publicar un comentario