vsftpdのインストール
全てルートで作業するのでルートになっておく
$ sudo -s
# apt-get install vsftpd
ユーザー作成
FTP接続専用ユーザーmyhomeというユーザーを作ります
# useradd -s /sbin/nologin myhome(このユーザーはSSHなどから接続しません。ちなみにadduserコマンドはユーザーディレクトリや設定ファイルを自動生成してくれる。ユーザー削除はuserdel)
パスワード作成
# passwd myhome
新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: password updated successfully
ユーザーに権限を与える
作成したユーザーがFTPサーバーにファイルを書き込めるようにする
# vim /etc/shells
=================================
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/sbin/nologin #この行を追加
=================================
vsftpdの設定
vsftpd.conf ファイルを開き、以下のオプションを有効化する
# vim /etc/vsftpd.conf( chroot_local_user=YES はユーザーディレクトリより上へ行けなくする。例えばmyhomeユーザーのFTP接続場所が /home/myhome なら、上の層 /home にアクセスできない)
=================================
local_enable=YES # ユーザーにFTPの利用を許可
write_enable=YES # 書き込みを許可
chroot_local_user=YES # 上階層への移動を禁止
=================================
myhomeのディレクトリを作り、UID,GIDをmyhomeに変えてアクセス可能にする
# mkdir /home/myhome
# chown myhome:myhome /home/myhome
# service vsftpd restart
ファイアウオールの設定
家庭内PCからのみFTP接続できるようにします。(192.168.1.0/24の部分は各環境に合わせて変えてください)
# ufw allow proto tcp from 192.168.1.0/24 to any port ftp
# exit
以上でローカルFTPサーバーの完成です。お疲れ様。
クライアントソフトはFileZillaやFirefoxアドオンのFireFTP、Windows限定のFFFTPなどが使い易いです。
接続方法はFTPサーバーのローカルIPを指定して作成したユーザー名とパスワードで接続します。
linuxならシェルからFTPコマンドで使えますが、コマンドに慣れていないと使い辛いです。
家庭内限定での使用の為、必要ないと思いますが、ログインさせたくないユーザーは /etc/ftpusers にユーザー名を書きます(1行に1ユーザー)。
ユーザーリストファイルを作ったりしているサイトがありましたが、ここでレクチャーした通りにやればそれだけでOK。FTPを使えます。
設定ファイル vsftpd.conf に
userlist_enable=YES
userlist_deny=NO
を書いて /etc/vsftpd.user_list を作り、新たに作ったユーザーを書いたりしたが、それだけではディレクトリ作成やアップロードは出来なかった。
単純に /etc/shells へ /sbin/nologin を追記するだけでよかった。
0 件のコメント :
コメントを投稿