Sambaでルータ越えのファイル共有

March 4, 2004


Sambaを使ってルータ越えのファイル共有に挑戦してみた. 学内LANのどこからでもアクセスできるファイルサーバが欲しいという要求からである. 例えば以下のような使い方をする. つまり,誰でも自由にファイルを置けるアップローダのような使い方を想定している.

さて,サーバにするマシンは Vine Linux 2.6 が動いている. samba のバージョンを確認してみる.

$ rpm -qa | grep samba
samba-client-2.0.10_ja_1.2-0vl3.26
samba-2.0.10_ja_1.2-0vl3.26
samba-common-2.0.10_ja_1.2-0vl3.26
samba 本体は最初入っていなかったので,Vine の FTP サイトからダウンロードしてインストールした. 三つとも新規インストールする場合は,samba-common を一番先にインストールする必要があるらしい.

インストール後,GUI設定ツールの swat が localhost からしか起動できない設定になっていたので, /hosts.allow を以下のように書き換えた.

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#

swat: ALL
書き換える前は "swat: localhost" となっていた. ALL とするのはセキュリティ上多少問題があるかも知れないが,イントラネット内での使用だからまぁよかろう.

まず,Linux 上に "staff" というアカウントを作成し,適当なパスワードを設定しておく. 次に,staff アカウントの samba でのパスワードを設定する.

$ /usr/bin/smbpasswd -a staff
この時点で Linux のアカウント staff が存在していなければならない. "-a" は samba のパスワードリストに staff のパスワードを追加するという意味である. すでに追加してあるパスワードを変更する際は "-a" は不要である.

今回,staff のパスワードは無しとした. セキュリティ上かなり問題ある設定ではあるが,「誰もが自由に」を考えてのことである. 人に見られて困るようなデータは最初からサーバに置かないようユーザに喚起しておけばよい.

共有ディレクトリを作成する. 今回は /home/staff の下に share というディレクトリを作り,これを共有することにした. これも「誰でも自由に」の観点から,パーミッションを全員書き込み可にしておく.

あとは samba の設定である.すべて swat から行う. デフォルト値から変更した項目だけ書いておく.

この設定で Windows 98,2000,XP からアクセス可能かをテストした. 共有ディレクトリにアクセスするには,
\\akard.klc.ac.jp\share
のようにアドレスバーに入力する. 要は,hosts や DNS を使ってホスト名の解決が出来れば,ルータ越えのアクセスは可能なのだ. 以下のような HTML ドキュメントをサーバ上に置いた.
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=x-sjis">
<title>共有フォルダへのリンク</title>
</head>
<body>
<center>
<a href="\\akard.klc.ac.jp\share\" target="_blank">共有フォルダへのリンク</a><p>
<a href="\\akard.klc.ac.jp\share%staff" target="_blank">共有フォルダへのリンク</a>
</center>
</body>
</html>
アクセス可能なら,共有フォルダがめでたく開くわけである.

いろいろ試してみた結果を以下のまとめる. アカウント akasaka は Linux 上に存在するが,hina は存在しない. 「sambaサーバでのユーザ名」は swat の動作状況に表示されたユーザ名である.

OS クライアントのログオン名 sambaサーバでのユーザ名
98 SE akasaka(パスあり) akasaka
98 SE hina(パス無し) nobody
98 SE ログイン名無し nobody
2000 akasaka(パスあり) アクセス失敗."\\akard.klc.ac.jp\share%staff" でアクセスするとログイン名を聞かれる.
ログイン名:staff,パス:無しでOK.samba サーバでのユーザ名は staff
2000 hina(パスあり) nobody
2000 hina(パス無し) nobody
XP akasaka(パスあり) ログイン名を聞かれる.ログイン名:staff,パス:無しでOK.
samba サーバでのユーザ名は staff
XP hina(パスあり) nobody
XP hina(パス無し) nobody


お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送