作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

さくらのクラウドをMacでファイル共有する。netatalkでおk


さくらのクラウドを先日申し込みまして、もっかガシガシ構築中です。
 
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://ユーザ名@ホスト名
の形式です。
 
120309-0002.png
 
 

うまく動かない場合

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;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

関連記事


Linux debianでRAID(ミラーリング)構築。mdadmとpartedで
mdadmによるRAID (ミラーリング)構成手順です。ディスクが1台壊れたのでRAIDを組み直しました。環境はLinux Debian 9.11 (stretch) partedやmdadmコマンドで構築します。

Postfixメールサーバー:送信不可のユーザーを設定する
メールサーバーPostfixにて、送受信ができないユーザーを設定をする方法です。Linux、debian環境です。特定のメールアドレスを送受信不可にします。メールを許可しないLinuxユーザーを作るときに有効です。

Web開発・Web制作のツールや用語を初心者向けに大量紹介。これだけ知っておけば安心。
Webページ製作やWebのシステム開発ではいろんなツールやテクニック、用語を使いますが、全体像がなかなか掴みにくいと思ったので、初心者向けに用語をたくさんまとめました。これさえ押さえておけば業界の常識用語はだいたい網羅できると思います。

KVM仮想マシンをWebからアクセスできるKimchiをdebianにインストール
自宅サーバーにてKVMの仮想マシンを動かしていますが、外からでもリモートで操作できるようにkimchiを導入しました。 GitHub – kimchi-project/kimchi: An HTML5 man …

Linuxの権限について解説。setuidとかsetgidとかスティッキービットとか
setuidとかsetgidとかスティッキービットの解説です。Linuxのこれらの機能については考え方が難しいですが、setuidは「一般ユーザーがroot権限で動かすことができる仕組み」です。setgidはそのグループ版です。詳細なメカニズムを解説します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です