はじめる人のびぎねっと。

プライバシーポリシー

読み物

Samba 3.0ではじめるWindowsファイルサーバー入門

はじめに

この文書では、オープンソースソフトウエアのSamba3.0を使用し、Windows用ファイルサーバを容易に構築する方法を説明します。サーバOSにはRed Hat Linux 9を使用しますが、Sambaの基本的な設定自体はディストリビューションに依存しません。インストール部分はディストリビューションにより異なりますが、この部分は各ディストリビューションに合わせてインストールを行ってください。

Sambaとは

SambaはLinuxやFreeBSD、SolarisなどのUNIX系OS上で動作します。Sambaを使うと、これらのOS上で、高価なサーバ用Windowsを導入せずに、Windows用のファイルサーバ、プリントサーバなどを構築できます。Sambaは次の2つのプログラムで構成されます。

  • nmbd…Windowsネットワークの名前解決を行う
  • smbd…サーバクライアント間でファイルを送受信する

Sambaは一般的なネットワークで用いられているTCP/IPを使用し通信します。インターネットに接続可能なネットワークならば、ほとんどの場合TCP/IPを使用していますので、問題はありません。

サーバ環境

今回インストール対象となるサーバは、Red Hat Linux 9インストール時に「ワークステーション」を選択したものです。これにSamba3.0を新規にインストールします。

「サーバ」や「すべてのパッケージ」などを選択するとSamba2.2.7がインストールされてしまうため、これと置き換えなければいけません。ここではその環境は対象外とします。

SAMBAのインストールの注意
Red Hat Linux 9はインストール時にデフォルトでファイアウォールを設定します。インストール時にファイアウォールを設定してしまうと、Windowsからサーバにうまくアクセスできません。この場合、Sambaを使用できるようにIPtablesを設定し直す必要があります。

Sambaのインストール

RedHat用Samba3.0のrpmを日本Sambaユーザ会が用意しています。今回はこのパッケージを使用します。このパッケージはオリジナルのSambaに修正を加えたものです。オリジナルのSambaには日本語変換のバグがあります。このバグに対応するために2つの方法があるのですが、今回はiconvに修正を加える方法をとります。

iconvに修正を加えたrpmとiconv版のSambaがSamba-jpのftpサイト(ミラーサイト一覧)からダウンロードできます。Sambaユーザ会のダウンロードサイトよりこのパッケージをダウンロードします。ftpなどを使用しダウンロードしてください。

ダウンロードするファイル

  • samba-3.0.0-2iconv.i386.rpm
  • libiconv-1.8-1.i386.rpm

Sambaおよびlibiconvのパッケージをダウンロードしましたら、これらをインストールします。Sambaのパッケージを保存したディレクトリに移動し、スーパーユーザになります。

$ ls
libiconv-1.8-1.i386.rpm  samba-3.0.0-2iconv.i386.rpm
$ su -
password:

そして、rpmコマンドでインストールします。依存関係があるため、始めにlibiconvのパッケージをインストールし、続いてsambaのパッケージをインストールします。

# rpm -ivh libiconv-1.8-1.i386.rpm
# rpm -ivh samba3.0.0-2iconv.i386.rpm

このときにエラーメッセージがでますが、インストールされるので大丈夫です。インストールされているパッケージをrpmコマンドを使用し確認します。

# rpm -qa | grep samba

これでインストールしたパッケージ名が表示されればOKです。

Sambaの設定

Sambaの設定にはSWAT(Samba Web Administration Tool)という便利なツールがあります。SWATはブラウザを用いて使用します。ブラウザからSambaの動いているサーバのポート901にアクセスします。ブラウザのURLの入力欄に次のURLを入力します。

http://samba.jp:901/

Red Hat Linux 9の場合、そのホストへのアクセスを制限するためにxinetデーモンが動いています。そのため、通常のインストールではSWATにアクセスできない状態になっています。そこで、xinetデーモンの設定を変更し、SWATにアクセスできるようにします。スーパユーザになり、viなどのテキスト編集ツールを使い設定を変更します。

$su
#vi /etc/xinetd.d/swat
service swat
{
        port    = 901
        socket_type     = stream
        wait    = no
        only_from = localhost 127.0.0.1 192.168.1.5
        user    = root
        server  = /usr/sbin/swat
        log_on_failure  += USERID
 
        disable = no
}

only_fromでアクセス可能なホストを指定します。ここに記述されていないホストからのSWATへのアクセスはできません。

only_from行の記述で、only_from行を複数書くと、一番最後のonly_from行に書かれたホストのみアクセス可能になります。ですから、複数のホストから管理したい場合は、スペースで区切り、一行中にすべてのホストを記述してください。

これを保存したらxinetdを再起動します。

#/etc/init.d/xinetd restart 

これでブラウザからアクセスできます。

SWATの使い方

Sambaの動作に変更を反映させるにはSWATで設定ファイルを変更した後、Sambaを再起動させます。

最初にブラウザにSWATのURLを入力し、SWATにアクセスします。画面の上部に設定用のアイコンが表示されています。設定したいアイコンを選択します。

SWATのアイコン

ホーム SWATのトップページを表示します
global Samba全体の動作に関する設定
share 共有ファイルに関する設定
プリンタ プリントサーバ機能
WIZARD 初期化など
動作状態 Sambaの起動、再起動など
設定表示 smb.configの内容を表示
パスワード ユーザの管理

全体の動作を変更するには、globalを選択し、変更したいパラメータを入力し、設定変更ボタンを押します。設定変更後、動作状態を選択し、再起動を行い変更を反映したSambaを動作させます。

SWATをつかった設定

Sambaの設定はSambaが動作するサーバのあるネットワーク環境に依存します。ファイルを送受信するためには、送受信するホスト間でお互いを正しく認識しなければできません。

インストールしたら、とりあえずSambaを起動させます。そしてWindowsからネットワークを見ると、mygroupの中にlocalhostというのが発見できると思います。それがデフォルト状態のSambaサーバです。

ただし、今回インストールしたパッケージではそのままアクセスできず、アカウント名とパスワードを聞かれます。この状態ではまだユーザの設定をしていないので、どのようなアカウントを使用してもアクセスできません。

そこで、今回行う設定で作るファイルサーバの条件は次のような構成にします。

  • グループ名:beginet, サーバの名前:begin_samba
  • ファイルへのアクセスのための認証はサーバアカウントとsmbpasswdを使用
  • サーバにあるユーザのホームディレクトリを使用できる
  • 誰でも書き込めるディレクトリとしてshareを作成

これで小規模なネットワークでのファイルサーバとしての役目は十分果たせるはずです。

サーバのグループと名前の設定

サーバが所属するグループ名とサーバを特定するための名前を設定します。 SWATのglobal設定の項目に"workgroup"と"netbios name"があります。


▲クリックすると拡大します

この"workgroup"の設定に使用するグループ名を入力します。ここでは"beginet"を入力しています。そして、"netbios name"の項目にサーバ名を入力します。ここではbegin_sambaを入力しています。また、"server string"を設定することでWindowsでサーバを見たときのサーバの説明を加えることができます。

ユーザ認証

今回インストールしたパッケージは、パスワードの認証方法がデフォルトでLDAPを使用するようになっています。LDAPは高機能なディレクトリサービスですが、それを理解するのは難しく、そこまで必要では無い場合が多くあります。

従って今回は、ユーザ認証を容易に使えるように/etc/passwdのユーザアカウントと、smbpasswdを使用して認証を行います。ユーザ認証の設定はSWATを使用し、globalの設定で行います。設定項目の中の"passdb backend"の項目が"ldapsam_compat"となっているので、これをsmbpasswdに変更します。そして上部にある設定保存ボタンを押します。


▲クリックすると拡大します

次にユーザに対するパスワードを設定します。SWATを使用し、passwordの設定を行います。ここで使用するユーザ名はサーバにログイン可能なアカウントを使用します。もしサーバにアカウントが無い場合は、ユーザアカウントを作成してください。SWATの入力欄にユーザ名、そしてSambaで使うパスワードを入力し、"使用可能にする"ボタンをクリックします。

これでSambaにアクセスするためのユーザ認証が可能になりました。

ホームディレクトリの使用

デフォルトの設定でホームディレクトリが表示されるようになっています。上記のユーザ認証の設定を終えていれば利用可能となります。

共有ディレクトリの設定

まず共有するディレクトリを作成します。コマンドラインから

$ su -
# mkdir /share
# chmod 777 share

を実行し、自由に書き込めるディレクトリを作成します。SWATの上部のメニューアイコンから共有設定を選択します。共有を作成します。


▲クリックすると拡大します

ここでは共有名を"share"としています。次に共有するためのディレクトリを指定します。


▲クリックすると拡大します

先ほど作成した"/share"を共有ディレクトリとして指定します。最後に書き込みを許可するために"read only"を"NO"に設定します。


▲クリックすると拡大します

このページのTOPへ