FTPサーバのひとつ、Proftpdの設定メモです。
以下の環境で動作確認しました。xinetdを使ってアクセス制限を行う方法を紹介します。
proftpdをxinetd経由で起動する必要があるため、proftpd.confを修正します。RPMでインストールした場合は、/etc以下にproftpd.confがあります。# vi /etc/proftpd.confServerType standaloneと書かれている箇所をServerType inetd と修正します。xinetdではありません。
# vi /etc/xinet.d/ftp新規作成画面となるので、以下のように記述します。xinetdでは、このような設定ファイルを作成し/etc/xinet.d以下に置きます。
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.proftpd
server_args =
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
only_from = .example.jp sample.ne.jp
}
only_from 右辺がアクセスを許可するホストです。複数のホストからの接続を許可したい場合はスペースで区切ります。# /etc/rc.d/init.d/proftpd stop # /etc/rc.d/init.d/xinetd restart
ftpログインすると、自分のホームディレクトリより上位の階層へ上がっていくことができます。パーミッションの設定によっては上位の階層において、一般ユーザによるファイルの上書きや削除が可能となります。これは、ftpログイン時のDefaultRootをユーザのホームディレクトリにすることで防ぐことができます。ユーザは自分のホームディレクトリより上位の階層に上がることはできません。
proftpd.confを修正します。
# vi /etc/proftpd.confDefaultRoot ~ という一行を追記します。~(チルダ)はユーザのホームディレクトリを意味します。
# /etc/rc.d/init.d/proftpd restartxinetd経由で起動している場合は、以下のようにします。
# /etc/rc.d/init.d/xinetd restart
ServerIdent on ""とすると、ホスト名やバージョンは表示されなくなります。