2013年3月22日金曜日

FTP インストール

FTPがないのでionqubeの確認もままならん世の中とは。
なのでVSFTPDをインストールします。



EVERノートから引っ張り出してきます。

sudo apt-get install vsftpd


vsftpの設定


設定が完了するまで、vsftpを停止します。
sudo /etc/init.d/vsftpd stop
Stopping FTP server: vsftpd.


匿名ユーザーでのログインは禁止し、サーバーにアカウントのあるユーザーだけがログインできるようにします。
設定ファイルは以下
/etc/vsftpd.conf

sudo vi /etc/vsftpd.conf


修正する内容匿名ユーザーのログインの禁止
anonymous_enable=YES
      ↓
anonymous_enable=NO



サーバーにアカウントのあるユーザーのログインを許可
#local_enable=YES
      ↓
local_enable=YES



アップロードをするので書き込みを許可する
#write_enable=YES
      ↓
write_enable=YES



書き込み時のパーミッションの設定
#local_umask=022
      ↓
local_umask=022



アスキーモードでのアップロードを許可
#ascii_upload_enable=YES
      ↓
ascii_upload_enable=YES


アスキーモードでのダウンロードを許可
#ascii_download_enable=YES
      ↓
ascii_download_enable=YES



ログインユーザーはchroot環境とする(ホームディレクトリより上の階層はアクセス不可)
#chroot_local_user=YES
      ↓
chroot_local_user=YES


chrootlistの指定
#chroot_list_file=/etc/vsftpd.chroot_list
      ↓
chroot_list_file=/etc/vsftpd.chroot_list

ディレクトリ単位の削除を許可
#ls_recurse_enable=YES
      ↓
ls_recurse_enable=YES

追加する内容
userlistをログイン許可リストとする(記載されていないユーザーはログインできない)
userlist_deny=NO

userlistの指定
userlist_file=/etc/vsftpd.user_list

タイムスタンプをローカル時刻とする
use_localtime=YES

パッシブモードを有効にする
pasv_promiscuous=YES


chroot対象外ユーザーの設定ホームディレクトリより上の階層へのアクセスを許可するユーザーのリストファイルを作成します。
# vi /etc/vsftpd.chroot_list

パーミッションを設定します。
sudo chmod 600 /etc/vsftpd.chroot_list
ログイン可能ユーザーの設定ログインを許可するユーザーを設定します。サーバーにアカウントがあっても、このファイルに記載されていないユーザーはログインができません。
sudo vi /etc/vsftpd.user_list

これもパーミッションを設定します。
sudo chmod 600 /etc/vsftpd.user_list


vsftpの起動FTPサーバーを起動します。クライアントマシンからFTPクライアントソフトやFTPコマンドで、接続ができれば完了です。
# /etc/init.d/vsftpd start

確認の為FTP接続

___
/ノ^,  ^ヽ\
/ (・))  (・)) ヽ
/ ⌒(__人__)⌒::: l  < 成功
⊂ ̄ヽ_|   |r┬-|    |
<_ノ_ \   `ー'´    /
ヽ  ̄V ̄ ̄ ⌒,
/____,、ノ /
/    (__/
(  (   (
ヽ__,\_,ヽ
(_/(_/

vsftpd.chroot_list
vsftpd.user_list

二つのファイルを忘れる可能性があるので、大事なファイルなどは別ファイルに置いておく事にしおようと思う。

mkdir /user_mk_file
上のdirに作成、vsftpd.chroot_list vsftpd.user_list
2つのファイルをmvし、
vim /etc/vsftpd.conf

chroot_list_file=/etc/vsftpd.chroot_list
userlist_file=/etc/vsftpd.user_list

のディレクトリを変更

再起動後動くか実験した結果きちんと動いたのでOK

--------------------------------------------------------------------------
さて、整理
vsftpd.user_list
はFTP接続できるユーザを書き込むファイル。
vsftpd.chroot_list
は、自DIRより上に行けるユーザーを書き込むFILEだと認識しています

http://blog.sugulab.com/?p=1635


chroot は「上層ディレクトリにアクセスする権限」ではなく、「上層ディレクトリにアクセスさせない制限」らしい。


chroot_local_user=YES
と追記した場合、「ローカルユーザーは全員 chroot
#上の階層には行けない設定で
尚且つ、
/etc/vsftpd/chroot_list
に書かれているユーザーだけは上層に行ける設定

例:
--------------------------------------------------
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/●●/vsftpd.chroot_list
--------------------------------------------------
としなければならない。
起動しなかったのは
chroot_list_enable=YESが抜けていたからです。




その前に、vsftpd.user_listからアカウントを消して接続したら入れるですけど・・・?もう一度ネットで検索してみる事にする
http://linuxserver.jp/%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89/ftp/vsftpd%E3%81%A7%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90.php


vsftpdで特定のユーザーのFTPサーバーへのアクセスを禁止する場合は、設定ファイルの「userlist_enable」ディレクティブを”YES”に設定します。
そもそも
userlist_deny=ではないっぽい
先に
userlist_enableを設定するみたいです。

例:ブラックリスト方式
*----------------------------------------------------------
userlist_enable=YES
userlist_deny=YES
userlist_file=※ユーザーリストファイルを指定
ユーザリストに書かれたユーザはログインが禁止される。
*----------------------------------------------------------


例:ホワイトリスト方式
*----------------------------------------------------------
userlist_enable=YES
userlist_deny=NO
userlist_file=※ユーザーリストファイルを指定
ユーザリストに書かれたユーザだけがログインできる。
*----------------------------------------------------------

主に使うのはホワイト方式だと思います。

早速試してみます。

成功
そして、chmodeの設定に戻ります。


そして /etc/vsftpd.chroot_list のパスを間違っていた為
♯500could not read chroot()のエラーを出してしまったが、解決し終了
検索で出てきたサイト
http://network.station.ez-net.jp/server/ftp/vsftpd/chroot.asp


お疲れ様でした。




0 件のコメント :

コメントを投稿