Ⅵ. FTPサーバーとSAMBAサーバーの構築(Raspberry Pi3 + Raspbian Stretch編)

 FTP(File Transfer Protocol)を利用してファイル送受信を行うために、セキュリティが高く安全性に優れたvsftpd(Very Secure File Transfer Protocol Daemon)を組み込みます。またファイル共有のために、SAMBAによるファイルサーバーを構築します。

1.FTPサーバーの構築

(1)vsftpdの導入
  次のコマンドでvsftpdをインストールします。

$ sudo apt-get upgrade && sudo apt-get update
$ sudo apt-get install vsftpd


(2)設定ファイルの編集
 ①/etc/vsftpd.confの編集

1)nanoエディターで編集します。
$ sudo nano /etc/vsftpd.conf
2)以下の部分を変更します。大半は行頭のコメントアウト記号#を外すだけです。
a)anonymousユーザーを禁止
    anonymous_enable=NO#anonymousユーザーを禁止に
b)ユーザー権限設定
    local_enable =YES#ローカルユーザーは有効に
    write_enable=YES#書き込み可能に
    local_umask=022#書き込みパーミッションのマスク
c)ASCIIモードの設定
    ascii_upload_enable=YES#ASCIIでのアップロードを有効に
    ascii_download_enable=YES#ASCIIでのダウンロードを有効に
d)ユーザー権限
    chroot_local_user=YES#ローカルユーザーを制限する
    chroot_list_enable=YES#リストによる制限を行う
    chroot_list_file=/etc/vsftpd.chroot_list  #リストのパス


 ②ローカルユーザー制限リストの作成

1)ホームディレクトリより上の階層に移動できるローカルユーザーを設定します。
$ sudo nano /etc/vsftpd.chroot_list
2)利用者は改行して列挙します。ここではpiだけを登録します。
pi
 (参考)
    ホスト名やIPアドレス単位でのアクセス制限は、/etc/hosts.allowと/etc/hosts.denyで行います。
3)設定を有効にするためにvsftpdをリスタートします。
$ sudo service vsftpd restart
4)リブートします。
 (参考) vsftpdはマシン起動時に自動起動するようになっているので特に指定は不要です。
$ sudo reboot


(3)動作確認

1)Windows PCにインストール済みのWinSCPを起動すると、次のようなログイン画面が表示されます。
 すでに転送プロトコルには[SFTP]、ポート番号には22が設定されています。
 ホスト名、ユーザ名、パスワードを入力します。
2)[保存]をクリックすると「セッションの保存名」ダイアログが表示されます。
 保存名をRasp31に変えて[OK]で保存しました。。
3)Rasp31のサイトが登録されました。[ログイン]ボタンをクリックしてください。
 初回の接続時には接続確認メッセージが表示されるので[更新]ボタンをクリックします。
4)これでRaspberry Piと接続することができました。
 画面左には手元のWindows PC、右にはRaspberry Pi側のディレクトリーの内容が一覧表示されてます。
 Raspberry PiのtmpフォルダーにPC側のCSVファイルを転送してみました(左画面で対象ファイルをドラッグして、右画面へドロップします)。このファイルは以前に「日本の世界遺産」データベースを作成した時のものです。最終回のデータベース構築で使用します。
 このようにWinSPCは視覚的に分かりやすい画面です。ドラッグ&ドロップでファイルやフォルダーをサーバーとクライアント間で移動させたり、フォルダーをクリックして階層を移動することが可能になりました。とても便利で強力な機能なので、誤操作をしないように気をつけて使ってください。

2.Sambaサーバーの構築

(1)SAMBAの導入

次のコマンドで sambaをインストールします。
$ sudo apt-get install samba


(2)SAMBAの設定
 ①共用フォルダーの確保

共用フォルダー(ディレクトリー)shareを確保してパーミッションを読み書き・実行ができるように設定します。
$ sudo mkdir /home/share
$ sudo chmod 777 /home/share

 ②設定ファイルの編集

1)Sambaの設定ファイルsmb.confの最終行に以下を追加します。
$ sudo nano /etc/samba/smb.conf
[share] path = /home/share writable = yes force create mode = 0777 force directory mode = 0777 guest ok = yes guest only = yes share modes = yes
2)設定を反映させるためにSambaをリスタートします。
 次のようにsmbdとnmbdを個別にリスタートさせます。
$ sudo service smbd restart
$ sudo service nmbd restart
3)Sambaの状態を確認します。
$ sudo service smbd status
   


(3)動作確認

 Windowsのエクスプローラを開き「ネットワーク」を展開します。
 コンピュータRASP31が見え、これを展開すると先に確保したshareフォルダーが表示されます。
 また以下の手順で、shareフォルダーをネットワークドライブに割り当てることもできます。
1)Windows Explorerを開きます。
2)左フレームの「コンピュータ」を右クリックして[ネットワークドライブの割当て]を選びます。
3)ダイアログが表示されたらドライブを決めて[参照]ボタンをクリックしてください。
4)「フォルダーの参照」画面でshareフォルダーを選択して[OK]をクリックします。
5)「フォルダー」欄に\\RASP31\shareが表示されていることを確認して[完了]をクリックします。
6)「コンピュータ」の下部のドライブにネットワークドライブshareが追加されます。
 以降はshareドライブをダブルクリックすることで、Raspberry Piのshareフォルダーの内容が展開表示されます。