ファイルサーバ(Samba)の構築(SuSE編)


SuSE9.0 にもSamba の RPM が用意されているので、家庭内でのファイル共有(デジカメの写真等)のためファイルサーバを構築してみました。Samba にはSwat という GUI での設定ツールがあり、SuSE のものは当然日本語化されていませんが、一回設定してしまえばそれほど触るものでもないのと、SuSE9.1では3.0系になり日本語環境が使えるようになるはずですので、そのまま利用することにしました。代わりにといっては何ですが YaST に設定ツールがありますが、Swat に比べると非常に貧弱で設定できることが限られるので、こちらは使用しなくてもいいかもしれません。

■Samba + Swat のインストール

Samba は SuSE に RPM があるので、YaST でインストールするだけです。

  1. YaST コントロールセンタを起動し、「ソフトウェア」の「ソフトウェアのインストール/削除」を起動する。
  2. 「フィルタ」 を 「検索」 とし検索欄に 「samba」 と入力し 「検索」 ボタンを押す。
  3. 右側に該当するパッケージが出てくるので、その中の赤字のものとYaST関係にチェックマークを入れて 「了解」 を押しておしまい。

■Samba + Swat の環境設定

インストールが完了したら、動作させるためのいくつかの環境設定を行います。

◆Swat の services への登録

/etc/services に下記のエントリがあるか確認し、なければ追加します。SuSE なら既にあるはずです。

swat   901/tcp

◆Samba + Swat の起動設定

ここでは、Samba と Swat の自動起動設定を行います。

  1. Samba の起動設定

    Samba とIP上でのNetBIOS名での名前解決用サービス(nmb)の自動起動スクリプトは上記でインストールされているはずですので、/etc/init.d/smb(nmb) があるか確認し、あれば chkconfig smb(nmb) on して起動できるようにします。


    # chkconfig smb on
    # chkconfig --list smb
    smb    0:off  1:off  2:off  
    3:on  4:off  5:on  6:off
    # chkconfig nmb on
    # chkconfig --list nmb
    nmb    0:off  1:off  2:off  
    3:on  4:off  5:on  6:off

    YaST で設定することもできます。

    1. YaST コントロールセンタを起動し、「システム」の「ランレベルエディタ」を起動する。
    2. 「サービス」 で 「smb (nmb) 」 を選択し、 「有効にする」 ボタンを押すと 起動結果が表示されるので確認し、「了解」 ボタンを押す。
    3. 「完了」 ボタンを押すと、設定の保存を確認してくるので、「はい」 を押す。

  2. Swat の起動設定

    続いて、Swat の自動起動スクリプトの設定を行います。デフォルトでは Swat を起動しないようになっているのと、localhost からしかアクセスできないようになっているので、家庭内からはアクセスできるように /etc/xinetd.d/samba を下記のように修正します。(青字は削除、赤字は追加、緑字は変更したものです。)
    こちらも、YaST から設定できますが、only_from オプションは設定できないため、結局直接編集が必要になります。設定ツール類の限界かと思います。

    # SWAT is the Samba Web Admin Tool.
    service swat
    {
            socket_type     =  stream
            protocol        =  tcp
            wait            =  no
            user            =  root
            server          =  /usr/sbin/swat
            only_from       =  127.0.0.1
           
    only_from       =  192.168.1.0/24
            log_on_failure  += USERID
            disable         = 
    no # yes -> noへ変更
    }


  3. SuSEのデフォルトのsmb.confが、/usr/share/doc/packages/samba/examples/smb.conf.SuSE としてあるので、これをコピーして使用すればよいでしょう。

    # cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    # cp /usr/share/doc/packages/samba/examples/smb.conf.SuSE /etc/samba/smb.conf

◆Samba パスワードの設定

Windows2000 や XP では暗号化されたパスワードを使用しており、それに合わせて samba 側でも対応が必要であり、以下の手順で設定します。
  1. Samba 用には別個のパスワードファイルを作成するが、既存の /etc/passwd ファイルをベースに Samba パスワードファイルを作成できるスクリプト(mksmbpasswd.sh)があるのでそれを利用する。このスクリプトは、/usr/share/samba/script 配下にあるので、ディレクトリを移動し下記のように入力すれば、システムに登録されたユーザが全て smbpasswd にコピーされる。但し、mksmbpasswd.sh ではパスワードまではコピーされない(ユーザは登録されているが、パスワードが設定されていないので使用できない状態)ので、Samba を使用するユーザの Samba パスワードを別途、登録する必要がある。また、システムユーザもコピーされてしまうので、必要ないので消しておいても良い。

    # cd /usr/share/samba/script
    # sh mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd

  2. root だけが読み取り/書き込みを行えるように Samba パスワードファイルのアクセス権を変更する。

    # chmod 600 /etc/samba/smbpasswd

  3. mksmbpasswd.shではパスワードまではコピーされない(ユーザは登録されているが、パスワードが設定されていないので使用できない状態)ので、Sambaを使用するユーザのSambaパスワードを登録する。コマンド投入後、パスワードを聞かれるので2回投入する。

    # smbpasswd ユーザ名

      

■SwatによるSambaの設定

上記で、Swat および Samba を動かす基本的な設定は完了したので、これから Samba の設定を行っていきます。Samba の設定は、/etc/smb.conf にパラメータを設定しますが、Swat を使用することにより設定が簡単にできます。まずは、下記で Swat を起動できるようにします。xinetd を再起動したら、一応、netstat -ln で901番ポートが listen 状態になっているか確認しておきましょう。

# /etc/init.d/xinetd restart
ブラウザから、http//:Sambaのサーバ名(またはIPアドレス):901/と入力するとログイン画面が出ますので、ユーザ名:root、パスワード:rootのパスワードを入力すると、Swatが起動します。
901番ポートがListen状態なのにうまく繋がらない場合は、ファイヤウォール設定で接続が拒否されている可能性があります。その場合、「lokkit」もしくは「セキュリティレベル(Xの場合)」で下記ポートが通過するように設定します。

   137:udp 138:udp 139:tcp 901:tcp

Samba の設定については、Swat の表紙にドキュメントがありますが英語なので、苦手な方は、日本 Samba ユーザ会にもいろいろドキュメントがありますので、そちらを参考にするといいでしょう。ここでは、おやじの設定だけに着目して概略を示します。

◆システムポリシー

Sambaは、以下の前提条件で動かすことにしました。
  1. セキュリティはユーザ名とパスワードで制御する。
  2. ファイル共有は、家庭内全体での共有(public)と各自のホームディレクトリアクセスを許容する。
  3. プリンタ共有は、行わない。(プリントサーバがあるので不要)

◆全体設定(GROBALS)

ここで、Samba全体の設定をする。ほとんどデフォルトのままであり、ポイントのみを示す。Swatを使用すると、各パラメータの説明を見ることができるので設定も容易である。(下記は、一部、詳細表示にしないと設定できない項目もある。)

No. パラメータ 概  要
1 coding system = euc  Linux上で漢字ファイル名を扱う場合。
2 client code page = 932 クライアントが日本語Windowsの場合の指定。(S-JIS)
3 workgroup = WORKGROUP Windowsのワークグループ名を指定(Windowsクライアントと同じもの)
4 server string = %L: Samba %v on %h ネットワークコンピュータで表示時のサーバの説明に表示される内容。%LはNetBIOS名、 %vはSambaのバージョン、 %hはホスト名に置き換えられて表示される。
5 security = USER ユーザ名とパスワードでのアクセス制御。必ずUNIXアカウントが必要。
6 encrypt passwords = Yes 暗号化パスワードを使用。
7 update encrypted = No 初めから暗号化パスワードを使用するのでNoのままとする。
8 unix password sync = Yes No UNIXパスワードは同期させない。
9 guest account = nobody guest account は取り敢えずデフォルトのままとした。
10 load printers = Yes No プリンタ共有は行わない。(プリントサーバがあるので不要)
11 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 バッファサイズの指定で、デフォルト値はNT Serverと同じ設定でありそのままとすること。
12 wins support = Yes nmbdプロセスを WINS サーバとして機能させる。
その他は、デフォルトのままでファイル共有だけなら取り敢えず使用できます。必要に応じて設定変更すればいいと思います。

■Swat による Samba の起動

上記で、Swat および Samba を動かす基本的な設定は完了したので、動作状況から、smbd と nmbd を起動します。後は、マイネットワークからアクセスしたり、必要に応じてクライアントでネットワークドライブに割当てることもできます。


Top Pageへ