目次
準備
以下の FTP サイトのいずれかから ProFTPD のソースをダウンロードする.
- ftp://ftp.ep.sci.hokudai.ac.jp/pub/proftpd/distrib/source/ (地球惑星科学専攻)
- ftp://ftp.jp.proftpd.org/pub/proftpd/distrib/source/ (ProFTFD 日本の本家)
ソースのファイル名は proftpd-?.?.?.tar.gz ( ? には数字が入る)
特別な理由がない限り,更新日時が一番新しいものをダウンロードする.ダウンロード先のディレクトリは自分のホームディレクトリ (2005年度の場合は /home/takatama/) とする.
以下,1.2.10rc3をダウンロードしたとして,説明をする.
インストール
ソースファイルを移動し,展開する.
# cp proftpd-1.2.10rc3.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar -zxvf proftpd-1.2.10rc3.tar.gz
展開により出来たディレクトリに入り,インストールを実行
# ./configure
# make
# make install
環境設定
ユーザ"ftp"の追加
パスワードは適当につける(ユーザ名 ftp のパスワードは使うことはない.) adduser 時に聞かれる項目に関する答えは適当でよい.
ディレクトリの作成
(ANONYMOUS) FTP サービスのために必要な二つのディレクトリを作成する.
# mkdir /home/ftp/incoming
pubは公開用ディレクトリ,incomingはファイルの書き込みのみができる受信用のディレクトリであるが,こちらは作成するだけで利用することはない.
/etc/group の編集
ファイルの中の以下の記述を見つけ書き換え,保存
(変更後) ftp:x:14:
/etc/passwd ファイルの編集
ファイルの中の以下の記述を見つけ書き換え,保存
(変更後) ftp:x:14:14:anonymous:/home/ftp:/bin/false
/home/ftp/ のパーミッション変更
ProFTPD 設定ファイルの編集
ProFTPD の設定ファイルである, /usr/local/etc/proftpd.conf を編集する.まずは,作業ディレクトリに移動し,バックアップをとり.その後で編集する.
# cp proftpd.conf proftpd_org.conf
# emacs proftpd.conf
- 20行目付近に「DefaultRoot ~」という記述がなければ,追加する.
- <Anonymous ~ftp> から </Anonymous> まではこまかな修正点が多くある.
- <Anonymous ~ftp> --> <Anonymous /home/ftp>
- UserAlias anonymous ftp の下に RequireValidShell off を追加.
- MaxClients 10 --> MaxClients 30
-
<Limit WRITE>DenyAll</Limit> という記述を以下のように変更.
<Directory /home/ftp/*>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
動作確認
ProFTPD の起動
以下のように入力すると,proftpd が動き出す.
ProFTPD の停止
ProFTPD を落とすには,プロセスを kill する.
とすれば,proftpd のプロセス番号( xxx の部分に表示されるやつ)を調べると同時に, FTP サーバからデータを収得中のユーザがいないかどうかを確認できる.
shido ????? 3.0 0.1 2468 728 pts/1 S 23:51 0:00 grep proftpd
とだけ表示されれば,FTPサーバを利用中のユーザはいないので,問題なく ProFTPDを停止させることができる.
ftp ????? 0.0 0.2 2280 1032 ? S Jan11 0:00 proftpd: ftp - hogehoge.ne.jp:
anonymous/shido@ep.sci.hokudai.ac.jp: IDLE
shido ????? 3.0 0.1 2468 728 pts/1 S 23:51 0:00 grep proftpd
というふうに表示されれば,FTPサーバを利用中のユーザはいるものの,IDLE 中であるので, ProFTPDを停止させることができる.
ftp ????? 0.0 0.2 2280 1032 ? S Jan11 0:00 proftpd: ftp - hogehoge.ne.jp:
anonymous/shido@ep.sci.hokudai.ac.jp: IDLE
ftp ????? 1.6 0.1 2052 948 ? S Jan11 0:02 proftpd: ftp - hogehoge.ne.jp:
anonymous/shido@ep.sci.hokudai.ac.jp: RETR /.hd03/Linux/Debian/debian-misc/debian-cd/woody-m68k-1.iso
shido ????? 0.0 0.1 2468 728 pts/1 S 00:02 0:00 grep proftpd
というふうに表示されれば,FTPサーバからファイルをダウンロード中のユーザがいるので, ProFTPDを停止するのをしばらく待ってもいいだろう.
調べたプロセス番号を用いて
とすれば,ProFTPD を停止させることができる.
動作確認
以下のように入力し,自分から自分に anonymous ftp ログインできるか確かめる.
Nameが聞かれるので,anonymous (or ftp)と答える. パスワードは 自分のメールアドレスとする.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
と表示されれば,ProFTPD はうまく動いていると考えられる.
LAN内の別のマシンからも,適当なFTPクライアントを用いて,アドレスの部分にmidoriのプライベートIPまたはmidori.ep.sci.hokudai.ac.jpを入力し,ANONYMOUS FTP 接続ができるか確かめればよい.
起動スクリプトの作成
サーバの起動(再起動)と同時に ProFTPD が起動するように設定する.
以下のように編集
# proftpd start script
# 2005/05/11 takatama
/usr/local/sbin/proftpd
パーミッションを変更
/etc/rc[2-5].d/ の下に作成したスクリプトへのリンクを置く.
# ln -s ../init.d/proftpd S80proftpd
# ls -al S80proftpd
lrwxrwxrwx 1 root root 17 S80proftpd -> ../init.d/proftpd
# cd /etc/rc3.d/
(RUNLEVEL 3-5 も同様)
(注) gate との兼ね合いで問題あり??? 来年度は要検討です