相互乗り入れ環境を想定した設定を行います。ここで説明している内容は、パッチ適用済みである事が前提となります。前のページを参照して下さい。
Netatalk の設定ファイル構成は以下の通りです。それぞれ設定していきます。
使用する文字コードを指定します。相互乗入環境を構築するためのキモとなる設定です。
ATALK_MAC_CHARSET='MAC_ROMAN'
ATALK_UNIX_CHARSET='LOCALE'
↓以下に変更
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'
AppleTalk を TCP で受け持つデーモンの設定ファイルになります。Netatalk がAppleTalk 通信に使用するプロトコル、デーモンの特徴については次のページで説明しています。
以下を追記します。
- -uamlist uams_clrtxt.so,uams_dhx.so -nosavepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8
afpd 認証にクリアテキスト、dhx (SSL暗合化) を指定しています。また、クライアントにその都度パスワードを要求し、キーチェーンへの保存を禁止します。
これは OS 9 以前の OS は電源をいれれば誰でも使えるセキュリティ皆無のOSだからです。(OS9で採用されたマルチユーザ機能も全く意味がありません) netatalk.conf で指定した文字コードを指定しています。
従来の AppleTalk プロトコルで待ち受ける Netatalk デーモンです。このプロトコルで利用するには kernel レベルで対応している必要があります。
FedoraCore2 ではデフォルトでサポートしていましたが、それ以降は対応していません。また、CentOS-4 / 4.4 でも、kernel がサポートしていないのでこの通信は行えません。
このプロトコルの特徴については次のページで説明していますが、デメリットばかりで必要性は感じないため、ここでは検証していません。 このデーモンを使用しないのであれば、無視して構いません。
複数のインターフェイスがある場合は、有効にするインターフェイスを指定します。デーモンの起動に時間を要しますが、待ち受けるインターフェイスが増えると更に Netatalk サービスの起動に時間を要します。
eth1
atalkd デーモンを使用せず、TCP コネクションに統一する場合は、以下のコマンドを実行します。
起動スクリプト /etc/rc.d/init.d/atalk 経由で起動した場合、エラーが出てサービスを開始する事が出来ませんので、必ず以下の設定をしておきます。(/usr/sbin/afpd を直接叩けば起動します。)
ATALKD_RUN=yes
↓
ATALKD_RUN=no
これで atalkd デーモンは起動しなくなり、afpd のみサービスとなります。
Netatalk では Linux ユーザとグループを使用してアクセス制限を行ないます。また、TCP Wrapper 対応でコンパイルされていますので、/etc/hosts.allow によるアクセス制限も行なえます。
CentOS 4.4 では hosts.denny には何の記述もありません。つまり、TCP Wrapper は機能していない状態にあります。
TCP Wrapper に対応した全てのサービスは、全てのホストからの接続を禁止します。
ALL : ALL
例外を認めるため、hosts.allow に以下を追記します。
afpd: 192.168.2.0/255.255.255.0
これで 192.168.2.* にだけ afpd への接続を許可するようになります。
TCP Wrapper は、inetd 経由で起動するサービスのアクセス制限を行うための機構ではありません。デーモンで動作するサービスであっても対応していれば TCP Wrapper の影響を受けます。
ファイルサーバ以外に、他のTCP Wrapper に対応したサービスを起動している場合は、 同じ要領で /etc/hosts.allow に記述する必要が出てきますので注意して下さい。 接続できないサービスが出てきたら、これを疑惑ってください。
FedoraCore2 に付属するパッケージではCP932対応済 glibc の上にインストールされていますので設定ファイルを修正するだけで済みます。
グローバルパラメーターに以下を追記します。
[global]
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
以上で基本的な設定は終了です。atalkの起動ログにエラーが無ければ、この段階で接続できる筈です。共有設定に関しては AppleVolumes.default のデフォルトディレクトリは ~ (チルダ)となっていますのでユーザーのホームディレクトリがマウント可能です。
確認のため、samba unix mac と日本語文字のファイルかディレクトリを作成し、日本語が正しく表示されているか確認して下さい。