Tengo un servidor Linux con un SMB share Backup expuesto. Está conectado físicamente a una LAN a través de un enrutador. MacBook Pro conectado físicamente a la misma LAN a través del mismo enrutador puede conectarse, configurar Time Machine y hacer una copia de seguridad en este SMB share usando la IP de LAN del servidor Linux (por ejemplo, 192.168.X.X).
El enrutador también tiene una dirección WAN. El ISP bloquea las conexiones entrantes en los puertos 139 y 445 en el lado WAN, así que hice un NAT del puerto WAN:tcp:446 al puerto tcp:445 del servidor Linux.
Otro MacBook Pro en Internet quiere hacer una copia de seguridad en el mismo share. Puede conectarse al share como smb://usuario@IPWAN:446 a través de Finder, luego aparece un aviso del sistema con el usuario preinsertado, un campo para la contraseña y una casilla para guardar la contraseña en el Llavero. Después de proporcionar la contraseña, se conecta correctamente al servidor Linux y expone el share Backup y puedo ver, leer, editar, eliminar, crear, cambiar el nombre, etc. de los archivos y directorios en él a través de Finder.
Luego voy a la configuración de Time Machine, Elijo Disco, veo correctamente el share conectado y me permite elegirlo, solicita usuario y contraseña y ambos están preinsertados. Luego programa correctamente una copia de seguridad en 120 segundos.
Cuando pasan los 120 segundos o si ordeno una copia de seguridad manual en este momento, aparece un mensaje de autorización fallida y no se puede hacer una copia de seguridad.
Después de eso, todavía puedo hacer todo con el share en Finder, es decir, está funcionando completamente.
tmutil muestra que todo está bien.
$ tmutil destinationinfo
====================================================
Nombre : Backup
Tipo : Red
URL : smb://usuario@IPWAN:446/Backup
Punto de Montaje : /Volumes/Backup
ID : {***GUID***}
los registros muestran estos errores específicos
$ log show --style syslog --predicate 'senderImagePath contains[cd] "TimeMachine"' --info
...
2020-05-14 14:46:10.150565+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Intentando montar 'smb://usuario@IPWAN:446/Backup'
2020-05-14 14:46:10.427385+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] NAConnectToServerSync falló con el error: 80 (Error de autenticación) para la URL: smb://usuario@IPWAN:446/Backup
2020-05-14 14:46:10.427395+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Error de autenticación (80) - la información correcta de usuario o contraseña puede no existir en el Llavero del Sistema o el servidor ya no permite el acceso para este usuario.
2020-05-14 14:46:10.427414+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Intentando montar URL alternativa 'smb://usuario@IPWAN:446/Backup'
2020-05-14 14:46:10.706242+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] NAConnectToServerSync falló con el error: 80 (Error de autenticación) para la URL alternativa: smb://usuario@IPWAN:446/Backup
2020-05-14 14:46:10.706249+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Error de autenticación (80) - la información correcta de usuario o contraseña puede no existir en el Llavero del Sistema o el servidor ya no permite el acceso para este usuario.
2020-05-14 14:46:10.706328+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Error de autenticación (80) - la información correcta de usuario o contraseña puede no existir en el Llavero del Sistema o el servidor ya no permite el acceso para este usuario.
2020-05-14 14:46:10.706771+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] La copia de seguridad falló con el error 29: Hubo un problema al autenticar con el destino.
2020-05-14 14:46:10.708332+0100 localhost backupd[2435]: (TimeMachine) [com.apple.TimeMachine:General] Solicitud de cancelación pendiente despejada.
El smb.conf es bastante simple
[global]
use sendfile = yes
store dos attributes = no
server services = smb
mangled names = no
dos filetimes = no
workgroup = MYGROUP
server string = Samba Server
server role = standalone server
log file = /dev/stdout
max log size = 50
dns proxy = no
pam password change = yes
map to guest = bad user
usershare allow guests = yes
create mask = 0660
force create mode = 0000
directory mask = 0770
force directory mode = 0110
force user = smbuser
force group = smb
follow symlinks = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
strict locking = no
aio read size = 0
aio write size = 0
vfs objects = catia fruit streams_xattr
client ipc max protocol = SMB3
client ipc min protocol = SMB3_02
client max protocol = SMB3
client min protocol = SMB3_02
server max protocol = SMB3
server min protocol = SMB3_02
fruit:delete_empty_adfiles = yes
fruit:time machine = yes
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes
[Backup]
path = /home/backup
browsable = yes
read only = no
guest ok = no
veto files = /.apdisk/.DS_Store/.TemporaryItems/.Trashes/desktop.ini/ehthumbs.db/Network Trash Folder/Temporary Items/Thumbs.db/
delete veto files = yes
Si solo cambio guest ok = no a sí sin otros cambios y me conecto a smb://invitado@IPWAN:446 en lugar de usuario - la copia de seguridad funciona (obviamente, el acceso rw de invitados a través de Internet es una mala idea).
Si creo una VPN enrutada entre el MacBook Pro en Internet y el enrutador (L3, no L2, por lo que las transmisiones SMB no se ven), dejo guest ok = no y me conecto a smb://usuario@LANIP:445 con contraseña - la copia de seguridad funciona (es mucho más lento a través de la VPN, desafortunadamente, por eso estoy tratando de configurarlo sin).
Estoy perdido - no es un problema de autenticación, ya que puedo conectarme y hacer todo a través de Finder vía IPWAN con guest ok = no. No es un problema de privilegios, ya que puedo hacer una copia de seguridad a través de LANIP a través de VPN con guest ok = no. Parece no ser un problema de NAT, ya que puedo hacer una copia de seguridad a través de IPWAN con guest ok = sí.
He intentado reducir los requisitos de SMB3 a SMB2 - mismo comportamiento. He intentado eliminar todas las contraseñas del Llavero y reconectar, cambiar el nombre del share, cambiar IPWAN (para que no haya configuraciones guardadas en el MacBook Pro relacionadas con este share), mismo comportamiento.
¿Qué me falta? ¿Requiere el acceso no invitado NATear otro puerto? (No puedo NATear 137-139 ya que están bloqueados por el ISP.)
¡Agradecería mucho si pudieras ayudarme! ¡Gracias de antemano!
macOS Catalina 10.15.4 en MacBook Pro 13" 2018. Kernel de Linux 5.1.18. Samba 4.11.5.