NETATALK
Comunicación por red Mac - Linux
Netatalk es una implementación del conjunto de protocolos de AppleTalk para sistemas UNIX. La versión actual incluye soporte para EtherTalk Phase I y II, DDP, RTMP, NBP, ZIP, AEP, ATP, PAP, ASP y AFP.
La implementación se divide en las siguientes partes:
DDP se encuentra en el núcleo
El demonio atalkd implementa RTMP, NBP, ZIP y AEP. Es el equivalente Apple de lo que en UNIX es routed y ifconfig.
ATP y ASP están implementados como librerías. Hay también una librería para NBP.
papd permite a los MAC encolar documentos en un lpd o una tubería, y pap permite a las máquinas UNIX imprimir en impresoras AppleTalk conectadas.
psf es un filtro de PostScript, diseñado para usar pap.
psorder es un inversor de orden PostScript, llamado por psf par invertir el orden de las páginas a imprimir.
afpd provee a los Macs de acceso a los sistemas de ficheros UNIX
La intención del siguiente documento es explicar los pasos necesarios para permitir la configuración entre dos máqinas, una de ellas un Mac, y la otra un PC usando Linux.
Podemos encontrar un archivo comprimido con todo lo necesario para realizar la instalación aquí.
Primeros pasos
Una vez descargado el paquete descomprimimos los fuentes en algún directorio temporal, como por ejemplo /var/instalacion/, de la siguiente forma:
cd /var/instalacion
tar -xvzf netatalk-1.3.3.tar.gz
cd netatalk-1.3.3
Compilando el núcleo
Desde la versión 1.3 del núcleo el soporte de DDP ya se encuentra incluido. Por lo tanto, debermos incluir dicho soporte dentro del núcleo, contestando Y a AppleTalk DDP Support. Si se usa make menuconfig esta opción se encontrará dentro de Networking Options.
Compilando e instalando los binarios
Lo primero que debemos hacer es darle valor a la variable DESTDIR del archivo Makefile del directorio raíz con los fuentes. Esa variable indicará el directorio a partir del cual podremos encontrar los binarios y archivos de configuración. También puede ser deseable modificar el valor de la varible MANDIR. Tras todo esto ya estaremos preparados para ejecutar make y make install.
Accediendo desde un MAC
Tras instalar netatalk desde código fuente o directamente desde los binarios, ya podremos acceder a los directorios de los usuarios Linux desde cualquier MAC en la misma red. Para probar si todo funciona sin necesidad de realizar ninguna configuración inicial instalamos el script de inicio (en caso de haberlo instalado mediante binarios). Nos trasladamos a un MAC y seleccionamos el menú Apple y seleccionamos AppleShare. Debemos asegurarnos de que AppleTalk está activo (lo cual se indica en la esquina inferior derecha. En caso de que no lo esté, pinchamos en Active y hacemos un restart). Entonces pinchamos sobre nuestra máquina Linux que debería aparecer en la lista de la derecha y ya podremos hacer un login como usuario del sistema. Los siguientes apartados permitirán variar el comportamiento por defecto.
Configuración de la cuenta guest
Para acceder desde un MAC como invitado deberemos crear un servidor en el archivo afpd.conf dentro del direcrtorio de configuración de Netatalk. Podemos introducir una línea como la siguiente:
"Invitado" -uamlist uams_guest.so -loginmesg "Bienvenido!!" -guestname "internet"
El servidor recibirá el nombre de Invitado. El parámetro -uamlist uams_guest.so indica que es posible acceder a ese servidor sin necesidad de realizar un login. El parámetro loginmesg indica el mensaje que se dará por pantalla cuando el cliente consiga conectar, y el parámetro -guestname indica el nombre del usuario dentro del sistema Linux que se empleará cuando se consiga realizar el login como invitado.
Configuración para acceder a las cuentas de usuarios Linux
Para acceder al direcrtorio home de los usuarios del sistema Linux desde el Mac deberemos indicar detras del parámetro -uamlist el valor adecuado según tengamos configurado el acceso al sistema:
uams_clrtxt.so: acceso al sistema mediante contraseñas en ASCII
uams_pam.so: acceso a un sistema que utiliza PAM
uams_passwd.so: acceso a un sistema mediante contraseña.
Así, por ejemplo, podriamos incluir dentro de afpd.conf una línea como la siguiente:
"Usuario" -uamlist uams_passwd.so -loginmesg "Entraste como usuario"
Así ya podremos seleccionar "Usuario", y tras introducir un nombre de usuario y su contraseña, podremos acceder a su directorio home correspondiente.
Configuración para acceder con otros usuarios y contraseñas a otros directorios
Una vez vistas las dos posibilidades anteriores, cabe preguntarse si es posible permitir el acceso a determinado directorio, independiente de los directorios home de los usuarios linux, para logins con nombres de usuario y contraseñas totalmente diferentes a lo almacenado en /etc/passwd y /etc/shadows.
Una primera aproximación al problema de añadir más directorios además de los directorios home de usuario es cambiar el contenido del fichero AppleVolumes.default. En un principio el único contenido de ese fichero es ~ , lo cual indica que por defecto un usuario que entre al sistema podrá acceder a su directorio home. Podemos añadir más directorios a este fichero, de tal forma que podrán ser accedidos por cualquier usuario que realice un login en el sistema. Por ejemplo, podríamos incluir lo siguiente:
/usr/pub "Linux Share"
Esta línea haría accesible el contenido del directorio /usr/pub/ bajo el nombre de "Linux Share". Se ha de tener en cuenta que si el usuario solo tiene permiso de lectura en el sistema de ficheros linux, tampoco tendrá derechos de escritura desde el mac.
También es posible crear volúmenes específicos para un determinado usuario. Para ello, en su directorio home creamos un fichero llamado .AppleVolumes en el que indicamos los volúmenes de la misma forma en que se hace en AppleVolumes.default, y ponemos dentro del fichero afpd.conf la opción uservolfirst, de tal forma que el nuevo fichero creado tenga preferencia sobre los del sistema.