>お楽しみコーナー>Linux>FTP サイトマップ 最終更新日:2005/07/22

センリュウのホームページへ ようこそ!

 FTP諸事   

FTPは、旧来のwu-ftpdからproftpd、vsftpdなどに代わりつつあるようです。
ここでは、このproftpdとvsftpdをとりあげてみました。

ftp用ユーザーグループftponlyを作成し、ftpユーザーはそのグループに所属させておく。
また、ftpユーザーに対しては、なにもしないシェルを定義し、そのシェルを/etc/shellsに登録しておく(/bin/trueなど)。

●proftpd

設定ファイル
/etc/proftpd/proftpd.confを編集
ServerType stndalone → ServerType inetd に変更 (常駐サービスではなく、xinetdを使うようにする。本サービスは切っておく)。
また、ディレクトリ制限をするように、DefalutRoot ~ としておく。(Turbolinux8ではなにも設定しなくてもOKだった。)

ftpユーザー用に、以下のような項目を付け加えていく(例)。
<Anonymous ~user1>
User user1
Group ftponly
AnonRequirePassword on パスワード認証を必要とする
AllowOverwrite on デフォルトでは上書き禁止なので解除しておく
</Anonymous>

セキュリティ xinetd
/etc/xinetd.d/proftpをつくり(本サービス名と重ならないようにする)、
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.proftpd
only_from += 127.0.0.1  *.*.*.*   (*.*.*.*には許可するアドレスを入れる)
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}
Turbolinux8serverでは、hosts.allowでも制限するようになっているので注意(ここで許可しないと動かない)。

●vsftpd

xinetd
ここでも、スタンドアローンではなく、xinetd経由にする。
/usr/share/doc/vsftpd-1.2.1/vsftpd.xinetdを/etc/xinetd.d/にvsftpd-xinetd名に変更してコピーする。さらに、以下のように編集しておく。
service ftp
{
disable = no
id = vsftpd ←追加
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.conf ←追加
nice = 10
flags = IPv4
}
vsftpdサービスを切り、vsftpd-xinetdをONにしておく。

設定ファイル
/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES

listen=NO
pam_service_name=vsftpd
ascii_download_enable=YES
ascii_upload_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
ls_recurse_enable=YES
tcp_wrappers=NO
#anon_upload_enable=YES ←anonymousでupload可
#anon_mkdir_write_enable=YES ←anonymousでmkdir可
#anon_other_write_enable=YES ←anonymousで削除、名称変更可
userlist_enable=YES

/etc/vsftpd.chroot_listファイルを作っておく(とりあえずは空のままでよい)。

/etc/vsftpd.chroot_list
chroot_list_enable=YESだけのとき、ホームディレクトリにchrootされるユーザーを記入。
chroot_list_enable=YES + chroot_local_user=YESのとき、ホームディレクトリにchrootされないユーザー。

/etc/vsftpd.user_list
userlist_enable=YESのとき有効。ログイン不許可(パスワード入力拒否)にするユーザー・リスト。

/etc/vsftpd.ftpusers
ログイン不許可(パスワード入力後に拒否)にするユーザー・リスト


履歴 2004/11 修正およびvsftpdの追加