Hola comunidad, he empezado el lunes arreglando uno de mis servidores de carpetas compartidas en windows que se ha crasheado debido a problemas con un virus :-(
Cuales son mis alternativas:
1- Reinstalar Windows y depender de trucos de seguridad y un antivirus para mantener
mi servidor funcionando
2-Montar un servidor samba como servidor de archivos e integrarlo al dominio.
Como la 1ra no ha resultado probaré con la 2da. Aqui les dejo como lo hice.
####################################################################
####################################################################
####################################################################
####################################################################
#samba como servidor de archivos en Ubuntu 14.04
#instalar y configurar ntp
sudo apt install ntp
#editar ntp.conf
sudo nano /etc/ntp.conf
#####################################
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server miserverntp.midominio.cu
restrict -4 default kod notrap nomodify nopeer
restrict -6 default kod notrap nomodify nopeer
restrict 127.0.0.1
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
broadcast 172.16.1.224
broadcast 192.168.1.255
tos orphan
server 127.127.1.0
fudge 127.127.1.0 stratum 8
############################################
#crear script para sincronizar con ntp público
sudo nano ntp.sh
##############################################
#!/bin/bash
sudo service ntp stop
sudo ntp -gq
sudo service ntp start
###############################################
#mandar a ejecutar la tarea de sync periodicamente
sudo nano /etc/crontab
############################################
20 0 * * * root /home/ladmin/ntp.sh
############################################
#comprobar que la hora está bién
date
#instalar samba
sudo apt install samba
#editar config samba
sudo nano /etc/samba/smb.conf
#############################################
#en este caso global y carpeta no tienen comillas, pero no he encontrado la forma de que salgan los
#corchetes :-p
"[global]"
netbios name = data1
workgroup = DOMINIO
security = ADS
realm = SAMBA.DOMINIO.CU
encrypt passwords = yes
#estas 2 opciones son para evitar que equipos con el viejo windows XP se conecten
# o que utilicen el servidor como puerta para virus que usen la vulnerabilidad EternalBlue
client min protocol = SMB2
client max protocol = SMB3_11
idmap config *:backend = rid
idmap config *:range = 100000-200000
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes
log level = 1
log file = /var/log/samba/samba.log
"[carpeta]"
comment=carpeta
path = /home/samba/carpeta
browseable = Yes
read only = No
force create mode = 0660
force directory mode = 0660
vfs objects = acl_xattr full_audit
full_audit:prefix = %u|%I|%S
full_audit:facility = local7
full_audit:success = mkdir rename unlink rmdir pwrite open
full_audit:failure = none
full_audit:priority = NOTICE
##############################################
#unirse al dominio
sudo net ads join -U usuario_admin_de_dominio
#para comprobar que se unió correctamente al dominio usamos estos 2 comandos
wbinfo -u
getent passwd
#crear carpeta samba
sudo mkdir /home/samba/
#crear carpeta que veremos como recurso compartido
sudo mkdir /home/samba/carpeta
#establecer permisos en samba
#se que a algunas personas les parece un riesgo de seguridad pero este servidor solo lo
#usan mis usuarios :-p
sudo chmod 777 -R /home/samba
#instalar windbind y cifs-utils
sudo apt install libnss-winbind cifs-utils
#editar /etc/nsswitch.conf y añadir(remplazar) esto
passwd: compat winbind
group: compat winbind
#para poder ver el log de todo lo que pasa con mi servidor edito "/etc/rsyslog.conf" y añando luego de la última línea
sudo nano /etc/rsyslog.conf
local7.* /var/log/samba/misamba.log
#editamos los permisos de samba para que cualquiera pueda escribir en su carpeta de log
sudo chmod 776 -R /var/log/samba
# Si eres paranoico como yo y quieres que tu log´s se renueven automáticamente, hacer esto para lograrlo
#editar "/etc/logrotate.d/samba" y añades al final
sudo /etc/logrotate/samba
/var/log/samba/misamba.log {
daily
missingok
rotate 2
postrotate
/etc/init.d/smbd reload > /dev/null
endscript
compress
notifempty
}
#hasta el momento he logrado que mis log se roten todos los días y dejo 2 copias por si las necesito.
#pero quiero copiar de forma automática el log para un servidor ftp externo
#para esto creo en la carpeta "/opt" una carpeta que contendrá mis archivos, en esta caso smb.
sudo mkdir /opt/smb
#dentro de esa carpeta creo 2 carpetas, una llamada sh, y otra llamada ftp
sudo mkdir /opt/smb/sh
sudo mkdir /opt/smb/ftp
#creo los archivos ejecutables en sh
sudo nano /opt/smb/sh/salva.sh
########################
########################
#!/bin/sh
set -x
fecha=$(date +%d%m%y)
cp -rf /var/log/samba/misamba.log /opt/smb/ftp/smb$fecha.log
cd /opt/smb/ftp/
ftp -inv < /opt/smb/sh/ftp.sh
rm -f *.log
<<EO
########################
#######################
sudo nano /opt/smb/ftp.sh
#######################
#######################
fecha=$(date +%y%m%d)
open miftp.cu
user miusuario mipasswd
cd savas
bin
put *.log
quit
#############################
#############################
#Lo que hacen estos archivos es simple, copian el log y lo mandan a un servidor ftp.
# le doy permisos 777 para tener acceso total a la carpeta /opt/smb
#
sudo chmod -R 777 /opt/smb
#creo una tarea programada que ejecute esta acción a las 11:57 pm
#para esto solo debo añadir una lína en "/etc/crontab"
sudo nano /etc/crontab
57 23 * * * root /opt/smb/salvas/salva.sh
#debemos también cambiar la configuración de "test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )" para que se ejecute a las 11:59 pm el cron.daily
#quedaría asi
59 23 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
#reiniciamos la PC
sudo reboot
####################################################################
####################################################################
####################################################################
####################################################################
Bueno, por el momento ya tenemos el servidor funcionado, podemos crear carpetas
y modificarle los permisos desde el mismo windows. Además todo lo que hagan
los usuarios será registrado, así que cuando alguien borre algo y no sepan quien fue
ya saben donde buscar.
Espero que les sea util, cualquier duda o sugerencia será aceptada.
Recordad, atacar siempre las ideas y no a las personas.
Saludos desde la Habana
Cuales son mis alternativas:
1- Reinstalar Windows y depender de trucos de seguridad y un antivirus para mantener
mi servidor funcionando
2-Montar un servidor samba como servidor de archivos e integrarlo al dominio.
Como la 1ra no ha resultado probaré con la 2da. Aqui les dejo como lo hice.
####################################################################
####################################################################
####################################################################
####################################################################
#samba como servidor de archivos en Ubuntu 14.04
#instalar y configurar ntp
sudo apt install ntp
#editar ntp.conf
sudo nano /etc/ntp.conf
#####################################
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server miserverntp.midominio.cu
restrict -4 default kod notrap nomodify nopeer
restrict -6 default kod notrap nomodify nopeer
restrict 127.0.0.1
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
broadcast 172.16.1.224
broadcast 192.168.1.255
tos orphan
server 127.127.1.0
fudge 127.127.1.0 stratum 8
############################################
#crear script para sincronizar con ntp público
sudo nano ntp.sh
##############################################
#!/bin/bash
sudo service ntp stop
sudo ntp -gq
sudo service ntp start
###############################################
#mandar a ejecutar la tarea de sync periodicamente
sudo nano /etc/crontab
############################################
20 0 * * * root /home/ladmin/ntp.sh
############################################
#comprobar que la hora está bién
date
#instalar samba
sudo apt install samba
#editar config samba
sudo nano /etc/samba/smb.conf
#############################################
#en este caso global y carpeta no tienen comillas, pero no he encontrado la forma de que salgan los
#corchetes :-p
"[global]"
netbios name = data1
workgroup = DOMINIO
security = ADS
realm = SAMBA.DOMINIO.CU
encrypt passwords = yes
#estas 2 opciones son para evitar que equipos con el viejo windows XP se conecten
# o que utilicen el servidor como puerta para virus que usen la vulnerabilidad EternalBlue
client min protocol = SMB2
client max protocol = SMB3_11
idmap config *:backend = rid
idmap config *:range = 100000-200000
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes
log level = 1
log file = /var/log/samba/samba.log
"[carpeta]"
comment=carpeta
path = /home/samba/carpeta
browseable = Yes
read only = No
force create mode = 0660
force directory mode = 0660
vfs objects = acl_xattr full_audit
full_audit:prefix = %u|%I|%S
full_audit:facility = local7
full_audit:success = mkdir rename unlink rmdir pwrite open
full_audit:failure = none
full_audit:priority = NOTICE
##############################################
#unirse al dominio
sudo net ads join -U usuario_admin_de_dominio
#para comprobar que se unió correctamente al dominio usamos estos 2 comandos
wbinfo -u
getent passwd
#crear carpeta samba
sudo mkdir /home/samba/
#crear carpeta que veremos como recurso compartido
sudo mkdir /home/samba/carpeta
#establecer permisos en samba
#se que a algunas personas les parece un riesgo de seguridad pero este servidor solo lo
#usan mis usuarios :-p
sudo chmod 777 -R /home/samba
#instalar windbind y cifs-utils
sudo apt install libnss-winbind cifs-utils
#editar /etc/nsswitch.conf y añadir(remplazar) esto
passwd: compat winbind
group: compat winbind
#para poder ver el log de todo lo que pasa con mi servidor edito "/etc/rsyslog.conf" y añando luego de la última línea
sudo nano /etc/rsyslog.conf
local7.* /var/log/samba/misamba.log
#editamos los permisos de samba para que cualquiera pueda escribir en su carpeta de log
sudo chmod 776 -R /var/log/samba
# Si eres paranoico como yo y quieres que tu log´s se renueven automáticamente, hacer esto para lograrlo
#editar "/etc/logrotate.d/samba" y añades al final
sudo /etc/logrotate/samba
/var/log/samba/misamba.log {
daily
missingok
rotate 2
postrotate
/etc/init.d/smbd reload > /dev/null
endscript
compress
notifempty
}
#hasta el momento he logrado que mis log se roten todos los días y dejo 2 copias por si las necesito.
#pero quiero copiar de forma automática el log para un servidor ftp externo
#para esto creo en la carpeta "/opt" una carpeta que contendrá mis archivos, en esta caso smb.
sudo mkdir /opt/smb
#dentro de esa carpeta creo 2 carpetas, una llamada sh, y otra llamada ftp
sudo mkdir /opt/smb/sh
sudo mkdir /opt/smb/ftp
#creo los archivos ejecutables en sh
sudo nano /opt/smb/sh/salva.sh
########################
########################
#!/bin/sh
set -x
fecha=$(date +%d%m%y)
cp -rf /var/log/samba/misamba.log /opt/smb/ftp/smb$fecha.log
cd /opt/smb/ftp/
ftp -inv < /opt/smb/sh/ftp.sh
rm -f *.log
<<EO
########################
#######################
sudo nano /opt/smb/ftp.sh
#######################
#######################
fecha=$(date +%y%m%d)
open miftp.cu
user miusuario mipasswd
cd savas
bin
put *.log
quit
#############################
#############################
#Lo que hacen estos archivos es simple, copian el log y lo mandan a un servidor ftp.
# le doy permisos 777 para tener acceso total a la carpeta /opt/smb
#
sudo chmod -R 777 /opt/smb
#creo una tarea programada que ejecute esta acción a las 11:57 pm
#para esto solo debo añadir una lína en "/etc/crontab"
sudo nano /etc/crontab
57 23 * * * root /opt/smb/salvas/salva.sh
#debemos también cambiar la configuración de "test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )" para que se ejecute a las 11:59 pm el cron.daily
#quedaría asi
59 23 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
#reiniciamos la PC
sudo reboot
####################################################################
####################################################################
####################################################################
####################################################################
Bueno, por el momento ya tenemos el servidor funcionado, podemos crear carpetas
y modificarle los permisos desde el mismo windows. Además todo lo que hagan
los usuarios será registrado, así que cuando alguien borre algo y no sepan quien fue
ya saben donde buscar.
Espero que les sea util, cualquier duda o sugerencia será aceptada.
Recordad, atacar siempre las ideas y no a las personas.
Saludos desde la Habana