juliobm algunos videos algunas notas algunos scripts aprendiendo

FreeBSD como repositorio de copias

En mi trabajo la red se compone principalmente de servidores windows, aunque los hay Ubuntu, Suse y algunas versiones de FreeBSD. Los puestos de clientes más de lo mismo.

En estos dias el ransomware está al orden del día, por lo que aparte de las medidas de seguridad diarias como copias, antivirus, firewall, avisos al personal sobre el uso de internet y los correos, etc … es mejor tener un plan para cuando te toque el día restablecer cuanto antes los servidores y los datos.

En una red windows es bastante habitual tener carpetas compartidas, para grupos de empleados, intranet, documentación, etc.. El ransomware las utiliza para expandirse por lo que me tocó hacer una revisión completa de las que eran verdaderamente necesarias y sobre todo ajustando los permisos a los mínimos necesarios. Lo mismo con los usuarios, bajando privilegios de acceso lo más posible.

Como hace poco en una empresa pareja a la nuestra le entró un virus que incluso afectó a servidores con Suse Enterprise debido a las carpetas compartidas y lo más seguro por tener estos últimos alguna política de seguridad mal implantada, decidí establecer una medida de seguridad más aparte de las revisiones dichas anteriormente.

Por supuesto las copias diarias son fundamentales, además de disponer de alguna de esas copias fuera del establecimiento de trabajo para tirar de ella en caso de incendio u otro desastre, pero si te pilla un virus y afecta a todos tus servidores ¿cuanto tiempo necesitas para reinstalar todo el software y por último los datos? Sí, virtualización, pero aún así que no te pille algun virus que afecte a esos sistemas y sus copias.

Además tampoco me valen copias en la nube pues aunque fueran incrementales tendría que estar subiendo más de 100GB diarios. Si consigues subirlos, luego bájatelos de la red. Además las copias tienen que ser lo más actualizadas posibles pues al día se mueven miles de referencias, albaranes, etc..

Tampoco voy a poner en este post mi sistema de copias, unidades o software utilizado en materia de seguridad.

Como resumen, para poder minimizar los ataques de ransomware decidí:

¿por qué FreeBSD?

¿qué quiero hacer con el servidor FreeBSD?

Pues quiero hacer copias de las copias. Es decir, como son muchos GB diarios a copiar y no puede tener el ERP parado mucho tiempo para hacerlas, hago una, y luego en otros momentos del día con poca carga hago copia de esa copia. Además así evito bloqueos de ficheros mientras procesos posean los ficheros de las copias.

Sería más o menos tal que así:

freebsd_copias.jpg

Como además el ransomware puede que te infecte hoy pero se ejecute dentro de seis meses por lo que las copias pueden estar infectadas todas ellas, es mejor entonces tener copias de varios días. Pero repito. En mi empresa, tener una copia de hace un mes de poco me sirve. Por lo que decido guardar los últimos siete días.

Además utilizaré en algunos casos cp como copia total de los ficheros y en otros la herramienta rsync para que copie sólo los ficheros modificados por ejemplo de la intranet.

El proceso sería:

Como mejora estaría el desconectar de la red este servidor en cuanto terminase las copias y que se conecte automáticamente sólo a la hora de hacer las copias.

¿un ejemplo del script de copias?

echo $(date +%x\ %H:%M:%S) start $0 >> /usr/home/julio/logcopias.txt
# desmontamos esté montado o no
umount /home/julio/tempintranet
#
# vemos dia de la semana
dia=$(( $(date +%u) % 3))
#
# montamos unidad temporal contra la carpeta intranet de zacofarvaad
# y si hay exito hacemos copia con rsync
mount_smbfs -I 10.10.2.207 -W DOMINIO //USUARIO@SERVIDOR/INTRANET /home/julio/tempintranet && rsync -r -t --delete --modify-window=1 -s /home/julio/tempintranet/ /home/julio/copias/intranet/dia$dia 
#
# desmontamos 
umount /home/julio/tempintranet
echo $(date +%x\ %H:%M:%S) end $0 >> /usr/home/julio/logcopias.txt

Por supuesto este script se puede mejorar, como que en lugar de hacer el umount comprobar si está montado o no. Ya. Poco gano y en claridad pierdo.

No quiero explicar mucho el script pero el truco para utilizar mount_smbfs es tener el fichero /root/.nsmbrc

[SERVIDOR]
addr=10.10.2.207

[SERVIDOR:USUARIO]
password=laquesea

Poner la tarea en crontab y listo.

Que nunca haya que utilizar las copias.