2011年3月22日火曜日

ローカルFTPサーバーの構築

ubuntu10.04にvsftpdを使ってローカルFTPサーバーを作った時のメモ

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
=================================
local_enable=YES # ユーザーにFTPの利用を許可
write_enable=YES # 書き込みを許可
chroot_local_user=YES # 上階層への移動を禁止
=================================
( chroot_local_user=YES はユーザーディレクトリより上へ行けなくする。例えばmyhomeユーザーのFTP接続場所が /home/myhome なら、上の層 /home にアクセスできない)

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 件のコメント :