さくらのクラウドを先日申し込みまして、もっかガシガシ構築中です。
Windowsにはsambaというファイル共有ツールがあります。これでLinuxとWindows間のファイル共有している人は多いと思います。Macも同様にファイル共有のためのツールnetatalkがあり、これをLinuxに導入することによりMacのサーバー間ファイル共有プロトコルであるAFP(Apple Filing Protocol)通信が実装され、ファイルサーバとして利用することができます。netatalkの情報はsambaに比べてあまり無いみたいなのでご紹介したいと思います。
MacはWindowsネットワークに接続できる機能がありますので、sambaを使ってサーバー間のファイル共有はできますが、Mac用のネットワークプロトコルを使った方が体感的に転送速度が良い(気がする)し、画像などはサムネイルDBが自動で作られますので、プレビューなど見るときに快適です。要するにnetatalkの方がMacとの親和性がsambaより良いです。
環境:
さくらのクラウド CentOS 5.7 (64bit)
netatalk 2.2.2
クライアントはMac OS X Lion (10.7)
avahiの設定
まず、avahiを有効にする必要があります。これはネットワーク上のサービスホストを見つけるために必要なモジュールで、Bonjourに似た機能を提供します。DHCP、DNS、プリンタやファイルの共有などをするときに必要です。
avahiはすでに導入済みですが、起動時OFF設定になっているので、ONにします。
[shell]
# 設定確認(変更前)
chkconfig –list |grep avahi
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# 起動時ONにする
chkconfig avahi-daemon on
chkconfig avahi-dnsconfd on
# 設定確認(変更後)
chkconfig –list |grep avahi
avahi-daemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-dnsconfd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[/shell]
CentOSのrunlevelは3なので、3:on になっていれば良いです。
openssl, libgcryptの設定
openssl, libgcryptはすでに導入済みでしたが、libgcrypt-develだけ入ってなかったのでインストールしました。
Mac OS X Lion から接続する場合はlibgcrypt-develは必須です。これによりLionで必須のdhx2が使えるようになります。
[shell]
# libgcrypt-devel(64bit)導入
yum install libgcrypt-devel.x86_64
# opensslの導入確認
yum list |grep openssl
openssl.i686 0.9.8e-20.el5_7.1.0.1.centos installed
openssl.x86_64 0.9.8e-20.el5_7.1.0.1.centos installed
openssl-devel.x86_64 0.9.8e-20.el5_7.1.0.1.centos installed
# libgcryptの導入確認
yum list |grep libgcrypt
libgcrypt.i386 1.4.4-5.el5 installed
libgcrypt.x86_64 1.4.4-5.el5 installed
libgcrypt-devel.x86_64 1.4.4-5.el5 installed
libgcrypt-devel.i386 1.4.4-5.el5 base
[/shell]
BerkleyDBインストール
BerkleyDBはCentOSのパッケージに入っていないので、ソースからビルドします。
ここからダウンロードします
Oracle Berkeley DB Downloads
私はBerkeley DB 5.3.15.tar.gz, with AES encryption (34M) md5
をダウンロードしました。
oracleのサインオンが必要です。
[shell]
# サーバー上で展開し、インストール
tar xvzf db-5.2.28.tar.gz
cd db-5.3.15/build_unix
../dist/configure
make
make install
[/shell]
/usr/local/BerkeleyDB.5.3/
にインストールされます。
netatalkインストール
netatalkもCentOSのパッケージに入ってないので、ソースからビルドします。
ここからダウンロード
Netatalk – Networking Apple Macintosh through Open Source
私はnetatalk-2.2.2.tar.bz2
をダウンロードしました。
[shell]
# 展開してインストール
tar xvjf netatalk-2.2.2.tar.bz2
cd netatalk-2.2.2
./configure –enable-redhat-sysv –with-bdb=/usr/local/BerkeleyDB.5.3
make
make install
[/shell]
以上で必要なモジュールがインストール出来ました。
netatalkの設定
netatalkの設定を行います。
/usr/local/etc/netatalk/Applevolume.default 編集
権限とか文字コードとかの設定をします。
ここでは、user1ユーザのみ接続を許可する設定にしています。
[text]
:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0755 fperm:0644 ea:auto allow:user1
[/text]
どのディレクトリを共有するかの設定もこのファイルです。
デフォルトで
~
だけ書かれていると思いますが、これはユーザのホームディレクトリが共有対象になっていることになります。
これ以外に、例えば/var/www を “www”という名前で共有し、特定のネットワークにのみ接続を許可したい場合は以下のようになります。
[text]
/var/www "www" allowd_hosts:192.168.0.0/24
[/text]
/usr/local/etc/netatalk/netatalk.conf の編集
これは必須ではありませんが、AFPサーバー名をここで設定できます。
[text]
ATALK_NAME=’SakuraCloud’
[/text]
/usr/local/etc/netatalk/afpd.conf の編集
コメント化されているこの行を有効にします。
[text]
– -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword
[/text]
[shell]
# avahiの afpd.serviceを新規作成
cat /etc/avahi/services/afpd.service
[/shell]
[xml]
<?xml version="1.0" standalone=’no’?><!–*-nxml-*–>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>CommunityLink AFP Server</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
[/xml]
[参考]netatalkをLion対応する
netatalk 近状 (2.2.0を正式リリースすべきか):HAT blog
http://hatx.blog.so-net.ne.jp/netatalk_status
iptables の編集
netatalkはPort548を使います。もしファイアウォールを設定している場合は、
/etc/sysconfig/iptables を編集し、port 548を空けておいてください。
サービス起動
avahi-daemonの起動
[shell]
/etc/init.d/avahi-daemon start
[/shell]
もしこのときdbusのエラーが出る場合: (/var/log/messagesでdbusのエラーが出ているとき)
/etc/avahi/avahi-daemon.conf を編集し、
[text]
enable-dbus=no
[/text]
とします。
[参考] avahi-daemon.conf(5): avahi-daemon config file – Linux man page
http://linux.die.net/man/5/avahi-daemon.conf
netatalk 起動
[shell]
/etc/init.d/netatalk start
[/shell]
サーバー起動時にnetatalkを起動する設定。
[shell]
chkconfig netatalk on
[/shell]
接続確認l
Finderのメニューで[移動] → [サーバーへ接続] で接続します。
afp://ユーザ名@ホスト名
の形式です。
うまく動かない場合
asip-status.plコマンドで、netatalkのバージョンやサポートしている認証方法が表示できます。
Lionから接続する場合は、UAMsのところに”DHX2″が含まれていることを確認してください。
[shell]
asip-status.pl localhost
AFP reply from localhost:548
Flags: 1 Cmd: 3 ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk2.2.2
AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3
UAMs: DHX2,DHCAST128
Volume Icon &amp;amp;amp; Mask: exist
Flags: SupportsCopyFile,DontAllowSavePwd,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsUUIDs,SupportsSuperClient
Server name: SakuraCloud
Network address: xxx.xxx.xxx.xxx (TCP/IP address)
UTF8 Servername: SakuraCloud
[/shell]
[参考]CentOS 5.6 に netatalk 2.1.5 をインストール – Debian GNU/Linux 3.1 on PowerMac G4
http://d.hatena.ne.jp/paraches/20110424
[参考]Netatalk and Samba
http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html