HOME | Linux | XML | Network

Proftpd

FTPサーバのひとつ、Proftpdの設定メモです。

以下の環境で動作確認しました。

xinetdによるアクセス制限

xinetdを使ってアクセス制限を行う方法を紹介します。

proftpdをxinetd経由で起動する必要があるため、proftpd.confを修正します。RPMでインストールした場合は、/etc以下にproftpd.confがあります。
# vi /etc/proftpd.conf
ServerType standaloneと書かれている箇所をServerType inetd と修正します。xinetdではありません。
次に、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 右辺がアクセスを許可するホストです。複数のホストからの接続を許可したい場合はスペースで区切ります。
.example.jp のように、先頭に . を付けるとexample.jpの他にhoge.example.jpやpiyo.example.jpといったホストからの接続も許可します。

最後に、proftpdを停止しxinetdを再起動します。これによりproftpdはxinetd経由で起動され上記の設定内容が有効になります。
# /etc/rc.d/init.d/proftpd stop
# /etc/rc.d/init.d/xinetd restart

ログイン時のDefaultRootを自分のホームディレクトリにする

ftpログインすると、自分のホームディレクトリより上位の階層へ上がっていくことができます。パーミッションの設定によっては上位の階層において、一般ユーザによるファイルの上書きや削除が可能となります。これは、ftpログイン時のDefaultRootをユーザのホームディレクトリにすることで防ぐことができます。ユーザは自分のホームディレクトリより上位の階層に上がることはできません。
proftpd.confを修正します。

# vi /etc/proftpd.conf
DefaultRoot ~ という一行を追記します。~(チルダ)はユーザのホームディレクトリを意味します。
Proftpdを再起動します。
Proftpdを通常どおり起動している場合は、以下のようにします。
# /etc/rc.d/init.d/proftpd restart
xinetd経由で起動している場合は、以下のようにします。
# /etc/rc.d/init.d/xinetd restart

ログイン時に表示されるバージョン等を隠す

FFFTPなどのソフトを用いてサーバに接続すると、ホスト名やProftpdのバージョンなどが表示されます。デフォルトでは、ProFTPD [version] Server (ServerName) [hostname]となます。ServerNameの部分には、proftpd.confのServerName行で指定した文字列がはいります。
これを表示させたくない、あるいは別の文字列を表示させたい場合はServerIdentを使用します。
ServerIdent on ""
とすると、ホスト名やバージョンは表示されなくなります。

参考資料

Last Update 2002/09/16
HOME | Linux | XML | Network

Copyright © 2003 Rev System All right reserved.