La almacenamiento será sobre disco duro externo de 1TB conectado al puerto USB 3.0 del DLink.
En un principio he intentado hacerlo funcionar con OpenWRT 21.02.1, que ya había utilizado para el montaje del routed client, pero he tenido estos dos problemas:
- Los paquetes de samba4 ocupan una burrada, no hay espacio en los 16Mb de memoria SD del dispositivo para ellos.
- En esta versión de OpenWRT no hay samba3. Existe un paquete llamado ksmbd-server que emula samba v3 a nivel de módulo del nucleo. El problema es que en las pruebas que he hecho es inestable y se cae con frecuencia.
Una vez cargado el sistema y hechas las configuraciones iniciales básicas, veamos como queda. La red pide una IP por DHCP en el puerto "lan" (hemos dado de alta el equipo en el arbol ldap con el nombre "nas" y una IP fija)
# cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdda:86a9:b1ad::/48'
config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option macaddr '9a:45:4e:fb:75:c1'
option type 'bridge'
option proto 'dhcp'
config interface 'wan'
option ifname 'eth0.2'
option force_link '1'
option macaddr '9a:45:4e:fb:75:c2'
option proto 'dhcp'
config interface 'wan6'
option ifname 'eth0.2'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '1 2 3 4 6t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0 6t'
Los interfaces wifi quedan apagados:
# cat /etc/config/wireless
config wifi-device radio0
option type mac80211
option channel 36
option hwmode 11a
option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
option htmode VHT80
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 1
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid OpenWrt
option encryption none
config wifi-device radio1
option type mac80211
option channel 11
option hwmode 11g
option path 'pci0000:00/0000:00:01.0/0000:02:00.0'
option htmode HT20
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 1
config wifi-iface
option device radio1
option network lan
option mode ap
option ssid OpenWrt
option encryption none
Creamos un usuario normal para usar luego en samba. En /etc/passwd añadimos el usuario "nas":
# cat /etc/passwd
root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftp:*:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
nas:*:1000:65534:nas:/var:/bin/ash
Y definimos una contraseña para él:
# passwd nas
El montaje del disco externo USB necesita estos paquetes:
# opkg update
# opkg install fdisk block-mount e2fsprogs kmod-fs-ext4 kmod-usb-storage kmod-usb2 kmod-usb3
Formateamos el disco externo (aconsejamos usar formato ext3) y lo pinchamos en el puerto usb. Con:
# fdisk -l
Sacamos un listado de los discos conectados, nuestro disco duro debe aparecer como /dev/sdaX. A continuación creamos el punto de montaje:
# mkdir /disco
# chown nas: /disco
# chmod 777 /disco
Modificamos el fichero "fstab" para que se automonte el disco en el arranque:
# cat /etc/config/fstab
...
config mount
option enabled '1'
option device '/dev/sda1'
option target '/disco'
Instalamos paquetes para permitir conexiones y transferencia de datos con sshfs, scp y rsync:
# opkg update
# opkg install openssh-sftp-server rsync
Y vamos a la configuración de samba:
# opkg update
# opkg install kmod-usb-storage block-mount samba36-server luci-app-samba
La configuración sería:
# cat /etc/config/samba
config samba
option workgroup 'WORKGROUP'
option homes '1'
option name 'NAS'
option description 'NAS'
config sambashare
option name 'datos'
option path '/disco'
option read_only 'no'
option guest_ok 'no'
option create_mask '777'
option dir_mask '777'
option users 'nas'
Hay que crear el usuario "nas" en samba, con la contraseña que nos pareza conveniente:
# smbpasswd -a nas
Tras esto reiniciamos y probamos a montar desde una maquina cliente. En una máquina Linux que hará de cliente vamos a probar a montar mediante sshfs:
# sshfs root@nas:/disco /mnt
# mount
....
root@nas:/disco on /mnt type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# umount /mnt
Vamos a por samba. Samba casi siempre da problemas de permisos con el sistema de ficheros compartido. Para evitarlo, una vez montado el disco duro modificamos de nuevo los permisos de la carpeta (esto se debe a que cuando la partición montada es tipo extX no existe el parametro umask):
# chmod 777 /disco
Y ahora en un cliente Linux probamos a montar usando samba/cifs y creamos un directorio y un fichero para confirmar que todo va bien:
# mount -t cifs //172.19.231.150/datos /mnt -o username=nas,password=xxxx
# mount
....
//172.19.X.Y/datos on /mnt type cifs (rw,relatime,vers=1.0,cache=strict,username=nas,domain=NAS,uid=0,noforceuid,gid=0,noforcegid,addr=172.19.X.Y,unix,posixpaths,serverino,acl,rsize=1048576,wsize=1048576,actimeo=1)
# mkdir /mnt/prueba
# touch /mnt/prueba/test
# umount
Por último, para clientes Windows se realiza el montaje accediendo desde el explorador de archivos a la ruta "\\nas\disco". Pedirá usuario y contraseña y listo...excepto en Windows 10, que da un error derivado de que en dicho sistema se han puesto tiquismiquis con la versión de SMB soportada. Todo el asunto está descrito en este enlace, para que funcione simplemente hay que activar el soporte para SMB 1.0 siguiendo estos pasos:
- Pulsar Windows Key + R, teclea "optionalfeatures.exe" y pulsa Enter. Sale una ventana muy años 90.
- Buscar la sección "SMB 1.0/CIFS File Sharing Support" o similar, abrirla.
- Marcar SMB 1.0/CIFS Client. Desmarcar MB 1.0/CIFS Automatic Removal y SMB 1.0/CIFS Server.
- Reiniciar y acceder a "\\nas\disco" para verificar que funciona.
Al ser un sistema donde el disco va por USB no es lo más rápido del mundo, pero queda ideal para copias de seguridad y tareas que no requieran una velocidad de transferencia excesiva.
Y poco mas se puede probar, simplemente estoy mirando la posibilidad de usar syncthing para mantener el disco NAS sincronizado con otor sistema de ficheros, en plan "copia de seguridad en tiempo real", a ver que tal rinde.
Ya iremos contando. До свидания!
No hay comentarios:
Publicar un comentario