#rpm -qa | grep wu-ftpd wu-ftpd-2.6.2-12.i386.rpmインストールされている場合はwu-ftpdを削除します。
#rpm -e anonftp wu-ftpdProFTPDをダウンロードし、解凍します。
#tar xvfz proftpd-1.3.0a.tar.gz #cd proftpd-1.3.0aコンパイルし、インストールします。
#./configure #make #make install以上でインストール完了です。
| ディレクティブ | 値 | 説明 |
| ServerName | サーバ名 | ProFTPDに接続したユーザに表示される文字列を指定します。 |
| ServerType | inetd | standalone | ProFTPDをinetdから起動させるかスタンドアロンなデーモンとして起動させるか指定します。 (デフォルト:standalone) |
| Port | ポート番号 | スタンドアロンで動作している場合のProFTPDの待ち受けTCPポート番号を指定する。(デフォルト:21) |
| Umask | マスク値 | 新規作成されるファイルパーミッションのマスク値を指定する。(例えばマスク値に022を指定すれば 新規作成されるテキストファイルの基本パーミッションは666であるため単純に減算してパーミッションが644に設定されるということ。) |
| MaxInstances | 子プロセスの最大値 | スタンドアロンで動作している場合の親プロセスが生成する子プロセス数を指定する。最大値を超えた接続は切断されます。(子プロセスはクライアントが
接続されるたびに生成される。よって同時に接続を許すクライアント数を指定する。) (デフォルト:none(制限なし)) |
| User | ユーザ名 | ProFTPDを動作させるユーザ名を指定する。 |
| Group | グループ名 | ProFTPDを動作させるグループ名を指定する。 |
| DefaultRoot | ディレクトリ [[!]グループ名,[[!]グループ名,…]] | ユーザがログインした時のルートディレクトリを指定します。ユーザはこのディレクトリより上の階層には移れません。(見えません。) その後のグループ名はDefaultRootで制限するグループを指定します。!を先頭に付けることでそのグループをこの制限から排除できます。 |
| AllowStoreRestart | on | off | ファイルアップロードのResume機能(転送を中断点から再開する機能)を有効にするか指定する。 (デフォルト:off) |
| AllowRetrieveRestart | on | off | ファイルダウンロードのResume機能(転送を中断点から再開する機能)を有効にするか指定する。 (デフォルト:on) |
| RequireValidShell | on | off | /etc/shellsにシェルバイナリが記述されていないユーザのログインを許可するか指定します。 (デフォルト:on(拒否する)) |
| TimesGMT | on | off | 時間表示をGMTで表示するかローカルタイムで表示するかを指定する。(デフォルト:on(GMT表示)) |
| MaxStoreFileSize | ファイルサイズ | * [user ユーザ名 | group グループ名] | アップロードするファイルサイズの最大値を指定する。*は制限しないことを表します。 またユーザやグループ単位で制限することもできます。 |
| MaxClientsPerHost | 最大値 | none ["メッセージ"] | 同一ホストからの同時接続の最大値である。noneは制限しないことを表します。メッセージは最大値を超えた接続が行われた 場合にクライアントに表示されます。 |
| IdentLookups | on | off | 接続したリモートユーザ名を確認するかを指定する。off(確認しない)にするとログイン時間を短縮できる。 (デフォルト:on(確認する)) |
| UseReverseDNS | on | off | DNSの逆引きを行うかを指定する。(デフォルト:on(行う)) |
| AuthPAMAuthoritative | on | off | PAMで認証させるかを指定する。(デフォルト:off(させない)) |
| AuthPAMConfig | サービス名 | PAMサービス名(/etc/pam.dディレクトリ以下に設置された設定ファイル名)を指定します。(デフォルト:ftp) |
<Directory ディレクトリ> </Directory>
<Limit コマンドグループ | コマンド> [Order allow,deny | deny,allow] [Allow from all | none | ホスト名 | IPアドレス [,ホスト名 | IPアドレス,…]] [AllowAll] [AllowGroup [[!]グループ名,[[!]グループ名,…]] [AllowUser [[!]ユーザ名,[[!]ユーザ名,…]] [Deny from all | none | ホスト名 | IPアドレス [,ホスト名 | IPアドレス,…]] [DenyAll] [DenyGroup [[!]グループ名,[[!]グループ名,…]] [DenyUser [[!]ユーザ名,[[!]ユーザ名,…]] </Limit>
| コマンドグループ | 説明 |
| DIRS | ディレクトリ表示に関する全てのFTPコマンド |
| READ | ファイルの読み取りに関する全てのFTPコマンド |
| WRITE | ファイルの書き込みや削除に関する全てのFTPコマンド |
| ALL | 全てのFTPコマンド |
| ディレクティブ | 説明 |
| Order | allowとdenyの適用順序を指定します。allow,denyの場合はallowがチェックされた後、denyがチェックされます。 |
| Allow | 指定されたクライアントのアクセスを許可します。allは全てのクライアントを許可し、noneは許可されたクライアントが存在しないことを明示的に表します。 IPアドレスやホスト名の指定で特定のクライアントを許可することもできます。 |
| AllowAll | 全てのクライアントを許可します。 |
| AllowGroup | 指定されたグループを許可します。グループ名の先頭に!をつけることで許可されないグループを表します。 |
| AllowUser | 指定されたユーザを許可します。ユーザ名の先頭に!をつけることで許可されないユーザを表します。 |
| Deny | 指定されたクライアントのアクセスを拒否します。allは全てのクライアントを拒否し、noneは拒否されたクライアントが存在しないことを明示的に表します。 IPアドレスやホスト名の指定で特定のクライアントを拒否することもできます。 |
| DenyAll | 全てのクライアントを拒否します。 |
| DenyGroup | 指定されたグループを拒否します。グループ名の先頭に!をつけることで拒否されないグループを表します。 |
| DenyUser | 指定されたユーザを拒否します。ユーザ名の先頭に!をつけることで拒否されないユーザを表します。 |
<Director /home/ftp> <Limit DIRS WRITE> Order allow,deny Allow from 192.168.0.1 DenyAll </Limit> <Limit READ> AllowAll </Limit> </Directory>
| ディレクティブ | 説明 |
| User | Anonymousで接続したユーザのユーザ名を指定します。 |
| Group | Anonymousで接続したユーザのグループ名を指定します。 |
| UserAlias | ログインユーザ名にAnonymousログインさせるユーザ名を指定し、そのログインをユーザ名のログインとします。 |
| MaxClients | Anonymousログインの最大クライアント数を指定する。noneの場合は制限しないことを表します。またメッセージには最大値を超えた 場合にクライアントに表示されるメッセージを指定します。この値を超えた接続はメッセージ表示後切断されます。(デフォルト:none) |
| DisplayLogin | ユーザがログインして最初に表示されるメッセージファイル名を指定します。ファイルパスは絶対パスもしくは ルートディレクトリからの相対パスで指定します。(ファイルのパスはルートディレクトリ以下でなければならない。) |
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE> ←Anonymousでの書き込みや削除を全て拒否しています。
DenyAll
</Limit>
</Anonymous>
#vi /usr/local/etc/proftpd.conf
ServerName "CYBERAM Server" ←接続したクライアントに表示する文字列 ServerType standalone ←スタンドアロンで起動 DefaultServer on Port 21 ←ポート番号は21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022 # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd). MaxInstances 5 ←5つまで子プロセスの生成を許可 # PAM AuthPAMConfig ftp # Set the user and group under which the server will run. User ftp ←ftpユーザ、ftpグループでProFTPDを動作させる Group ftp # To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. DefaultRoot ~/ftp netusers,!wheel ←netusersグループのProFTPDでのルートディレクトリを/home/ユーザ名/ftp/に設定する。 これより上の階層は見えない。またwheelグループはこの制限ではない。 RequireValidShell off ←/etc/shellsに関係なくログインを許可する(例えばシェルが/bin/falseや/bin/nologinでもログインできる。) IdentLookups off ←リモートユーザ名の確認をしない UseReverseDNS off ←逆引きしない TimesGMT off ←ローカルタイムで時刻表示 #Resume AllowStoreRestart on ←リジューム機能を有効にする AllowRetrieveRestart on # Normally, we want files to be overwriteable. <Directory /> AllowOverwrite on ←ファイルの上書きを許可する(デフォルトではクライアントはファイルを上書きできない) </Directory> # A basic anonymous configuration, no upload directories. If you do not # want anonymous users, simply delete this entiresection. #<Anonymous ~ftp> ←AnonymousFTPを許可しないので全て(<Anonymous ~ftp>から</Anonymous>まで)コメントアウトする。 # User ftp # Group ftp # We want clients to be able to login with "anonymous" as well as "ftp" # UserAlias anonymous ftp # Limit the maximum number of anonymous logins # MaxClients 10 # We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. # DisplayLogin welcome.msg # DisplayFirstChdir .message # Limit WRITE everywhere in the anonymous chroot # <Limit WRITE> # DenyAll # </Limit> #</Anonymous>
#vi /etc/ftpusers
root bin daemon adm lp sync shutdown halt次に/etc/pam.dディレクトリにPAMのftp設定ファイルを作成する。
#vi /etc/pam.d/ftp
#%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so session required /lib/security/pam_pwdb.soこれはpam_listfileモジュールにより、指定されたファイルを基にアクセス制御が行われる。この場合は/etc/ftpusersで指定された ユーザのアクセスを拒否するということである。
#vi /etc/rc.d/init.d/proftpd
#!/bin/sh
. /etc/rc.d/init.d/functions
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
. /etc/sysconfig/network
RETVAL=0
case "$1" in
start)
echo -n 'Starting proftpd: '
daemon /usr/sbin/proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
;;
stop)
echo -n 'Stopping proftpd: '
pkill proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
;;
status)
status proftpd
;;
restart)
killall -HUP proftpd
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $RETVAL
パーミッションを変更し、自動起動させたいランレベルのディレクトリにリンクさせます。(デフォルトランレベルが3の場合)#chmod 755 /etc/rc.d/init.d/proftpd #cd /etc/rc.d/rc3.d/ #ln -s ../init.d/proftpd S21proftpd次回起動時から自動でProFTPDが起動されます。