LAN側Netatalk2.0.1の暫定設定メモ
2004年11月10日
LAN側Netatalk2.0.1の暫定設定メモ(自分宛の設定メモとして記録♪)
Netatalk2.0.1のインストールは@モナーの構築記録: インターネット側Netatalk2.0.0の暫定設定メモに書いたので省略。
各種のパッチの入手先とパッチ当てはnetatalk2 & samba3を参考にすると良いです。
configオプションはコード変換をsamba3と共通にするのでlibiconvを使用しました。
$ ./configure \
--with-pam \
--with-shadow \
--with-ssl-dir=/usr/lib \
--with-libiconv=/usr/local \
--with-bdb=/usr/local/BerkeleyDB.4.2 \
--enable-redhat
Netatalkを2に上げる前に1系の/usr/local/etc/netatakディレクトリの設定ファイルをとりあえずバックアップしてから/usr/local/etc/netatakを丸ごと削除します(1系の/usr/local/etc/netatak/nlsと/usr/local/etc/netatak/uamsが原因で共有時にトラブルが起きたので)。その後、make installします。
以下、設定ファイルです。
AppleVolumes.default
/raid "RAID" allow:nobody options:usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 veto:/lost+found/
netatalk.conf
# Change this to increase the maximum number of clients that can
# connect:
AFPD_MAX_CLIENTS=30
# specify the Mac and unix charsets to be used
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='EUC-JP'
# Change this to set the id of the guest user
AFPD_GUEST=nobody
# Set which daemons to run (papd is dependent upon atalkd):
ATALKD_RUN=yes
PAPD_RUN=no
AFPD_RUN=yes
TIMELORD_RUN=no
# Control whether the daemons are started in the background
ATALK_BGROUND=no
# export the charsets, read form ENV by apps
export ATALK_MAC_CHARSET
export ATALK_UNIX_CHARSET
afpd.conf
RAID -transall -uamlist uams_clrtxt.so,uams_dhx.so,uams_guest.so -guestname nobody -maccodepage MAC_JAPANESE -unixcodepage EUC-JP
以上です。あとはsamba3の設定か・・・
追記
HATさんから指摘があったのでconfigureのオプションで『--with-did=cnid』を外しました。過去の設定メモをそのままコピペして書き足したあとにペーストしてるので、ここを消すのを忘れてました。実際のコンパイルではもちろん入れてません。どうもありがとうございました。
AppleVolumes.defaultのvetoオプションは見える必要ないのはデフォルトで見えなくなってたんですね。これも参考になりました。なるほど。
インターネット側Netatalk2.0.0の暫定設定メモ
2004年10月22日
正式版Netatalk2.0.0の運用テスト
自分宛の設定メモとして記録♪
本家オープンソースプロジェクト
Netatalk - Networking Apple Macintosh through Open Source
Berkeley DBサイト
Sleepycat Software: Berkeley DB Database, Native XML Database, Native Java Database
Netatalk2.0.0の不具合を解消するパッチ
SourceForge.net: Detail:1042041 - Patch to support CJK charsets. retry
インストールしたサーバマシンとディストリビューション
PM9500/120/384RAM Power Macintosh 9500シリーズ
VineLinux2.6r2(PPC) Vine Linux Home Page
netatalk-2.0.0とdb-4.1.25のインストール
過去に記録したページと同じなので省略。./configure -helpでパラメータを確認して自分の環境にあったオプションを指定します([auto]ってのは自動で調べてくれるのかな?)。
@モナーのオプションは
$ ./configure --with-pam --with-shadow --with-ssl-dir=/usr/lib \
--enable-redhat --with-bdb=/usr/local/BerkeleyDB.4.1
です(正しいオプションのみセットしました)。
@モナーの構築記録: Netatalk2の動作テスト
configureオプションの説明(修正したらここを書き換えます)
--with-pam
ユーザ認証システムPAMのサポートを有効にする。
--with-shadow
シャドウパスワード機能を有効にする。
--with-ssl-dir=/usr/lib
openSSLのライブラリディレクトリを指定する。
--enable-redhat
起動スクリプトにredhatスタイルでインストールする。
--with-bdb=/usr/local/BerkeleyDB.4.1
BerkeleyDBのディレクトリを指定する。
不具合を解消するパッチのインストールですが、cjk-patchはカレントディレクトリにソースを展開するので作業ディレクトリを掘ってその中に展開させるのが良いです。
$ mkdir tmp
$ tar xvfz cjk-patch.tar.gz -C tmp
$ cd tmp
$ cp *.c *.h ../netatalk-2.0.0/libatalk/unicode/charsets
$ cd ../netatalk-2.0.0
$ patch -p1 < ../tmp/netatalk-2.0-rc2-cjk.patch
パッチを当ててからNetatalkのインストールです。インストール終了後に設定ファイルの書き換えを行います(修正したらここを書き換えます)。
AppleVolumes.default
Manpage of AppleVolumes.default
AppleVolumes.default
/home/poweruser "setup" allow:poweruser
/home/share "share_folder" allow:dtpuser options:usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 veto:/"Network Trash Folder"/
解説
/home/poweruser & /home/share
公開するディレクトリの指定
"setup" & "share_folder"
クライアントに表示されるディレクトリ名
allow:poweruser & allow:dtpuser
アクセス権(allowは許可する/denyは許可しない
options:usedots
ドットファイルに対して:hex変換しない
cnidscheme:dbd
カタログノードIDのスキームをdbdにする?(オレの誤訳かも…)
maccharset:MAC_JAPANESE
MacOS9側の文字コードの指定
volcharset:UTF8
UNIX側の文字コードの指定
veto:/"Network Trash Folder"/
隠すファイルやディレクトリを指定。スペースがあるファイルやディレクトリは"で囲む
netatalk.conf
Manpage of netatalk.conf
netatalk.conf
# specify the Mac and unix charsets to be used
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='EUC-JP'
解説
ATALK_MAC_CHARSET='MAC_JAPANESE'
MacOS9側の文字コードの指定
ATALK_UNIX_CHARSET='EUC-JP'
UNIX側の文字コードの指定
afpd.conf
Manpage of afpd.conf
afpd.conf
- -transall -advertise_ssh -fqdn 210.249.98.53 -uamlist uams_clrtxt.so,uams_dhx.so -nosavepassword -nosetpassword -loginmaxfail 3 -maccodepage MAC_JAPANESE -unixcodepage EUC-JP
解説
-
サーバ名。"で囲んで好きな名前を付けても可。
-transall
AFP over TCP/IPとAFP over AppleTalkを使用する
-advertise_ssh
AFP over SSHを使用する
-fqdn 210.249.98.53
AFP over SSHを許可するIPアドレスの指定
-uamlist uams_clrtxt.so,uams_dhx.so
ユーザ認証方式。暗号化されないパスワード認証と暗号化されたパスワードのDHX認証のみ許可
-nosavepassword
MacOSクライアント独自のパスワードのキーチェーンへの保存を禁止
-nosetpassword
ユーザがパスワードを変更することを禁止(共有なので)
-loginmaxfail 3
3回ログイン失敗をくり返したら切断
-maccodepage MAC_JAPANESE
MacOS9側の文字コードの指定
-unixcodepage EUC-JP
UNIX側の文字コードの指定
@モナーはサーバの構築を自宅からやるのでAFP over SSHに期待してました。実験ではCPUの負荷が27.5%も高まったのでかなりアレですがw
PID ユーザ 優先 NI サイズ 常駐 共有 状態 LIB %CPU %MEM 時間 コマンド
2139 root 19 0 2560 2476 2144 R 0 27.5 1.7 0:20 sshd
参考にしたサイトです。どうもありがとうございました。
netatalk2 & samba3
むりくりDTP blog: netatalk バックナンバー
補足
configureオプションで間違いを指摘してくれた方、どうもありがとうございました。ちょっと手抜きすぎましたねm(_ _)m
Netatalk2からデフォルトでベストな設定になってるのでオプションはそれほど必要ないです。。。
OSXを10.3.4にしたら
2004年05月28日
SSH over AFPで接続を拒否された! OSX10.3.3まではOKだったのに何故...
/Users/hoge/.ssh/known_hosts
を削除した後に再度トライしてみたが同じだった。
おぃおぃApple、ちゃんとやってよー。てゆーか困るんだよ、こんなことされると。

後日談
色々チェックしてみたら、OSX10.3.3まではSSHで接続出来ない時は「それ以外の接続」を実行していたみたい。なんだ、最初から使えてなかったのか...繋がってたと思ってたよ。SSHで...
Netatalkを色々いじってみたが、接続出来ず。MacOSXserverだとSSHで繋がるらしいが詳細は不明。
しょうがないからSSHトンネリングをやってみた。
$ ssh -l monar -f -2 -N -L 548:localhost:548 210.249.98.54

ポートフォワードの使いどころを間違えてるのか?? まぁメインな顧客はOS9だから別にいいんだけど...なんとかせにゃあなぁー。
Netatalk2βの機械翻訳
2004年04月05日
日本語サイトがないので機械翻訳しといた。
http://blog2.myu-k.co.jp/monar/archives/netatalk-2.0-beta1/
オリジナル英文は
http://blog2.myu-k.co.jp/monar/archives/netatalk-2.0-beta1_ORG/
機械翻訳はワケワカラン日本語になるけど、伝えたい事はだいたい分かるということで。
1.6系で使用していたAFP2ボリュームをそのままAFP3.1で使ってはいけないってことです。変換しないと問題が起きるのでバックアップしてから移行しましょ。
構築終了の設定♪
2004年03月18日
散々OSXでのファイル問題に悩んだけど結局はソースインストールすれば何の問題も起きなかったというオチ。上手く動かない時はパッケージ版から離れてソースをビルドが基本ですね。勉強になりました!
前準備
本稼動サーバにインストールするので失敗しても即座に古いNetatalkを起動出来るように起動スクリプト/etc/init.d/atalkはバックアップしておくこと。バックアップしなくてもrootで/usr/sbin/afpdを叩けば取りあえずなんとかなります。
topコマンドを叩いて誰もafpdを使用してない時が切り替えのタイミング。各種設定はきっちりやっときます。
ソースインストールは/usr/local/etcから動かさない方がいいです。ディレクトリ指定であちこちに散らばらせるとバージョンアップの時に泣きを見るのでlocalに。何せ3台のマシンを順次インストールしていくので管理しやすい方法を。
configureのオプションをチェックする
ヘルプを叩けば出ます。どんなオプションがあるか目を通しておきます。
./configure --help
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency extractors
--enable-shared[=PKGS]
build shared libraries [default=yes]
--enable-static[=PKGS]
build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-afs enable AFS support
--disable-ddp disable DDP
--enable-debug enable debug code
--enable-dropkludge enable the experimental dropbox fix (INSECURE!)
--enable-force-uidgid allow forcing of uid/gid per volume (BROKEN)
--enable-srvloc=DIR turn on Server Location Protocol support
--disable-shell-check disable checking for a valid shell
--enable-redhat use redhat-style sysv configuration
--enable-suse use suse-style sysv configuration
--enable-cobalt use cobalt-style sysv configuration
--enable-netbsd use NetBSD-style rc.d configuration
--enable-timelord enable compilation of timelord server
--enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility
--enable-pgp-uam enable build of PGP UAM module
--enable-krb4-uam enable build of Kerberos v4 UAM module
--enable-overwrite overwrite configuration files during installation
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-tags[=TAGS]
include additional configurations [automatic]
--disable-admin-group disable admin group
--with-pkgconfdir=DIR package specific configuration in DIR
SYSCONF/netatalk
--with-nls-dir=PATH path to NLS files PKGCONF/nls
--with-message-dir=PATH path to server message files PKGCONF/msg
--with-logfile=PATH path for file used by logger /var/log/netatalk.log
use --without-logfile to disable logger
--with-cracklib=DICT enable/set location of cracklib dictionary
--with-did=SCHEME set DID scheme (cnid,last)
--with-mangling enable filename mangling
--with-cdb enable CNID with Concurrent Data Store
--with-bdb=PATH specify path to Berkeley DB installation
--with-pam=PATH specify path to PAM installation
--with-shadow enable shadow password support
--with-tcp-wrappers enable TCP wrappers support
--with-uams-path=PATH path to UAMs [PKGCONF/uams]
--with-ssl-dir=PATH specify path to OpenSSL installation (must contain
lib and include dirs)
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -<lib dir>L if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -<include dir>I if you have
headers in a nonstandard directory <include dir>
CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
インターネットサーバのconfigureオプション
./configure --with-flock-locks --with-pam --with-shadow \
--with-tcp-wrappers --with-did=cnid --with-ssl-dir=/usr/lib \
--enable-redhat
| オプション |
説明 |
| --with-flock-locks |
ロックファイル機能を有効にする。同じファイルに対して複数ユーザから同時に書き込み処理が起きた時の対処。 |
| --with-pam |
ユーザ認証システムPAMのサポートを有効にする。 |
| --with-shadow |
シャドウパスワード機能を有効にする。 |
| --with-tcp-wrappers |
TCP Wrapperを利用してアクセス制限を行えるようにする。 |
| --with-did=cnid |
カタログノードIDを使用する。 |
| --with-ssl-dir=/usr/lib |
ssl機能を有効にする。 |
| --enable-redhat |
起動スクリプトにredhatスタイルでインストールする。 |
|
イントラネットサーバのconfigureオプション
./configure --with-flock-locks --with-did=cnid --enable-redhat
| オプション |
説明 |
| --with-flock-locks |
ロックファイル機能を有効にする。同じファイルに対して複数ユーザから同時に書き込み処理が起きた時の対処。 |
| --with-did=cnid |
カタログノードIDを使用する。 |
| --enable-redhat |
起動スクリプトにredhatスタイルでインストールする。 |
|
cronでOSXからのゴミを毎日定期的に削除する(深夜四時過ぎが良い)。
find /home -name ":2eDS_Store" -exec rm {} \;
find /home -name ".DS_Store" -exec rm {} \;
LAN用Netatalkの設定
2004年03月16日
AppleVolumes.defaultの中身
/raid "RAID" allow:nobody options:usedots
netatalk.confの中身
# Appletalk configuration
# Change this to increase the maximum number of clients that can connect:
AFPD_MAX_CLIENTS=20
# Change this to set the machine's atalk name and zone.
# NOTE: if you're zone has spaces in it, you're better off specifying
# it in afpd.conf
#ATALK_ZONE=@zone
ATALK_NAME=`echo ${HOSTNAME}|cut -d. -f1`
# specify this if you don't want guest, clrtxt, and dhx
# available options: uams_guest.so, uams_clrtxt.so, uams_dhx.so,
# uams_randnum.so
#AFPD_UAMLIST="-U uams_clrtxt.so,uams_randnum.so"
# Change this to set the id of the guest user
AFPD_GUEST=nobody
# Set which daemons to run (papd is dependent upon atalkd):
ATALKD_RUN=yes
PAPD_RUN=no
AFPD_RUN=yes
TIMELORD_RUN=no
# Control whether the daemons are started in the background
ATALK_BGROUND=no
afpd.confの中身
RAID -transall -uamlist uams_clrtxt.so,uams_dhx.so,uams_guest.so -guestname nobody
NetatalkとMacOSX
2004年03月08日
NetatalkをMacのファイルサーバとして稼動させている時、ちょっとした問題が発生しました。まずは1.を見て下さい。MacOSX10.2.8からアクセスしたデータフォルダです。
| 1.Jaguar(10.2)から見たフォルダ |
 |
|
このデータのディレクトリは実は違ってて、正しくは2.なんですね。2.はMacOS9.2からアクセスした場合です。
| 2.OS9から見たフォルダ |
 |
|
3.もOS9からアクセスした別のフォルダ。ここの画像データが1.と同じだと気が付いたと思います。この例では画像アイコンが変になっているだけで、実際にフォトショップで開くとOS9からアクセスした画像と同じものを開きます。
| 3.OS9から見たフォルダ |
 |
|
1.と2.、と4.を見比べてみれば画像のプレビュー状態が逆になっているのが分かって頂けます。
| 4.Jaguar(10.2)から見たフォルダ |
 |
|
このバグが起こる原因は特定しきれていませんが、もしかしたらMacOSX独自の.DS_Store及び、NetatalkのCAPコーディング変換とNetatalkインストール時のオプションではないかと予測。何でかというと、問題が起きてる人と起きてない人が存在するから。とりあえずCAPコーディングから潰してみます。NetatalkではLinuxに不都合がある文字(.や/など)や0x80以上のバイト文字をCAPコーディングします。2.に現れている.DS_Storeをターミナルから見ると、
| 5.ターミナルからアクセスした場合 |
 |
|
DS_Storeの部分に注目。.(ドット)が変換されて:2eDS_Storeとなっているのが分ると思います。MacOSX側からOS9のハードディスクに直接アクセス(OS9とOSXのデュアルブートの場合)してもこんな問題は起きていないので(OSXはAFP3という事もありますが)、AppleVolumes.defaultを書き換えてこのドットをそのまま変換しない事にします。
/home/$u "Kasezawa2($u)" allow:@dtp deny:pcguest rwlist:@dtp options:usedots
optionsのusedotsがドットファイルのみ変換しない設定です。しばらくこの設定で様子見してみます。
後日談 オプションを変えようが同じ事でした。相変わらず不具合が発生しています。そこで最新のnetatalk(アルファ版)をインストールしました→インストール記録
結論のみから言うとOKでした。嘘のように不具合が消え、OSX10.2.8及び10.3.3ユーザから安心して使えると喜ばれました。
TCP Wrapperを使ってアクセス制限
2004年02月20日
やっとネームサーバのキャッシュが更新されたのでファイルサーバが自然と切り替わってくれました。
そこで旧ファイルサーバで稼動してたNetatalkをテスト出来ることになりました。
忘れないウチのメモ
1.hogehogeというNetatalkユーザはLANのIPアドレスからのみ接続許可をする。
2.他のNetatalkユーザは制限しない。
TCP Wrapperを利用して接続テストしてみます。
メモ:TCP Wrapperだと細かく出来ないからダメ。Tcpserverをインスコしてみる。
そのうち・・・
ユーザがパスワードを変えられるようにする
2004年02月16日
動作確認中のため とりあえず簡素に
前準備
afpd.confのパスワード認証モジュールを『uams_randnum.so』。
afppasswd -cで/etc/atalk/afppasswdを作成。
Netatalkユーザ以外のユーザを消す。
rootしか見れないようにchmod 0600 /etc/atalk/afppasswdを実行。
chmod u+s /usr/bin/aftpasswd でSUIDフラグを立てておく。
netatalkを再起動。

ユーザ名を入れてからパスワードの変更をクリック。

旧パスワードと新パスワードを入力してクリック。

確認の為もう一度パスワード入力を促してくるので、OKをクリックしてもう一度新パスワードを入れる。
nbp_rgstr: Connection timed outエラー
2004年02月09日
nbp_rgstr: Connection timed outエラーが発生した場合は、複数のネットワークカード(NIC)を接続してあり、atalkd.confに複数のNIC番号を表記してあるのが原因。
# /sbin/service atalk start
nbp_rgstr: Connection timed out [ OK ]
:Workstation@* 加瀬澤製版
nbp_rgstr: Connection timed out
:netatalk@*ter 加瀬澤製版
LANのMacクライアントからアクセスする場合、下の様にLAN側NIC(ここではeth1)のみ記述しておけばOKです。
atalkd.conf
#
# Format of lines in this file:
#
# interface [ -seed ] [ -router | -dontroute ]
# [ -phase { 1 | 2 } ] [ -addr net.node ]
# [ -net first[-last] ] [ -zone ZoneName ] ...
#
# -seed only works if you have multi-interfaces. Any missing arguments are
# automatically configured from the network. Note: lines can't actually be
# split, tho it's a good idea.
#
# -router is like -seed but it allows single-interface routing. -dontroute
# disables routing for the specified interface.
#
# Some examples:
#
# The simplest case is no atalkd.conf. This works on most platforms
# (notably not Solaris), since atalkd can discover the local interfaces
# on the machine.
#
# Very slightly more complicated:
#
# le0
# or
# eth0
#
# for Solaris/SunOS or Linux.
#
# A much more complicated example:
#
# le0 -phase 1
# le1 -seed -phase 2 -addr 66.6 -net 66-67 -zone "No Parking"
#
# This turns on transition routing between the le0 and le1
# interfaces on a Sun. It also causes atalkd to fail if other
# routers disagree about it's configuration of le1.
#
eth1
あとはatalkdが勝手に補完してくれます。
補完された例
#
# Format of lines in this file:
#
# interface [ -seed ] [ -router | -dontroute ]
# [ -phase { 1 | 2 } ] [ -addr net.node ]
# [ -net first[-last] ] [ -zone ZoneName ] ...
#
# -seed only works if you have multi-interfaces. Any missing arguments are
# automatically configured from the network. Note: lines can't actually be
# split, tho it's a good idea.
#
# -router is like -seed but it allows single-interface routing. -dontroute
# disables routing for the specified interface.
#
# Some examples:
#
# The simplest case is no atalkd.conf. This works on most platforms
# (notably not Solaris), since atalkd can discover the local interfaces
# on the machine.
#
# Very slightly more complicated:
#
# le0
# or
# eth0
#
# for Solaris/SunOS or Linux.
#
# A much more complicated example:
#
# le0 -phase 1
# le1 -seed -phase 2 -addr 66.6 -net 66-67 -zone "No Parking"
#
# This turns on transition routing between the le0 and le1
# interfaces on a Sun. It also causes atalkd to fail if other
# routers disagree about it's configuration of le1.
#
eth1 -phase 2 -net 0-65534 -addr 65280.67
RedHatLinux9へのインストールと設定
2004年02月05日
はじめに
この記録は@モナーが構築した時のインストール方法が書かれてマス。自分さえ分かればいいので、かなり不親切です。すんません。
異機種間ネットワークのファイルサーバとして導入したPowerEdge2650には『Dell OpenManage Server Assistant CD』からインストールするとnetatalkはインストールされませんでした。
rootユーザになってからup2dateで最新パッケージをインストールしました。追加インストールはCDからよりup2dateから取ってきた方が何かと都合いいです。
※その後、『Dell OpenManage Server Assistant CD』からのインストールを止めて直接RedHatLinux9のインストールCDからインストールし直しました。サーバアシスタントを使用すると余計なパーティションを切り過ぎるのと、Dellの余計な監視パーティションがうっとうしいのと、インストールされるサービスがあまりにも限られてるからです。この場合、RAIDコントローラーのドライバはboot時にlinux ddとタイプしてインストールします。
構築のアウトライン
PowerEdge2650には2枚のギガビットイーサネットカードを装着しています。eth0はインターネット、eth1はLANとして割り当てています。ユーザはMacのセレクタからPowerEdgeを選択してマウントすることで1Gbps(理論値だしG4最終モデル及びG5マシンからのみ^^;)のスピードでファイルのやりとりを行えます。
セレクタからマウントせずにサーバ名を入力して共有ディレクトリをマウントさせると、eth0側からアクセスしてることになります。この場合はインターネット経由です。
■インストール
■AppleVolumes.defaultの設定
■netatalk.confの設定
■afpd.confの設定
■atalkd.confの設定
■各デーモンの役割
■AppleVolumes.defaultの解説
■AppleVolumes.systemの解説
■netatalk.confの解説
■afpd.confの解説
■atalkd.confの解説
■papd.confの解説
インストール
netatalkパッケージの取得とインストール
# up2date netatalk
up2dateでインストールしたらパッケージの情報を調べてどこにどんなファイルがインストールされたか調べます。
パッケージのインストール先をチェックする
# rpm -ql netatalk
/etc/atalkにコンフィグファイルがインストールされたので、これを書き換えて設定を行っていきます。VineLinuxの時は/etc/netatalkだったのですが、ディレクトリが変わった理由って何でしょうか?
AppleVolumes.defaultの設定
このファイルはafpdが起動時に読み込む設定ファイルです。 Appletalkを経由してファイルシステムのどの部分を共有するかを決定します。#部分はコメントです。
/home/$u "Kasezawa2($u)" allow:@AFP_Group deny:pcguest rwlist:@AFP_Group
@モナーは上記のように書き換えました。/home/$u は、ユーザのホームディレクトリをそのまま公開します。こうすると共有ディレクトリのみ使用する新規ユーザを作成する度に公開ディレクトリを作れるからです。このサーバはファイルサーバをメインで稼動させているためにこの方法を取りました。
allow:@AFP_GroupはAFP_Groupに属しているユーザのみ共有ディレクトリにアクセス出来ます。deny:pcguestはpcguestというユーザ(これはゲストアカウントにしてあります。デフォルトではnobody)が許可されたユーザの公開ディレクトリにアクセス出来ないように禁止しています。
rwlistは読み書きの権限です。AFP_Groupというグループに所属しているユーザがファイルの読み書き及びファイルの削除権を有することになります。
Kasezawa2($u)は公開される名前です。$u部分にユーザ名が入ります。27文字までの制限があるので『Kasezawa2+ユーザ名』の合計が27文字を超えないよう、新規ユーザの名前を注意して付ける必要が出てしまいました。
Netatalkユーザが少ないあるいは固定の場合はユーザのホームディレクトリを直接共有するよりも、独自に共有ディレクトリを作成したほうがセキュリティ面から見てもいいかもしれません。
netatalk.confの設定
このファイルはafpdが起動時に読み込む設定ファイルです。Appletalk経由でファイルシステムの特定ディレクトリを共有したり、デーモンの動作をコントロールします。#部分はコメントです。
netatalk.conf # # Appletalk configuration # # Netatalkにアクセスするユーザの上限を設定します。 AFPD_MAX_CLIENTS=20 # # # 接続する時に表示されるサーバ名です。 ATALK_NAME="加瀬澤製版" # # # ゲストユーザの名前を定義します。 AFPD_GUEST=pcguest # # # # 各種デーモンの稼動設定 # # atalkdを有効にする。 ATALKD_RUN=yes # # # papd(プリントサーバデーモン)を無効にする。 PAPD_RUN=no # # # afpdを有効にする。 AFPD_RUN=yes # # # timelord(タイムサーバデーモン)を無効にする。 TIMELORD_RUN=no # # # netatalkをバックグラウンドで起動しない。 ATALK_BGROUND=no
afpd.confの設定
このファイルはafpdが起動時に読み込む設定ファイルです。afpdが提供する仮想ファイルサーバの動作をコントロールします。
- -transall -uamlist uams_clrtxt.so,uams_dhx.so -savepassword -nosetpassword -loginmaxfail 3
@モナーは上記のように書き換えました。最初の-はサーバ名が自動的に挿入される指定です(サーバ名『PowerEdge.myu-k.co.jp』と表示されます)。好きな名前にしたい時は、PowerEdgeとか"強力卵"とかタイプして下さい。
-transallはAFP over TCP/IPとAppleTalk(DDP)の両方のプロトコルで通信する設定です。全てのMacクライアントがTCP/IPで通信可能な時、TCP/IPベースよりスピードが落ちるDDPは許可しなくてもいいかもしれませんね。
-uamlistはユーザの認証方式を決定します。続くオプションがそれにあたります。複数記述する時は,で追加していきます。
uams_clrtxt.so 暗号化しないパスワード通信(OS8などを使ってるMacクライアント対策)を許可
uams_dhx.so 暗号化したパスワード通信を許可
-nosavepasswordはMacOSクライアント独自のパスワードのキーチェーンへの保存を禁止します。許可すると誰でもアクセス可能なのでセキュリティ面で不安が残るでしょう。
-setpasswordはMacOSクライアントからのパスワードの変更を許可しません。本当はユーザが定期的にパスワードを変える方が安心ですが。
-loginmaxfail 3はパスワードを3回失敗すると接続を切る設定です。
このファイルはatalkdが起動時に読み込む設定ファイルです。Appletalkインターフェイスとその動作を設定します。
eth1
@モナーは上記のようにLAN側のNICを指定してあります。この設定は複数のNICを接続してある時に、どのNICでatalkdを動かすかを決定するものです。一つのNICしかない場合は何も変更する必要はありません。
以上で設定の書き換えは終わりです。netatalkを再起動またはスタートさせて終わりです。お疲れさまでした!
当然のことですが、NetatalkユーザはFTPもログインシェルも操作させる必要はありません。シェルは/sbin/nologin、FTPはFTPアクセスを許可したユーザのみきっちりと設定しておいて下さい。
ついでに蛇足ですが、@モナーのようなサーバの管理を行う人は、平文パスワードが流れるFTPでログインして設定ファイルをコピーしたりするよりも、Netatalkの暗号化パスワードでログインして設定ファイルをコピーしたりするほうが気分的にも安全だと思いますよ。
その時はAppleVolumes.defaultに『/work allow:poweruser』とか管理ユーザの特権でやっときましょうね^^;
netatalkの再起動 # /sbin/service netatalk restart
各デーモンの役割
【atalkd】 AppleTalkマネージャ [ネットワークのコントロールを行います。]
【afpd】 フォルダ共有サービス [共有フォルダのコントロールを行います。]
【papd】 プリンタ共有サービス [プリンタのコントロールを行います。]
AppleVolumes.defaultの解説
ユーザディレクトリの一元管理
2003年12月24日
AFP over TCPでのユーザが増えてくると一元管理して楽をしたくなります。余計なゴミを増やしたり、消すべきファイルを消さないで放置するユーザが増えるからです。
そこで一元管理する特権ユーザを作成します(rootではない)。AFP over TCPでのユーザのグループ名は特権ユーザも含み、共通のグループ名(例:AFP_Group)に変更します。
設定ファイルAppleVolumes.defaultを下の様に書き換えます。
AppleVolumes.defaultの変更
/home/$u "Kasezawa($u)" rwlist:@AFP_Group deny:pcguest
rwlistは読み書きの権限です。@以降はグループ名を指定します。この例ではAFP_Groupというグループに所属しているユーザがファイルの読み書き及びファイルの削除権を有することになります。
次は特権ユーザディレクトリに、AFP over TCPを利用するユーザのディレクトリのシンボリックリンクを貼ります。
グループAFP_Groupに属するユーザのシンボリックリンクを貼る
# ln -s /home/User01 .
# ln -s /home/User02 . # ln -s /home/User03 . # ln -s /home/User04 . # ln -s /home/User05 . # ln -s /home/User06 . # ln -s /home/User07 .
netatalkを再起動します。
netatalkの再起動
# /sbin/service atalk restart
特権ユーザでMacからディレクトリをマウントしてみます。

あとは消されたくないファイル『初めに読んで下さい!』などをrootになってパーミッションの変更を行い、AFP over TCPを利用するユーザが消したくても消せないようにします。
以上で終わりました。これでファイルの整理整頓もしやすくなります。
インストールと設定
2003年12月22日
はじめに
この記録は@モナーが構築した時のインストール方法が書かれてマス。自分さえ分かればいいので、かなり不親切です。すんません。
netatalkを稼動させたのは数年前なんだけど、ブログを設置したので記録という意味でここに残しておこうと思いました。
VineLinux2.5には標準で入ってます。入ってなかったらrootユーザになってからapt-getでインストールしておきましょう。
netatalkパッケージの取得とインストール
# apt-get install netatalk
aptを使うのは環境を一気に構築してくれるので楽だからです。アップデートの時もコマンド1発で終わりますしねー。サーバの構築が趣味でないなら積極的にaptを使った方がいいですよ。Windowsアップデートみたいなもんですな。
apt-getでインストールしたらパッケージの情報を調べてどこにどんなファイルがインストールされたか調べます。
パッケージのインストール先をチェックする
# rpm -ql netatalk
/etc/netatalkにコンフィグファイルがインストールされたので、これを書き換えて設定を行っていきます。
AppleVolumes.defaultから書き換えていきます。@モナーの場合は
/home/$u "Kasezawa($u)" deny:pcguest
と、書き換えました。/home/$u は、ユーザのホームディレクトリをそのまま公開します。こうすると新規ユーザを作成する度に公開ディレクトリを作れるからです。このサーバはファイルサーバをメインで稼動させているためにこの方法を取りました。
Kasezawa($u)は公開される名前です。$u部分にユーザ名が入ります。deny:pcguestはユーザの公開ディレクトリにpcguestというゲストユーザがアクセス出来ないようにします。
AppleVolumes.defaultの書き換えが終わったらnetatalk.confの設定に入ります。
# Appletalk configuration
# Change this to increase the maximum number of clients that can connect:
AFPD_MAX_CLIENTS=20
# Change this to set the machine's atalk name and zone.
# NOTE: if you're zone has spaces in it, you're better off specifying
# it in afpd.conf
#ATALK_ZONE=@zone
ATALK_NAME="加瀬澤製版"
# specify this if you don't want guest, clrtxt, and dhx
# available options: uams_guest.so, uams_clrtxt.so, uams_dhx.so,
# uams_randnum.so
#AFPD_UAMLIST="-U uams_clrtxt.so,uams_randnum.so"
# Change this to set the id of the guest user
AFPD_GUEST=pcguest
# Set which daemons to run (papd is dependent upon atalkd):
ATALKD_RUN=yes
PAPD_RUN=no
AFPD_RUN=yes
TIMELORD_RUN=no
# Control whether the daemons are started in the background
ATALK_BGROUND=no
最初の設定から解説します。AFPD_MAX_CLIENTSは同時接続の最大クライアント数です。あまり多くすると重くなるので注意します。
ATALK_NAMEは接続した時に表示されるサーバ名です。日本語は御法度ですが、得意先が日本語だと安心するので無茶を承知で付けました。OSXはともかくOS9の場合は、OSがSHIFT-JISなのでnetatalk.confを書き換える時にSHIFT-JIS保存して/etc/netatalkにブチ込むと正しく表示されます。ちなみにサーバ側では
Starting AppleTalk services:
Starting atalkd: [ OK ]
Registering 加垂\V製版:Workstation: [ OK ]
Registering 加垂\V製版:netatalk: [ OK ]
Starting afpd: [ OK ]
このように文字化けしますけど問題ナッシング(笑)。
AFPD_GUESTはゲストユーザをpcguestに設定しました。AppleVolumes.defaultで設定したゲストからのアクセスを蹴る名前の指定です。
ATALKD_RUNはatalkdを有効の設定にしました。PAPD_RUNはプリントサーバデーモンpapdを無効の設定にしました。TIMELORD_RUNはタイムサーバデーモンtimelordを無効の設定にしました。ATALK_BGROUNDはnetatalkをフォアグラウンドで起動する設定にしました。
最後にafpd.confの設定です。これは設定の一番下にあるデフォルトと書かれた設定部分を変えます。
- -transall -uamlist uams_randnum.so,uams_dhx.so -passwdfile /etc/netatalk/afppasswd
最初の-はサーバ名で、-を指定するとサーバのホスト名が表示されます。-transallはAFP over TCP(TCP/IPによるファイル共有)とAFP over AppleTalk(今までのAppleTalkによるファイル共有)です。インターネット越しなのでAFP over AppleTalkは意味ないんですけど、LANで使うことも配慮してこのままにしました。
-uamlistはユーザ認証方式の指定です。暗号化したパスワードの認証(dhx.so)のみ許可する設定に変えました。もうみんなOS9(最低でも8)に移行してると判断したからですけど。入れなくなった方は連絡して下さいね。
蹴られるつー苦情が届いたので暗号化しないパスワードの認証も含めました。
以上で設定は終わりです。
netatalkの再起動
# /sbin/service atalk restart
または
netatalkの起動
# /sbin/service atalk start
でnetatalkを起動して下さい。あとはサーバの起動時に自動的に立ち上がるようntsysvからatalkを起動にチェックを入れておきましょう(apt-get installはこれだから便利)。
シェルを切り替えて起動メニューを表示
# tcsh
# ntsysv
お疲れさまでした!
|