ウェブログの設定とか、鯖の設定の記録とか、あと個人的なコトとか、そんなゴミな日記つーか記録帳
2007年01月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      


カテゴリー
他のカテゴリー
アーカイブ
最近のエントリー
リンク
Creative Commons License
このウェブログのライセンス: Creative Commons License.
Powered by
Movable Type 2.661

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を再起動。

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

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

    netatalk.gif
    確認の為もう一度パスワード入力を促してくるので、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からディレクトリをマウントしてみます。

    netatalk.gif

    あとは消されたくないファイル『初めに読んで下さい!』などを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

    お疲れさまでした!