以下の記事で WebDAVを使ってファイル共有を行ってみました。
今回は、古くからWindowsネットワーク機能をUNIX 系 OSで実装した Samba を使ってファイルの共有を行ってみます。
WebDAVとSambaのざっくりとした違いは、
WebDAVがファイル管理に特化したhttpプロトコルをベースにした規格であることと
SambaがWindowsネットワークをLinuxを含むUNIX 系 OSで実装しているものである点です。
もっと簡単に言えば、
Sambaは、ファイルサーバ(共有)のみ限らず、プリントサービス、ドメインコントローラ機能、ドメイン参加機能を提供するものです。
WebDAVは、httpの拡張機能であり、tcpポートも同じポートを利用することからリスクも小さいですが、
逆にSambaは、Samba用のポートとして、以下のように複数のポートを使用します。また、暗号化がパスワードのみで決してセキュアなサービスとは言えないことに注意しておく必要があります。
ポート | プロトコル | デーモン | 説明 |
---|---|---|---|
137 | UDP | nmbd | NetBIOS ネーム・サービス (名前登録など) |
138 | UDP | nmbd | NetBIOS データグラム・サービス (ブラウジングなど) |
139 | TCP | smbd | NetBIOS over TCP (セッション・サービス) (ファイル / 印刷サービスなど ) |
445 | TCP | smbd | ダイレクト・ホスティング SMB (ファイル / 印刷サービスなど) |
上記の説明のとおり、ファイル共有関連で必要最小限なポートは、139 or 445 (tcp) になります。
445については、Direct Hosting of SMBでNetBIOSインターフェイスに頼らずに2つのホスト間で直接通信を行なって、ファイルやプリンタの共有を行なうためのサービスで、Windows 2000/XPから導入されたものです。
つまり、Windows 2000以降のWindowsだけなら、445 (tcp)だけ開いておけば、名前解決などもできてしまうので便利になりました。
今回は、このtcpポート 445 だけを使ってsambaでファイル共有してみたいと思います。
先に書いた通り、Sambaはリスクが高いので、基本的にLAN内で利用することが多いです。もし、インターネット上のサーバーで利用する場合は、VPN(Virtuka Private Network)やSSLとの組み合わせでよりセキュアなSambaの構築が必要となるでしょう。
もしくは、多少負荷が高くともWebDAVを利用する方が望ましい場合もあるでしょう。
マイクロソフト社のWindowsネットワークを実装したフリーソフトウェア。 Linux、Solaris、BSD 、Mac OS Xなどの UNIX 系 OS を用いて、Windows のファイルサーバやプリントサービス、ドメインコントローラ機能、ドメイン参加機能を提供する。
出典 : http://ja.wikipedia.org/wiki/Samba
- 目次
- 履歴
2013年1月8日 初版
Samba を使ってファイル共有してみる
早速、Samba のインストールからファイル共有までの手順を簡単に解説してみます。
- Sambaでログインユーザ名 : smb-user
- Sambaでログインユーザの主グループ名 : smb-user
- Sambaで書き込み可能なグループ名 : sambaw
- Sambaでログイン可能なIPアドレス : 192.168.1.xxx
- Sambaで共有するディレクトリ : /var/samba
- Sambaで共有するディレクトリの公開名 : public
- Sambaデーモンを起動するサーバー : 192.168.1.99
- SambaへアクセスするWindowsクライアント : 192.168.1.33
Sambaをインストールする
Sambaは、CentOS/Scientific Linux では、yum で簡単にインストールできます。
|
Sambaで使用するユーザを登録する
Sambaで利用するOSユーザを新規に登録します。(既存のユーザでもOKですが、ここではわかりやすいように新規のユーザを追加します。)
ここでは、以下の事項を設定します。
- ユーザ名 : smb-user
- グループ名 : smb-user
- 書き込み可能なグループ名 : sambaw
|
|
Sambaの環境設定を行う
Sambaの設定ファイルは、/etc/samba/smb.conf になります。
このファイルを編集し、smbデーモンを起動すれば、Sambaが使えるようになります。
/etc/samba/smb.conf
|
|
この文字色が編集箇所になります。
- 76 – 79 行目 : 使用する文字コードを指定します。
unix charset = UTF-8 : Unixマシン上でのSambaが使用する文字コード。
dos charset = CP932 : DOS SMB クライアントとのやり取り時に用いる文字コード。CP932は、いわゆるシフトJISのことです。
display charset = UTF-8 : stdoutおよびstderrにメッセージを出力するために使用する文字コード。一般的にunix charsetの値と同じはずです。
- 81 – 83 行目 : Windowsで使用しているワークグループ名、あるいはドメイン名指定します。
workgroup = WORKGROUP : ここでは、ワークグループ名 “WORKGROUP” を指定しています。
- 90 – 92 行目 : SambaにアクセスできるホストをIPアドレスで指定します。
hosts allow = 127. 192.168.1.: ここでは、127.xxx.xxx.xxx or 192.168.1.xxx のネットワークからのアクセスを許可するように設定しています。
- 233 – 236 行目 : プリンターの共有を無効にします。
load printers = no : 共有するプリンターをロードするかどうかを指定します。ここでは、”no” を指定してロードしないようにしています。
disable spoolss = yes : MS-RPCのSPOOLSSを無効(“yes”)にします。
- 262 – 267 行目 : 接続したユーザ毎のホームディレクトリの設定を行います。
ここの設定は、何も変更していません。ユーザ毎のホームディレクトリが必要ない場合は、ここをコメントアウト、あるいは削除してください。
デフォルトの設定のままであれば、各ユーザのホームディレクトリがそのまま利用できます。(ここでは、/home/smb-user/ が利用可能となります。)
comment = Home Directories : コメントです。
browseable = no : 全てのユーザに公開するか否かを設定します。ここでは公開しません。権限があるユーザのみ参照できます。
writable = yes : 書き込み可、不可を設定します。ここでは、書き込み可とします。
- 269 – 275 行目 : 共有プリンターの設定を行います。
今回、プリンターは、すべて無効にしていますので、ここの設定は意味がありません。 ここの設定は、デフォルトで設定してあったものをすべてコメントアウトしました。
- 294 – 304 行目 : 公開ディレクトリ Publicを定義します。
[public] : 公開名になります。
comment = Public Stuff : コメントです。
path = /var/samba : 公開するディレクトリです。
public = yes : 全員に公開するか否かを設定します。ここでは、公開します。(パラメータ guest ok と同じ)
printable = no : プリンター共有の設定を行います。ここでは、プリンターは共有しません。
write list = +sambaw : 書き込み可能なユーザ、グループを指定します。ここでは、sambawというグループを書き込み可としています。グループを指定する場合は、グループ名の前に “@” or “+” を指定します。
Sambaのポートを開く
Sambaで使用するTCPポートを開きます。すでに公開となっている場合は、次の手順へ進んでください。
ここでは、445 のみをiptables で開きます。
|
Sambaデーモンを起動する
最後にSambaデーモンを起動します。
|
ここでは、Direct Hosting of SMBを利用していますので、NetBIOSの nmb を起動しなくても良いはずです。
Windowsからアクセスしてみましょう
サーバー側の設定を終えたら、Windowsから公開されているディレクトリをアクセスしてみましょう。
- コマンドプロンプトからアクセスしてみる。
# SambaサーバーのIPアドレス+公開ディレクトリで直接アクセスしてみます。 C:\> dir \\192.168.1.99\public\ ユーザー名またはパスワードが正しくありません。 # Sambaサーバーの共有ディレクトリへ接続します。 C:\> NET USE \\192.168.1.99\public '192.168.1.99' のユーザー名を入力してください: smb-user 192.168.1.99 のパスワードを入力してください: **** コマンドは正常に終了しました。 # ユーザ、パスワードに誤りがなければ正しく接続できていますので、DIRコマンドでファイル一覧を出力してみます。 C:\> dir \\192.168.1.99\public\ ドライブ \\192.168.1.99\public のボリューム ラベルは public です ボリューム シリアル番号は 7811-2E91 です \\192.168.1.99\public のディレクトリ 2012/11/16 04:06 <DIR> . 2012/11/15 19:48 <DIR> .. 2012/11/16 03:39 3 test2.txt 2012/11/16 03:18 4 test.txt 2 個のファイル 7 バイト 2 個のディレクトリ 46,239,563,776 バイトの空き領域 # Sambaサーバーの共有ディレクトリへ接続を解除します。 C:\> NET USE \\192.168.1.99\public /delete \\192.168.1.99\public が削除されました。 C:\$>
- エクスプローラからアクセスしてみる。
- SambaサーバーのIPアドレス+公開ディレクトリを直接入力してアクセスしてみます。
- 初回時、ユーザ、パスワードを入力し、OKボタンをクリックします。
- 正しくログインできれば、以下のようにファイル一覧が表示されます。
ファイルの作成や削除なども試してみましょう。
ここでの設定例では、smb-user で接続している場合、すべての操作ができるはずです。
ファイルの書き込み禁止ユーザで接続している場合は、以下のようなメッセージが表示されるはずです。
- SambaサーバーのIPアドレス+公開ディレクトリを直接入力してアクセスしてみます。
サーバーと共有できるのは、やっぱり便利ですよね。
ここでの設定は、あくまで最小限の設定であることに注意してください。
ホームディレクトリの設定などもできますし、実行権限の設定などもできます。
LAN内で使用している場合は、この程度の設定でも問題ないと思いますが、外部サーバーでSambaを使用する場合は、細心の注意が必要です。
先に書いた通り、Sambaはリスクが高いので、インターネット上のサーバーで利用する場合は、VPN(Virtuka Private Network)やSSLとの組み合わせでよりセキュアなSambaの構築が必要となるでしょう。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :