今回、CentOS6.4 にSamba 3.6.9 をインストール設定しました。クライアントは、Windows 8 と Windows 7 の端末です。そのファイルサーバとして利用する用途になります。
1.Sambaについて
Sambaは、Windows SMB(Server Message Block)プロトコルを使って、ファイル共有サービスを提供するサーバです。
Sambaを利用する際には、以下の2つのプロセスが稼働します。
- smbd
- SMBサービス
- tcp/139、tcp/445
- nmbd
- NetBIOSのネームサービス
- udp/137、udp138
2.Sambaのインストール
yum を使ってインストールします。
# yum install samba
いくつかのパッケージがインストールされます。rpmコマンドで「samba」でgrepした結果は以下です。
# rpm -qa | grep samba samba-common-3.6.9-151.el6_4.1.x86_64 samba-winbind-clients-3.6.9-151.el6_4.1.x86_64 samba-winbind-3.6.9-151.el6_4.1.x86_64 samba-3.6.9-151.el6_4.1.x86_64 #
3.Samba ディレクトリの作成
Sambaで共有するディレクトリを作成します。
※Samba専用サーバの場合、運用を考えるとデータ専用のパーティションを作ったほうが良さそうです。そうすると、バックアップ等の運用がしやすくなると思います。
# mkdir /home/samba # chmod 777 /home/samba
次に samba のアカウントを作成します。
4.Samba アカウント作成
Samba用のユーザーアカウント「user1」を作成します。
# pdbedit -a user1
なお、パスワードの設定は「smbpasswd」コマンドです。
次に sambaの設定ファイルを修正します。
5.Samba 設定
sambaの設定ファイルは、デフォルトでは「/etc/samba/」の中にあります。
# ls -1 /etc/samba/ lmhosts smb.conf smbusers #
この中で、smb.conf を修正します。
smb.conf の内容ですが、以下の3つセクション名は固定です。
- [global]
- サーバー全体のパラメータを設定するセクション
- [home]
- ユーザーのホームディレクトリを設定する際の共有パラメータを設定するセクション
- [printers]
- プリンタの共有を設定する際のセクション
今回は、[home]と[printers]は使いません。
それ以外のセクション名は自由に付ける事が出来ます。付けたセクション名が共有名になります。
smb.conf の内容は以下です。
[global] max protocol = SMB2 unix charset=UTF-8 dos charset=CP932 workgroup = WORKGROUP server string = Samba Server Version %v hosts allow = 127. 192.168.0. log file = /var/log/samba/log.%m max log size = 50 security = user passdb backend = tdbsam [Share] comment = Home Only path = /home/samba valid users = user1 writable = yes write list = user1 guest ok = no create mode = 0777 directory mode = 0777
なお、コマンド「testparm」を使うと、smb.conf に設定した書式をチェックしてくれます。以下に testparm の出力結果を記載します。
$ testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Share]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] dos charset = CP932 server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 max protocol = SMB2 idmap config * : backend = tdb hosts allow = 127., 192.168.0. [Share] comment = Home Only path = /home/samba valid users = user1 write list = user1 read only = No create mask = 0777 directory mask = 0777 $
以上で、一旦Sambaの設定は一区切りです。
6.Samba起動
Sambaを起動します。
# /etc/init.d/smb status smbd は停止しています # /etc/init.d/smb start SMB サービスを起動中: [ OK ] # ps -awef|grep smb | grep -v grep root 1915 1 0 01:06 ? 00:00:00 smbd -D root 1918 1915 0 01:06 ? 00:00:00 smbd -D # /etc/init.d/nmb status nmbd は停止しています # /etc/init.d/nmb start NMB サービスを起動中: [ OK ] # ps -awef|grep nmb | grep -v grep root 1932 1 0 01:07 ? 00:00:00 nmbd -D #
起動できました。ポートを確認してみます。
$ netstat -an|grep 139 tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 :::139 :::* LISTEN $ netstat -an|grep 445 tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN tcp 0 0 :::445 :::* LISTEN $ netstat -an|grep 137 udp 0 0 192.168.1.255:137 0.0.0.0:* udp 0 0 192.168.1.120:137 0.0.0.0:* udp 0 0 0.0.0.0:137 0.0.0.0:* $ netstat -an|grep 138 udp 0 0 192.168.1.255:138 0.0.0.0:* udp 0 0 192.168.1.120:138 0.0.0.0:* udp 0 0 0.0.0.0:138 0.0.0.0:* $
想定通りです。ここまでは。
7.Windowsから接続
次に早速、Windows 8 端末から接続をかけてみましたが、接続できません・・・。
そこで、以下の手順を順次行います。
- Windows 8 で、「Windowsキー」と「Rキー」を押下して、「ファイル名を指定して実行」画面を表示する。
- 名前で「secpol.msc」で「OK」を押下する。
- 「ローカル セキュリティ ポリシー」画面で、「ローカルポリシー」-「セキュリティ オプション」を選択
- 右画面で「ネットワーク セキュリティ:LAN Manager認証レベル」を選択してプロパティ表示
- 「未定義」から「NTLM 応答のみ送信する」に変更する
次は、CentOSのほうで、iptables が起動している場合は停止します。
また、selinux が有効になっている場合は無効にして、OSを再起動しておきます。
その後、Windows 8 から接続をかけると、ユーザー名とパスワードが聞かれ、接続が出来るようになりました!
また、この後、Windows 7 から接続してみると、こちらも無事接続が出来ました!
今後、Samba設定の微修正は行うと思いますが、一旦これで、Windows 8 、Windows 7 からSambaに接続できるようになりました。