Script Bash: Synology USB Backup Copy
Después de los últimos acontecimientos con los nas de QNAP y su encriptación por ransomware, he querido darle una vuelta a las copias de seguridad y a la propia seguridad de mi NAS Synology.
En mi caso, lo que hago es una tarea periódica diaria a un soporte externo USB mediante una aplicación propia de Synology como Hyper Backup. El problema viene, que aunque yo lleve la copia de seguridad a un soporte externo que sólo buscaba tener mis datos duplicados si se rompe la Synology, si alguien es capaz de encriptar mi NAS, lo hará también con mi disco USB que está montado en el sistema, ya que al final no es más que una partición más que poder atacar.
Llegados a este punto, y aunque buscaré soluciones más complejas, la primera configuración rápida que se me ha ocurrido, es hacer un montaje y desmontaje del disco USB cuando no se utiliza por la copia de seguridad. No es que me salve del todo, pero me expongo menos a esa encriptación total de mis sistemas.
Os explico los pasos que he seguido para automatizar el mount-unmount del disco USB. Lo primero que haremos es acceder vía SSH a nuestro Synology, así que lo habilitáis mediante Panel de control -> Terminal y SNMP -> Terminal:
Nos conectamos por consola, y lanzamos un comando para revisar los discos montados:
1 2 3 4 5 6 7 8 9 10 11 12 |
elblogdenegu@NASCASIKA:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.2G 1.1G 53% / none 7.9G 0 7.9G 0% /dev /tmp 7.9G 2.1M 7.9G 1% /tmp /run 7.9G 9.3M 7.9G 1% /run /dev/shm 7.9G 4.0K 7.9G 1% /dev/shm none 4.0K 0 4.0K 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs /dev/md2 11T 6.5T 4.1T 62% /volume1 /dev/sdq1 7.3T 3.5T 3.8T 49% /volumeUSB1/usbshare tmpfs 1.0T 0 1.0T 0% /dev/virtualization |
Como podéis observar mi disco está montado en /volumeUSB1/usbshare y el disco es /dev/sdq1. También podéis usar lsusb para verificar el estado:
1 2 3 4 5 6 7 8 |
elblogdenegu@NASCASIKA:~$ lsusb |__usb1 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (ehci_hcd 0000:00:16.0) hub |__1-1 8087:07db:0002 09 2.00 480MBit/s 0mA 1IF ( ffffffd1ffffffb2ffffffdbffffffad) hub |__1-1.1 f400:f400:0100 00 2.00 480MBit/s 200mA 1IF (Synology DiskStation 65005CF822A34F78) |__usb2 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (Linux 3.10.105 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub |__2-2 051d:0002:0106 00 1.10 1.5MBit/s 24mA 1IF (American Power Conversion Back-UPS XS 950U FW:925.T1 .I USB FW:T1 3B1528X11066 ) |__usb3 1d6b:0003:0310 09 3.00 5000MBit/s 0mA 1IF (Linux 3.10.105 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub |__3-3 1058:25ee:4009 00 3.10 5000MBit/s 8mA 1IF (Western Digital My Book 25EE 314548353335574E) |
También podéis usar para verificar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
elblogdenegu@NASCASIKA:~$ dmesg | grep -i usb [ 10.822644] ACPI: bus type USB registered [ 10.827450] usbcore: registered new interface driver usbfs [ 10.833766] usbcore: registered new interface driver hub [ 10.839945] usbcore: registered new interface driver ethub [ 10.846265] usbcore: registered new device driver usb [ 10.875368] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 10.902319] ehci-pci 0000:00:16.0: new USB bus registered, assigned bus number 1 [ 10.931887] ehci-pci 0000:00:16.0: USB 2.0 started, EHCI 1.00 [ 10.938754] hub 1-0:1.0: USB hub found [ 10.961537] uhci_hcd: USB Universal Host Controller Interface driver [ 11.014336] etxhci_hcd-170202 0000:04:00.0: new USB bus registered, assigned bus number 2 [ 11.024999] ethub 2-0:1.0: USB hub found [ 11.041535] etxhci_hcd-170202 0000:04:00.0: new USB bus registered, assigned bus number 3 [ 11.051652] ethub 3-0:1.0: USB hub found [ 11.270146] usb 1-1: new high-speed USB device number 2 using ehci-pci [ 11.433808] hub 1-1:1.0: USB hub found [ 11.726610] usb 1-1.1: new high-speed USB device number 3 using ehci-pci [ 12.389025] usb 2-2: new low-speed USB device number 2 using etxhci_hcd-170202 [ 12.453255] usb 2-2: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [ 13.574317] usb 3-3: new SuperSpeed USB device number 2 using etxhci_hcd-170202 [ 27.728154] usb 2-2: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [ 65.922969] usb-storage 1-1.1:1.0: USB Mass Storage device detected [ 65.930181] scsi8 : usb-storage 1-1.1:1.0 [ 65.934815] usb-storage 3-3:1.0: USB Mass Storage device detected [ 65.942015] scsi9 : usb-storage 3-3:1.0 [ 65.946413] usbcore: registered new interface driver usb-storage [ 65.980937] usbcore: registered new interface driver usblp [ 66.032643] usbcore: registered new interface driver usbhid [ 66.038899] usbhid: USB HID core driver [ 98.022072] usbcore: registered new interface driver snd-usb-audio [ 98.521952] usbcore: registered new interface driver snd-usb-hiface |
Entonces, la primera prueba es, sabiendo que está montado, desmontarlo y volverlo a montar. Usaremos los comandos:
1 2 |
elblogdenegu@NASCASIKA:~$ sudo umount /dev/sdq1 Password: |
Verificamos:
1 2 3 4 5 6 7 8 9 10 11 |
elblogdenegu@NASCASIKA:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.2G 1.1G 53% / none 7.9G 0 7.9G 0% /dev /tmp 7.9G 2.1M 7.9G 1% /tmp /run 7.9G 9.3M 7.9G 1% /run /dev/shm 7.9G 4.0K 7.9G 1% /dev/shm none 4.0K 0 4.0K 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs /dev/md2 11T 6.5T 4.1T 62% /volume1 tmpfs 1.0T 0 1.0T 0% /dev/virtualization |
Volvemos a montar y verificar:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
elblogdenegu@NASCASIKA:~$ sudo mount /dev/sdq1 /volumeUSB1/usbshare/ elblogdenegu@NASCASIKA:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.2G 1.1G 53% / none 7.9G 0 7.9G 0% /dev /tmp 7.9G 2.1M 7.9G 1% /tmp /run 7.9G 9.3M 7.9G 1% /run /dev/shm 7.9G 4.0K 7.9G 1% /dev/shm none 4.0K 0 4.0K 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs /dev/md2 11T 6.5T 4.1T 62% /volume1 tmpfs 1.0T 0 1.0T 0% /dev/virtualization /dev/sdq1 7.3T 3.5T 3.8T 49% /volumeUSB1/usbshare |
Sabiendo como hacerlo, lo traspasamos al programador de tareas. Panel de control -> Programador de tareas -> Crear -> Tareas programadas -> Script definido por usuario
Le damos un nombre y la lanzamos como root, para que no se pida contraseña:
Le damos una programación, que tiene que ser antes que la copia de seguridad:
Y añadimos el comando a lanzar:
También generamos otra de la misma forma, pero para desmontar. Fijaros en el log de vuestro backup para ello:
Y generáis una segunda para desmontar:
Es una solución sencilla pero eficaz…Intentaré trabajar un script bash que mire procesos y monte-desmonte
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Si utilizas la APP USBcopy en el synology, te da la opción de una vez terminado el backup, desmontar la unidad directamente, por lo que con un solo script podrás montar la unidad y luego el software de backups se encargará del resto.