WebDAV,FTP,Sambaを使ったファイル共有サーバー構築方法


  WebDAVやFTPやSambaを使ったファイル共有サーバー構築方法を紹介!

  WebDAVとSSLを組み合わせてセキュアなファイルサーバーの構築方法を紹介!



内容:



webDAVを用いたファイル共有サーバー設定


外部からもアクセスできる共有ディレクトリをwebDAVを使って作成する。

また、SSLと組み合わせることでセキュアな共有サーバーを作成する。

 

webDAVについての記事
WebDAVクライアント/サーバ環境の構築 - 次世代プロトコルWebDAVの可能性


※ すでにapacheがインストール済みであることが前提。
/var/www/webdav フォルダをwebDAV用フォルダとする。


webDAV用フォルダ作成


共有フォルダの作成。
mkdir -m 760 /var/www/webdav
chown apache.apache /var/www/webdav
 (所有者変更)


WebDAV共有でロックを行うためのロックファイルを作成するディレクトリを作成


ロックファイル用のディレクトリを作成!
mkdir -m 760 /var/lib/dav/lockdb
chown apache.apache /var/lib/dav/lockdb
 (所有者変更)
注意!すでに、/etc/httpd/conf/httpd.conf にファイル内にWebDAV用ロックファイルが作成されているかどうかを確認しよう。CentOS5ではすでに存在していた。
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>


webDAV用設定ファイル作成


webDAV用の設定ファイルである /etc/httpd/conf.d/webdav.conf の編集。


//////////////////////////////////////////////////////////
DAVLockDB /var/lock/webdav/DavLock (自分でロックファイルを作った場合)

Alias /webdav/ "/var/www/webdav/"

<Directory "/var/www/webdav">
SSLRequireSSL
AuthName "This directory requires user authentification."
AuthType Basic
Require valid-user
AuthUserFile /etc/httpd/conf/pwd-file
AuthGroupFile /dev/null
</Directory>

<Location /webdav>
DAV on
Header add MS-Author-Via "DAV" (最新のはこの行はなくてもいいらしい)
</Location>

//////////////////////////////////////////////////////////
※ 実ディレクトリ、仮想ディレクトリについてはココを参照。
( <Directory>~</Directory>、<Location>~</Location> について)


アクセス制限用のファイルを作成


アクセス制限用のユーザ名とパスワードを格納するためのファイルを作成。
htpasswd -c /etc/httpd/conf/pwd-file hoge

※ 次にユーザーを作成するときは、オプション -c はいらない。
例: htpasswd pwd-file ichiro
-cをつけると、新規に同じ名前のファイルが作成され、過去のファイルに上書きされてしまうので注意!
※ パーミッション変更: chmod 440/etc/httpd/conf/pwd-file


Webサーバーの再起動


Webサーバの再起動をする。
/etc/init.d/httpd restart


SSL + WebDAV の設定


このサイトが詳しい。


Windowsクライアント設定

また、ドミンゴの作った画像入りのわかりやすい説明ファイルはこちらからダウンロードできる。


Windowsクライアントでの設定方法はココを参照!


<<< 注意書き >>>
※ 各ユーザーごとのホームディレクトリを公開するとユーザー名を調べられる危険があるため、今回はユーザーのホームディレクトリとは違うディレクトリを例に説明した。 (詳しくは、ココを参照)



Sambaを用いたファイル共有サーバー設定


Sambaを用いた共有ファイルサーバーの設定を説明する。パッケージのインストールから設定ファイルの編集まで説明する.


Samba関連のパッケージがインストールされているかの確認


インストール済みのパッケージの確認。

rpm -qa | grep samba

以下が必要なパッケージ
・ samba
・ system-config-samba
・ samba-common
・ samba-client


パッケージのインストール(各自必要なものだけでいい)


パッケージのインストール
yum install samba system-config-samba samba-common samba-client


Windowsクライアントでの確認


ワークグループ名の確認をする。

「スタート」→「コントロールパネル」→「システム」と選択し、
コンピュータのワークグループ名を確認。
例として、MYGROUPだとして以下説明する。

共有ディレクトリ作成やSambaユーザー作成などはココが詳しいので省略。
以下、共有ディレクトリ名:samba、ユーザー名:hoge で説明。


Samba設定ファイル(/etc/samba/smb.conf)の編集


Sambaの設定ファイルを書き換える。


//////////////////////////////////////////////////////
workgroup = MYGROUP (変更)

server string = Samba Server (変更、好みで)

hosts allow = 127. 192.168.**. (コメントアウトをはずす)

# 日本語のファイル名が文字化けしないように設定
unix charset = UTF-8 (コメントアウトをはずす)
dos charset = CP932 (コメントアウトをはずす)

#================ Share Definitions ============

[samba]
# 以下簡単に設定、詳細設定は前述のサイトが詳しい。
comment = Thaks to access this directory !
path = /***/***/samba
browseable = no

writeable = yes (書き込み権限)
force group = samba (アクセスできるグループの指定)
vfs objects = recycle (ゴミ箱機能)

//////////////////////////////////////////////////////


Sambaの自動起動設定


SambaがOSが立ち上がったタイミングで自動起動するように設定する。


/sbin/chkconfig --list smb (デフォルト値のチェック)
/sbin/chkconfig smb on (自動起動 On)

※ ファイアーウォールで信頼できるサービスにSambaが入っているかチェックする。



SambaとwebDAVを共用する場合の設定


1つの共有フォルダをSambaとwebDAVで使用するための設定方法。

このサイトが詳しい。
ACLについてはココを参照。



WebDAVディレクトリにドライブ文字を割り振る


WebDAVなどで作成したディレクトリはそのままでCドライブやDドライブなどのようにドライブ文字を割り振ることができない。ファイルコピーソフトなどでドライブ文字が必要になる場合があるため、WebDAVディレクトリにドライブ文字を割り振る方法を説明。

今回、NetDrive1.0.8.15というソフトウェアを使った。フリーで、ココからダウンロードできる。
インストールは他のソフトと同じで同意事項に同意して、進んでいくだけ。
問題は挙げるとすれば言語が日本語に非対応で英語(米国)で使うしかないこと。

インストール後に、
NetDriveを起動し、「New Site」をクリックする。
右側の画面に、
 Sitename     「サイト名」
Site IP or URL 「サイトのIPアドレスか、サイトのURL」
Port        「FTP:21,WebDAV:80」
Server Type  「FTP or WEbDAV」
Drive       「好きなドライブ文字」
Account     「アカウント名、ユーザー名」
Password    「パスワード」

を入れればいい。

繋がれば、ドライブ文字つきの共有ディレクトリができる。
FTPとWebDAVで使える。
ここで、気づいたのは、今回使ったNetDriveはSSHを使った場合のWebDAVディレクトリにはたぶん使用できないこと。なので、LAN内などで使う以外にあんまり使えないかもしれないが、いちおここに覚書として示す。



FTPサーバーの稼動


vsftpd を使ったFTPサーバーの構築方法。
このサイトが詳しく解説している!
また、より安全に接続する方法はこのサイトが詳しい。


パッケージのインストール


インストール: yum install vsftpd
デフォルトの状態を確認: /sbin/chkconfig --list vsftpd
サーバー起動時に自動実行するように設定: /sbin/chkconfig vsftpd on
(この他に,ntsysvコマンドで設定することも可)


設定ファイル(/etc/vsftpd/vsftpd.conf)の変更


ほとんどはデフォルトのままでいいが、匿名ログインを不可能にすることだけはやっといた方がいい。

何かを一般公開しない限り。
anonymous_enable=NO

あとは、特定のユーザーのディレクトリ移動を制限するように設定 ※一人で使う場合はいらない
chroot_list_enable=YES (コメントアウトをはずす)
chroot_list_file=/etc/vsftpd/chroot_list (コメントアウトをはずす)

それで、/etc/vsftpd/chroot_listファイルを作成・編集する。
ユーザー名を改行で区切り列挙するだけでいい。
これで、ファイルに書かれたユーザーは、FTPアクセスできるのは、デフォルトのディレクトリ以下となる。

FTPサーバー起動: /etc/init.d/vsftpd start
FTPサーバーにクライアントから接続: ftp ***.ne.jp


FTPで使えるコマンド


dir: ディレクトリ内ファイル閲覧
cd: ディレクトリ移動
pwd: 現在のディレクトリの確認
bye: FTPクライアント終了
close: FTPサーバーとの接続切断
open: FTPサーバーへ接続
delete: ファイル削除
mkdir, rmdir: ディレクトリの作成・削除
get: サーバーからファイル1つをローカルへ転送 (mgetで複数ファイル転送)
put: ローカルからファイル1つをサーバーへ転送 (mputで複数ファイル転送)


CTUの設定


まず、ftpサービスがゲストOSのLinuxの方に行くようにする。ポート指定でデフォルトならポート21(制御用),20(データ用)への呼び出しが、ゲストOSの固定内部IPのポート22へルーティングされるようにCTUを指定する。

次に、CTUのファイアウォールでポート20,21への呼び出しがブロックされないように指定する。

あとは,FTPクライアントをダウンロード&インストール。
有名どころ;
FFFTP(フリーソフト)、
SmartFTP(SSLでよりセキュアに接続可、しかし有料、お試し期間30日)



メモ書き


知っておくと役立つ知識のメモ書き。


暗号なしの場合に使用するポート:  80
暗号あり(SSL)の場合に使用するポート: 443


ファイルのパーミッションについて


一般的には、

 ・.cgi等のプログラム系は755、705等(実行権限)
 ・.log、.cgi等のデータorロック系は666等(書込権限)
 ・.jpg、.gif等の画像ファイル類は644等(呼出権限)

が必要。

例 755 は以下の意味になる。

7 = 1+2+4  ユーザー (読込権/書込権/実行権)
5 = 1+4    グループ (読込権/実行権)
5 = 1+4    その他  (読込権/実行権)

(その他の数字について)
6 = 4 + 2  読込権/書込権
4 = 4     読込権
3 = 1 + 2   実行権/書込権
2 = 2     書込権
1 = 1     実行権
0 = 0     権限なし


[ページトップへ]