Si tenemos un PC «viejo» (pentium 4 o similar) al cual ya no sacamos partido en nuestro dia a día, podemos darle una nueva utilidad: usarlo como servidor NAS para copias de seguridad en OS X mediante un Servidor Time Machine en Linux.
Existe numerosas vías para usar en Linux el famoso mecanismo de copias de seguridad Time Machine. Aunque una de las más simples y socorridas sea el uso de la implementación libre del protocolo Samba, la mejor manera de hacerlo es configurar Linux (en nuestro caso Ubuntu 12.10) para que actue como si fuera un servidor Mac en OS X. Esta nueva publicación, pretende ser una guía, paso a paso, para instalar la implementación open-source del protocolo AFP. El protocolo AFP (Apple Filing Protocol), perteneciente a la capa de presentación, permite a los ordenadores Macs (y en este caso a nuestro equipo Linux) compartir servicios Apple a través de nuestra red.
En este artículo usaremos el editor de texto nano, que como sabrán mis lectores más tecnicos, está basado en línea de comandos. Si lo deseáis, también podeis usar otro editor similar (como vim) simplemente reemplazando nano con el editor elegido. Alternativamente, si no estáis muy duchos en el uso de este tipo de editores y estáis usando una versión de Linux con el escritorio instalado, también podréis usar un editor gráfico como puede ser gedit, etc.
$ sudo apt-get update #Refrescamos los repositorios de Ubuntu
$ sudo apt-get upgrade #Descargamos e instalamos actualizaciones
$ sudo apt-get autoclean #Borramos los ficheros no necesarios
Instalación del Servidor Time Machine en Linux
Instalar AFP en Ubuntu (o en cualquier otra distribución de Linux) requiere un único paquete open-source básico, más otros dos paquetes que serán prerequisito a la instalación de éste. Estos paquetes son:
- Netatalk – Contiene la implementación actual del protocolo AFP
- Avahi – Servidor broadcasts presente en nuestra red LAN que permite a Mac OS X acceder a ella
El comando siguiente, permite la instalación de estos dos paquetes. Decir que se requiere conexión a Internet.
$ sudo apt-get install netatalk avahi-daemon
Configuración de Netatalk
Una vez que hemos instalado estos paquetes, necesitaremos configurar Netatalk para que trabaje de forma correcta. Ejecutamos el comando:
$ sudo nano /etc/default/netatalk
Nos movemos al final del fichero y debajo de la linea “# Set which aemons to run (papd is dependent upon atalkd):” cambiamos nuestra configuración para que se muestre lo siguiente:
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
Estos comandos pueden prevenir que se inicien servicios innecesarios en el arranque del sistema, haciendo que nuestra máquina Ubuntu vaya más rápida.
Lo siguiente que tenemos que hacer es abrir y editar el fichero afpd.conf,
$ sudo nano /etc/netatalk/afpd.conf
y añadir la siguiente línea al final del mismo:
- -transall -uamlist uams_randnum.so,uams_dhx2.so -nosavepassword -advertise_ssh
Para finalizar, necesitaremos decir a Netatalk cuál va a ser nuestro volumen (disco) compartido. Editaremos el fichero AppleVolumes.default tal y como se muestra en la siguiente linea:
$ sudo nano /etc/netatalk/AppleVolumes.default
Comentaremos todas las líneas de este fichero (colocando el caracter ‘#’ en el inicio de la linea) y añadiremos lo siguiente al final del mismo. Por ejemplo, si el volumen a compartir es /media/backup y el usuario que queremos utilizar con TimeMachine es jmramirez:
/media/backup "CopiaTM" allow:jmramirez cnidscheme:dbd options:tm
En este punto tenemos que tener en cuenta que:
- El directorio /media/backup tiene que tener permisos de lectura y escritura para el usuario.
- El usuario jmramirez tiene que estar dado de alta en nuestro sistema Ubuntu y tener una password válida.
- El nombre «CopiaTM» es el nombre del volumen que aparecerá en nuestra máquina Mac OS X.
- No es recomendable usar un disco USB conectado a nuestro ordenador, ya que el tiempo empleado en crear las copias de seguridad puede ser «eterno».
- Podemos añadir lineas adicionales para proporcionar acceso a diferentes directorios en Ubuntu.
Una vez modificado el fichero, tenemos que reiniciar el servicio Netatalk para que coja los cambios realizados en el fichero de configuración.
$ sudo /etc/init.d/netatalk restart
Configuración de Avahi
Netatalk puede ser usado ya sin ningún tipo de configuración adicional, pero con el fin de poder mostrar nuestro volumen en la sección «Compartido» de la ventana del Finder de OS X, necesitaremos configurar Avahi (que básicamente es una implementación abierta del servicio Bonjour de Apple).
Lo primero de todo es editar el fichero nsswitch.conf con:
$ sudo nano /etc/nsswitch.conf
y añadir la palabra mdns al final de la linea que comienza con «hosts:».
Después, deberemos crear un nuevo fichero para que Avahi sepa cuales son los servicios broadcast de los Macs de nuestra red. Para crear el fichero ejecutamos
$ sudo nano /etc/avahi/services/afpd.service
y después, copiamos estos datos xml en el fichero recien creado:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=MacbookPro</txt-record>
</service>
</service-group>
Esto hará que nuestro Servidor Time Machine en Linux se muestre como si fuera un MacPro, pero podemos hacer que se vea como cualquier tipo de Mac, sustituyendo el modelo MacPro con el modelo que deseemos: iMac, MacBook, MacBookPro, MacBookAir, PowerBook, PowerMac, Macmini, Xserve o AirPort. Ahora, simplemente reiniciamos el servicio Avahi para hacer que el Finder detecte el nuevo servicio disponible en nuestra máquina Ubuntu.
$ sudo service avahi-daemon restart
Configurando nuestro Mac
Finalmente, para usar TimeMachine con nuestro Ubuntu necesitamos sobreescribir la configuración original de TimeMachine en nuestro Mac. En dicho Mac, abriremos un Terminal (/Applications/Utilities/Terminal.app) y escribiremos el siguiente comando:
$ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Nuestro volumen compartido estará ahora disponible en la selección de disco en TimeMachine.
Bueno masquetecleros, si teneis algún problema con este tutorial no dudeís en comentarmelo. Si trabajáis con otra distribución de Linux, siempre tendréis la posibilidad de usar otro gestor de paquetes para instalar los paquetes comentados…
Mucha suerte y nos vemos en la próxima…
Adios, os!