読者です 読者をやめる 読者になる 読者になる

delalunaofficedaysのブログ

WORDPRESSとEC CUBEくらいしか触っていないWEBデザイナーの日記とかメモ。

Ubuntu 14.04 LTSにFTPサーバを導入する

Ubuntuのローカルで作業していてふと疑問に思ったことがあって、

FTPlocalhostにファイルをアップしたいんだけど

って疑問。そりゃ当たり前に出来るんだろうけどどうやってやるのかわからないので調べてみた。 ローカルでテスト構築しているWORDPRESSプラグインをインストールしようとすると接続情報がどうたら言われるしね。

まずはVSFTPDってのを入れないといけないみたい。 普段レンタルサーバーを使ってるんだけどFTPのアカウントはこんな感じだからFilezillaとかからこんな風に繋げてねっていう設定があるんだけど自分でローカルに用意したサーバーにつなげるにはFTPの機能自体をインストールする所から。 実際にやっていく。

[code] sudo apt-get install -y vsftpd [/code]

こんな感じ。 -yオプションって何?って感じだけどすべての質問にy(YES)で答える ということだと自分では覚えている。

T61とか今時使ってる奴いたのかよ的な意味で低スペックがバレてしまったところで 実際に設定する。

[code] vi /etc/vsftpd.conf [/code]

viなんておしゃれぶったものを使って

[code] :set number [/code]

で行番号を表示する。

すると29行目に

[code]

write_enable=YES

[/code]

とあるのでコメントを解除する。

[code] write_enable=YES [/code]

これによって「書き込み」(FTPサーバにファイルをアップ)が可能になる。

続いてアスキーモード転送(ファイルの改行コードを変換してアップロードする)を許可する 自分の環境では97行目、98行目にあったので

[code]

ascii_upload_enable=YES

ascii_download_enable=YES

[/code]

↓こちらもコメント解除

[code] ascii_upload_enable=YES ascii_download_enable=YES [/code]

さらに120行目にあるchrootを有効にする。 chrootとは指定したサブディレクトリをルートディレクトリ(/)として扱うコマンドであり、 chrootを有効にすると、そのプロセスと全ての子プロセスはそれより上の階層に移動できなくなります。ftpユーザのホームディレクトリを設定するために有効化。 chroot_list_enableも有効にしてchrootに関する設定をlistで行えるようにします。 ↑何言ってんだこれイミワカンナイって人も設定しておこう。 要するに「上層ディレクトリにアクセスさせない制限」を設定しているのです。 デフォルトではrootでのログインは禁止にして(サーバ側で)ftp専用ユーザの作成をした方が安全だしね!っていう。

[code]

chroot_local_user=YES

chroot_list_enable=YES

[/code]

↓コメント解除

[code] chroot_local_user=YES chroot_list_enable=YES [/code]

123行目でchrootリスト指定。このリストに記述のあるユーザー群だけが FTP アクセスできる。

[code]

chroot_list_file=/etc/vsftpd.chroot_list

[/code]

↓コメント解除

[code] chroot_list_file=/etc/vsftpd.chroot_list [/code]

続いて129行目で「ディレクトリごと一括での転送有効」にする。これが無いと不便やね。

[code]

ls_recurse_enable=YES

[/code]

↓コメント解除

[code] ls_recurse_enable=YES [/code]

さてここでchrootのルートディレクトリ指定をしていかなければならないので (指定しない場合はユーザーのホームディレクトリ直下になる)

[code] local_root=/var/www/html [/code] なんて感じで適当に最終行に指定しておく。 その適当に指定した/var/www/htmlディレクトリが存在しないとログインできないので注意。 存在するディレクトリを指定しよう。(Ubuntuではこれが標準だっけ?)

システムコールが実行できる/できないを設定できる項目として linuxカーネルの3.5から入った機能「seccomp」のfilterをオフにする為に追記

[code] seccomp_sandbox=NO [/code]

chrootのリストを作る。上の階層へ移動を許可するユーザーをここに1行ずつ書き込んでいく。 [code] vi /etc/vsftpd.chroot_list [/code]

ここまで設定出来たらVSFTPDを再起動。 [code] initctl restart vsftpd [/code]

さてやっと本題のFTPユーザーとパスワードでログインするよ!

vsftpd.chroot_listには"T61"と書いておきました。 このPCのログインユーザー名/パスワードでログインします。

さーて実験。

ドキドキ。

つながったあああああああああ

もちろんWORDPRESSも管理画面からプラグインをインストール出来ました。

これでコメダ珈琲などでT61を開きつつドヤ顔でローカルのWORDPRESSの編集を披露できますね。 お昼の優雅なティータイムを満喫しているおばちゃん達に「キャーあの人Ubuntu14.04LTSでFilezillaでローカルにFTP接続してるー!素敵!」みたいに羨望の目で見られることまちがいなしですね。