前回、Raspberry Pi 3の初期設定を書きました。
第二回ではFTPサーバーの設定を行っていきます。
ウェブサーバー側でよく使うので先に設定しておきます。
全体の予定としては、
②. FTPの設定
③. Apacheのインストール・基本設定
④. Wordpressのインストール
⑤. 名前ベースのバーチャルホストを設定
⑥. SSLの設定
と言った感じに進めていきます。
少々長くなりますが、お付き合いください。
vsftpdのインストール
まずはvsftpdをインストールします。
ここは特に書くこともないのでコマンドをそっと置いておきます。
なお、updateとupgradeは任意で行ってください。
sudo apt-get install vsftpd
vsftpdの設定
続いて基本的な部分の設定を行っていきます。
なお、以下の設定は私の環境での例です。
必ず同じ設定でなければならないというわけではないので適所変更してください。
cd /etc/
sudo vi vsftpd.conf
※vsftpd.conf
# anonymousでのアクセスを禁止します anonymous_enable=NO # ローカルユーザーでのアクセスを許可します local_enable=YES # ファイルシステムを変更する操作を許可します write_enable=YES # アップロード時のパーミッションを変更します # 777 - unmask # 777 - 022 = 755 local_umask=022 # ASCIIモードでアップロードします。 ascii_upload_enable=YES # ASCIIモードでダウンロードします。 ascii_download_enable=YES # ローカルユーザーが設定したrootディレクトリより上に行くことができないようにします chroot_local_user=YES # ユーザー毎の設定を保存・読み込むディレクトリを指定します user_config_dir=/etc/vsftpd/user_conf # ユーザーリストに列挙済みのユーザーのみアクセスを許可します userlist_enable=YES userlist_deny=NO # ユーザーを列挙するリストファイル userlist_file=/etc/vsftpd.user_list # なぜかこれがないとローカルユーザーでの接続ができません # 理由が知りたい・・・。 seccomp_sandbox=NO allow_writeable_chroot=YES
ざっと列挙しましたが、私はこのように設定しています。
最後2行は現在おまじない状態です。
どなたか理由ご存知でしたら教えていただけませんか・・・。
最後にサーバーを起動します。
sudo service vsftpd start
なお、起動済みと出た場合は
sudo service vsftpd restart
と入力してください。
ローカルユーザーの追加
スーパーユーザーをFTPアカウントとして使うのは危険ですのでまずは専用のローカルアカウントを作成しましょう。
ユーザーアカウント作成は adduserコマンド を使用します。
コマンドの詳細な説明は別のサイト様にてご確認ください。
sudo adduser --shell /usr/sbin/nologin --home /home/hoge hoge
pi@raspberrypi:~ $ sudo adduser --shell /usr/sbin/nologin --home/home/hoge hoge Adding user `hoge' ... Adding new group `hoge' (1003) ... Adding new user `hoge' (1003) with group `hoge' ... Creating home directory `/home/hoge' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for hoge Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y pi@raspberrypi:~ $
これで作成が完了です。
次に、/usr/sbin/nologinのFTPログインを許可します。
標準設定では許可がされていない ため、 ログインができません 。
sudo vi /etc/shells
※/etc/shells
/usr/sbin/nologin
これでnologinでFTPログインができるようになります。
なお、ログインできるのは FTPのみでルートログインはできません 。
FTPにユーザーを追加する
続いてFTPにユーザーを追加していきます。
/etc/vsftpd.confに設定しました以下のファイルを使うので気を付けてください。
ユーザー個別の設定を入れるフォルダ: /etc/vsftpd/user_conf ユーザーを列挙するファイル: /etc/vsftpd.user_list
まずはユーザーリストに新規作成したユーザーを追加しましょう。
sudo vi /etc/vsftpd.user_list
※vsftpd.user_list
hoge
これでログインができるようになりました。
ですが、このままではアカウント毎のホームディレクトリがルートディレクトリとして指定されているため、目的の場所にはアクセスできません。
そこで、「/etc/vsftpd/user_conf」にユーザー毎の設定ファイルを作ります。
今回はhogeというユーザー名ですのでhogeというファイルを作成します。
sudo vi hoge
※hoge
local_root=/var/www/hoge
これでhogeアカウントでのログインが可能になります。
FTPサーバーの再起動は必要ありませんが、念のため再起動もしておきましょう。
sudo service vsftpd restart
FTP及び、Webのユーザーディレクトリを作る
さて、ここまででログイン自体は可能になりましたが、ルート指定したディレクトリがまだないので途中でエラーが発生します。
ユーザー作成の段階でホームディレクトリを指定していれば問題はないのですが、今回はしていないのでディレクトリを作ります。
cd /var/www/ sudo mkdir hoge sudo chown hoge:hoge hoge
これでディレクトリ作成と所有者の変更が完了しました。
あとはログインをしてみると正常ログインができると思います。
とりあえずここまでにしておきます。
本当はグループ管理やSSL設定をしないといけないんですが、私自身そこまで理解できていないのでまた今度書くことにします。
次はApacheの設定を行いますよ!