1.準備 (ソースのダウンロード)
以下の 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 ( ? には数字が入る)
更新日時が一番新しいものをダウンロードする。ダウンロード先のディレクトリは 自分のホームディレクトリ (2003年度の場合は /home/shido/) とする。 (パーミッションの関係で…)。
(注1)
2003年度 epftp サーバ再構築開始時における最新版は proftpd 1.2.7 であった。
そのため、以下では proftpd-1.2.7.tar.gzをダウンロードしたとして解説する。
(注2)
2003/01/21 における最新版は proftpd-1.2.7.tar.gz 。
2003/03/04 における最新版は proftpd-1.2.8.tar.gz 。
2003/10/31 における最新版は proftpd-1.2.9.tar.gz 。
2.インストール
ソースファイルを移動し、展開する。
$ sudo -s # cp proftpd-1.2.7.tar.gz /usr/local/src/ # cd /usr/local/src/ # tar -zxvf proftpd-1.2.7.tar.gz
展開により出来たディレクトリに侵入し、インストールを実行
# cd proftpd-1.2.7 # ./configure # make # make install
3.環境設定
ユーザ"ftp"の追加
# adduser ftp
パスワードは適当につける(ユーザ名 ftp のパスワードは使うことはない。) adduser 時に聞かれる項目に関する答えは適当でよい。
ディレクトリの作成
(ANONYMOUS) FTP サービスのために必要な二つのディレクトリを作成する。
# mkdir /home/ftp/pub # mkdir /home/ftp/incoming
/etc/group の編集
# emacs /etc/group
ファイルの中の以下の記述を見つけ書き換え、保存
(変更前) ftp:x:????: (変更後) ftp:x:14:
(注) gate との兼ね合いで問題あり??? 来年度は要検討です
/etc/passwd ファイルの編集
# emacs /etc/passwd
ファイルの中の以下の記述を見つけ書き換え、保存
(変更前) ftp:x:????:????:ftp,,,:/home/ftp:bin/bash (変更後) ftp:x:14:14:anonymous:/home/ftp:/bin/false
/home/ftp/ のパーミッション変更
# chmod -R 755 /home/ftp/
4.ProFTPD 設定ファイルの編集
ProFTPD の設定ファイルである、 /usr/local/etc/proftpd.conf を編集する。 まずは、作業ディレクトリに移動し、バックアップをとり。その後で編集する。
# cd /usr/local/etc/ # cp proftpd.conf proftpd_org.conf # emacs proftpd.conf
編集前の proftpd.conf
-->
編集後の 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>
5.動作確認
ProFTPD の起動
以下のように入力すると、proftpd が動き出す。
$ sudo /usr/local/sbin/proftpd
ProFTPD の停止
ProFTPD を落とすには、プロセスを kill するしかない。
$ ps aux |grep proftpd
とするれば、proftpd のプロセス番号( xxx の部分に表示 されるやつ)を調べると同時に、 FTP サーバからデータを収得中のユーザがいないかどうかを確認できる。
nobody xxx 0.0 0.0 1948 288 ? S 2003 0:22 proftpd: (accepting connections) shido ????? 3.0 0.1 2468 728 pts/1 S 23:51 0:00 grep proftpd
とだけ表示されれば、FTPサーバを利用中のユーザはいないので、問題なく ProFTPDを 停止させることができる。
nobody xxx 0.0 0.0 1948 288 ? S 2003 0:22 proftpd: (accepting connections) 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を停止させることができる。
nobody xxx 0.0 0.0 1948 288 ? S 2003 0:22 proftpd: (accepting connections) 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を停止するのをしばらく待ってもいいだろう。
調べたプロセス番号を用いて
# kill -TERM xxx (xxx は proftpd のプロセス番号)
とすれば、ProFTPD を停止させることができる。
動作確認
以下のように入力し、自分から自分に anonymous ftp ログインできるか確かめる。
$ ftp localhost
- Nameが聞かれるので、anonymous (or ftp)と答える。
- パスワードは 自分のメールアドレス(shido@ep.sci.hokudai.ac.jp) とする。
230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp>
と表示されれば、ProFTPD はうまく動いていると考えられる。もし、ProFTPD を インストールしたホストがグローバルIPあどれすを持っているのであれば、 ProFTPD をインストールした 計算機とは別の計算機(PC)で適当なプラウザ (internet explorer , netscape , mozilla , galeon 等)を起動し、 アドレスの部分に
ftp://ホスト名.ep.sci.hokudai.ac.jp
と入力し、ANONYMOUS FTP 接続ができるか確かめればよい。
6. 起動スクリプトの作成
サーバの起動(再起動)と同時に ProFTPD が起動するように設定する。
# emacs /etc/init.d/proftpd
以下のように編集
#! /bin/bash # proftpd start script # 2003/03/30 shido /usr/local/sbin/proftpd
パーミッションを変更
# chmod 755 /etc/init.d/proftpd
/etc/rc[2-5].d/ の下に作成したスクリプトへのリンクを置く.
# cd /etc/rc2.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 も同様)
この数字(2-5)は RUNLEVEL に対応する. 2-5 はマルチユーザモード, 0 は halt, 1 は single user mode, 6 は reboot に対応する. (過去の資料のこぴぺ。いったいどういう意味が…。)