Уже давно являюсь пользователем продукции Apple. Старенький макбук полностью справляется с теми задачами, что на него возлагаются. В основном конечно развлекательные. Но в последнее время стало не хватать места на 40 гиговом жестком диске. И вот наконец у меня зачесались руки настроить свой домашний сервер, как хранилище. Некоторое время работал по ftp, но это было не удобно. Было принято решение настроить наконец Appletalk, не зря же он есть и заодно приручить к нему TimeMachine:-)
Настройка всего этого можно разделить на несколько этапов:
1. Установка Appletalk
2. Настройка AppleTalk
3. Установка Avahi
4. Настройка Avahi
5. Настройка TimeMachine
Ну что ж, приступим.
Пакет Netatalk — opensource реализация сервиса Appletalk (AFP сервер). Mac OS X требует поддержки шифрования, но стандартная сборка этого пакета не поддерживает шифрование. Поэтому необходимо пересобрать этот пакет.
Тут можно скачать уже правильно собранный пакет, и перейти к пункту 2.
Но лучше собрать самому выполнив эти команды:
Скачиваем сырцы:
Устанавливаем то, что нужно для сборки:
Собираем:
И, если все в порядке, устанавливаем:
Все не так страшно как казалось. Чтобы при обновлении системы правильный пакет не заменился более новым но не правильным ставим блок на пакет netatalk:
Всё, теперь перейдем к настройке.
Сперва нужно отключить те сервисы, которые для решения текущей задачи не нужны. Приведем секцию в фаиле /etc/default/netatalk до такого вида:
Теперь пришло время главного конфигурационного файла /etc/netatalk/afpd.conf и внизу добавим эту строчку:
Теперь перейдем к настройке ресурсов, которые будут рассшарены по afp. Это настраивается в файле /etc/netatalk/AppleVolumes.default
Строка:
рассшаривает папку /home/torrent/downloads под именем Torrent-Downloads для пользователя username и для гостевого пользователя. Причем Гость может только читать из этой папки.
Строка:
рассшаривает ресурс для TimeMachine.
После редактирования конфигов, стоит перезапустить netatalk:
После проделанных выше шагов можно, с помощью Finder, зайти на рассшаренные ресурсы. Но каждый раз использовать для этого меню не удобно, нужно сделать так, чтобы сервер afp был виден в меню ресурсов Finder.
Для этого нам и понадобился Avahi. Avahi — демон предоставляющий в сети сервисы на подобии Bonjour.
Установка avahi проста:
В файле /etc/nsswitch.conf в строке начиающийся на hosts нужно добавить в конце mdns, вот так:
Создадим фаил /etc/avahi/services/afpd.service с содержанием:
И перезапустим avahi:
Теперь хранилище должно было появится в левом сайдбаре Finder.
В консоли мака нужно выполнить команду:
Вот и все.
Настройка всего этого можно разделить на несколько этапов:
1. Установка Appletalk
2. Настройка AppleTalk
3. Установка Avahi
4. Настройка Avahi
5. Настройка TimeMachine
Ну что ж, приступим.
1. Установка AppleTalk
Пакет Netatalk — opensource реализация сервиса Appletalk (AFP сервер). Mac OS X требует поддержки шифрования, но стандартная сборка этого пакета не поддерживает шифрование. Поэтому необходимо пересобрать этот пакет.
Тут можно скачать уже правильно собранный пакет, и перейти к пункту 2.
Но лучше собрать самому выполнив эти команды:
Скачиваем сырцы:
cd /tmp
sudo apt-get build-dep netatalk
sudo apt-get source netatalk
cd netatalk-2*
Устанавливаем то, что нужно для сборки:
sudo apt-get install cracklib2-dev fakeroot libssl-dev
Собираем:
sudo DEB_BUILD_OPTIONS=ssl
sudo export DEB_BUILD_OPTIONS
sudo dpkg-buildpackage -rfakeroot
И, если все в порядке, устанавливаем:
sudo dpkg -i ../netatalk_2*.deb
Все не так страшно как казалось. Чтобы при обновлении системы правильный пакет не заменился более новым но не правильным ставим блок на пакет netatalk:
echo "netatalk hold" | sudo dpkg --set-selections
Всё, теперь перейдем к настройке.
2. Настройка AppleTalk
Сперва нужно отключить те сервисы, которые для решения текущей задачи не нужны. Приведем секцию в фаиле /etc/default/netatalk до такого вида:
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
Теперь пришло время главного конфигурационного файла /etc/netatalk/afpd.conf и внизу добавим эту строчку:
- -transall -uamlist uams_randnum.so,uams_dhx2.so,uams_guest.so -nosavepassword -advertise_ssh
Теперь перейдем к настройке ресурсов, которые будут рассшарены по afp. Это настраивается в файле /etc/netatalk/AppleVolumes.default
Строка:
/home/torrent/downloads "Torrent-Downloads" allow:username,nobody rolist:nobody cnidscheme:cdb options:usedots
рассшаривает папку /home/torrent/downloads под именем Torrent-Downloads для пользователя username и для гостевого пользователя. Причем Гость может только читать из этой папки.
Строка:
/home/username/TimeMachine "TimeMachine" allow:username1,username2 cnidscheme:cdb options:usedots,upriv
рассшаривает ресурс для TimeMachine.
После редактирования конфигов, стоит перезапустить netatalk:
sudo /etc/init.d/netatalk restart
Установка Avahi
После проделанных выше шагов можно, с помощью Finder, зайти на рассшаренные ресурсы. Но каждый раз использовать для этого меню не удобно, нужно сделать так, чтобы сервер afp был виден в меню ресурсов Finder.
Для этого нам и понадобился Avahi. Avahi — демон предоставляющий в сети сервисы на подобии Bonjour.
Установка avahi проста:
sudo apt-get install avahi-daemon
sudo apt-get install libnss-mdns
В файле /etc/nsswitch.conf в строке начиающийся на hosts нужно добавить в конце mdns, вот так:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
4. Настройка Avahi
Создадим фаил /etc/avahi/services/afpd.service с содержанием:
<?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=Xserve</txt-record>
</service>
</service-group>
И перезапустим avahi:
sudo /etc/init.d/avahi-daemon restart
Теперь хранилище должно было появится в левом сайдбаре Finder.
5. Настройка TimeMachine
В консоли мака нужно выполнить команду:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Вот и все.