Linux Lovers
    Fedora Coreで始めるサーバ構築

Home > ファイルサーバ > Samba

Sambaでファイルサーバ構築

Sambaを利用すれば、Windows用のファイルサーバを構築することが可能です。
これで、LAN内のWindowsマシンは、Sambaサーバを利用して簡単にファイルの共有を行なうことが
できるようになります。

ここでは、LAN内で手軽にファイル共有ができるように、パスワードなどの認証無しで接続できる
設定を行ないます。



Sambaの設定 (認証無し)

先ずSambaがインストールされているか確認し、無ければインストールします。

# rpm -q samba
samba-3.0.10-1.fc2       ←表示されればインストールされている

# yum -y install samba     ←インストールされていなかった場合


次に、サーバのホスト名の設定をしていない場合は、ホスト名の設定をする必要があります。
以下では、ホスト名をlinuxとして編集しています。サーバのIPアドレスは192.168.1.11の例です。
なお、hostsファイルについての説明は、当サイトではこちらで紹介しています。

# hostname linux
# vi /etc/hosts
192.168.1.11     linux chibi.name        ←追加


Sambaの設定ファイルは、/etc/samba/smb.confになります。以下のように編集を行います。

# vi /etc/samba/smb.conf

[global]
dos charset = CP932         ←追加
unix charset = CP932         ←追加   
display charset = CP932       ←追加
map to guest = Bad User       ←追加、guest接続の許可

; hosts allow = 192.168.1. 192.168.2. 127.      ←28行目

hosts allow = 192.168.1. 127.        ←自分の環境に。LAN内に限定

// 最終行に以下を追加
[public]
path = /var/ftp/pub
         ←共有するディレクトリのパスを指定。自分の環境に
read only = No            ←書き込みも可能に   
guest ok = Yes
guest only = Yes


globalセクションの最初で追加した3行は、Sambaサーバに接続した時に、Windowsで作成したファイル名が
文字化けしないようにする為の設定です。また、publicセクションの共有するディレクトリのパスは
自分の環境に置き換えてください。ここでは、FTPサーバ(共有編)で設定した共有ディレクトリを、
Sambaサーバでも使用するようにしてみました。なお、ここで指定したpublicが共有するディレクトリを
格納するディレクトリになります。

以上が終わりましたら、Sambaのサービスを開始します。また自動起動もオンにします。

# service smb start
# chkconfig --level 345 smb on


また、iptables利用の場合は、Sambaで使用するポートを開放する必要があります。
Sambaで使用するポートは、UDPの137番と138番、TCPの139番と445番になります。
なお、当サイトのファイアウォールスクリプトを使用の場合は、LAN内からのアクセスは全てOKに
してますので、そのままでOKです。



>>このページのTOPへ

Sambaの動作を確認 + 接続

testparmコマンドで設定した内容の一覧を見ることができます。

# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions   ←Enterキーを押す

# Global parameters
[global]
        dos charset = CP932
        unix charset = CP932
        display charset = CP932
        workgroup = MYGROUP
        server string = Samba Server
        map to guest = Bad User
        log file = /var/log/samba/%m.log
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        printcap name = /etc/printcap
        dns proxy = No
        idmap uid = 16777216-33554431
        idmap gid = 16777216-33554431
        hosts allow = 192.168.1., 127.

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        browseable = No

[public]
        path = /var/ftp/pub
        read only = No
        guest only = Yes
        guest ok = Yes


今回は、globalセクションとpublicセクションしか編集していないので、この2つの部分を見て、
ちゃんと設定した通りになっているか確認します。


次にちゃんとSambaサーバに接続できる状態になっているのか確認します。
これは、LinuxサーバとWindowsクライアントの両方で行なってみます。

Linuxサーバ側からは、nmblookupコマンドを使用します。

[root@linux ~]# nmblookup -A localhost
Looking up status of 127.0.0.1
        LINUX           <00> -         B <ACTIVE>
        LINUX           <03> -         B <ACTIVE>
        LINUX           <20> -         B <ACTIVE>
        ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
        MYGROUP         <00> - <GROUP> B <ACTIVE>
        MYGROUP         <1e> - <GROUP> B <ACTIVE>

        MAC Address = 00-00-00-00-00-00

上記のように表示されれば、OKです。LINUXの部分はホスト名になります。

続いて、Windowsクライアント側からは、nbtstatコマンドを使用します。
コマンドプロンプトの開き方は、Windows XPであれば、スタートファイル名を指定して実行
cmdと入力してEnter で開くことが可能です。

C:\>nbtstat -A 192.168.1.11           ←サーバのIPアドレスを指定
ローカル エリア接続:
Node IpAddress: [192.168.1.100] Scope Id: []

           NetBIOS Remote Machine Name Table

       Name               Type         Status
    ---------------------------------------------
    LINUX          <00>  UNIQUE      Registered
    LINUX          <03>  UNIQUE      Registered
    LINUX          <20>  UNIQUE      Registered
  ..__MSBROWSE__.<01>  GROUP       Registered
    MYGROUP        <00>  GROUP       Registered
    MYGROUP        <1E>  GROUP       Registered

    MAC Address = 00-00-00-00-00-00


上記のように表示されればOKです。上記のように表示されない場合で考えられる原因は、
サーバ側でポートの開放ができていないか、またWindows側でNetBIOSを無効にしてしまっている
可能性が考えられます。NetBIOSの確認は以下のようにして行なうことが可能です。
スタートコントロールパネルネットワーク接続ローカルエリア接続を右クリックで
プロパティを選択
インターネットプロトコルをダブルクリック詳細設定WINSタブ
「NetBIOS over TCP/IPを有効にする」にチェックが付いているか確認する。チェックが付いていない
場合は、こちらにチェックを付けておきます。

以上の確認作業で問題が無いようであれば、接続できる状態になっているので、Windowsクライアントから
Sambaサーバに接続してみます。

ファイル名を指定して実行\\linux と入力してEnterキー。ここで指定しているlinuxというのは、
一番最初に設定したサーバのホスト名になります。



これで、ウィンドウが開けば接続完了です。パスワード認証などはありません。

もし、パスが見つからないなどのエラーが出た場合には、先ほどのNetBIOSの確認で使用した
ネットワーク接続の中のローカルエリア接続のプロパティで、Microsoft ネットワーク用クライアント
チェックが付いているか確認してみてください。チャックが付いてなければ、チェックを付けます。

最後に、サーバ側で接続状況を確認するには、smbstatusコマンドを使用します。

# smbstatus

これで、現在どのホストから接続されているのか確認をすることができます。



>>このページのTOPへ

最終更新 : 06/04/2005


Fedoraの設定    SSH    Web    Mail    FTP    DNS    ファイルサーバ    運用管理    システム管理    ネットワーク    セキュリティ対策
Copyright (C) 2004-2007 chibi ,All Rights Reserved