wu-ftpd
※いわずと知れたFTPソフトです。
匿名アクセスを許可する場合でなくても、セキュリティ上、
常に最新のものを使うようにしましょう。
【ダウンロード】
http://www.wu-ftpd.org/
【展開】
(以下の作業はrootで行ってください)
# cd /usr/src
# gzip -cd wu-ftpd-current.tar.gz | tar xvf
-
【コンパイル】
# cd /usr/src/wu-ftpd-2.6.2
# ./configure
# make
【インストール】
# make install
【設定】
まず、「/etc/inetd.conf」を修正します。
ftpの記述の行の先頭の「#」を外します。
# vi /etc/inetd.conf
--------------------------------------------------
・・・・・・
ftp stream tcp nowait root /usr/sbin/tcpd
in.ftpd -l -a
・・・・・・
--------------------------------------------------
※「-l」はログを記録する、「-a」は「/etc/ftpaccess」を参照する
ようにする指定です。
ここで修正した内容を有効にします。
# kill -HUP (inetdのPID)
(inetdのPIDは「ps aux | grep inetd」で見られます)
※「/etc/ftpaccess」の設定
デフォルトで特に問題はないと思いますが、「passwd-check」は
以下のように指定します。
passwd-check <none/trivial/rfc822>
<enforce/warn>
none:パスワード不要
trivial:「guest@unknown」のように「@」を1つ含めばよい
rfc822:「robert@host.co.jp」のような完全な形が必要
enforce:パスワードが条件に合わない場合、接続を拒否
warn:警告するのみで接続を許可する
※「/etc/ftphosts」の設定
ログインを制限したいホスト名を指定します。
デフォルトでは制限がありませんので、必要に応じて付け加えます。
行頭からホスト名またはIPアドレスを書けば、そのホストからのアクセスは
拒否されます。
ただ、指定したユーザだけを制御したい場合は以下のようにします。
Allow <username> <addrglob>
Deny <username> <addrglob>
これは、<addrglob>で指定されるホスト名(またはIPアドレス)に、
<username>でログインしようとしたときに、許可(Allow)するか
拒否(Deny)するか、という指定です。
※「/etc/ftpgroups」の設定
ログインを制限したいグループ名を指定します。
デフォルトでは制限がありませんので、必要に応じて付け加えます。
行頭からグループ名を書けば、そのグループに属するユーザからのアクセスは
拒否されます。
※「/etc/ftpusers」の設定
ログインを制限したいユーザ名を指定します。
デフォルトでは「root」をはじめ、システム管理に関する記述があります。
この部分は変更せずに、必要なものを-追加するだけにするのが良い
でしょう。
行頭からユーザ名を書けば、そのユーザからのアクセスは拒否されます。
-------------------------------------------------------------
※わたしの環境では、登録されたユーザからだけを許可するという設定
ですが、匿名ユーザからのアクセスを許可する場合、注意することが
あります。
※匿名ユーザ
接続するFTPサーバにアカウントがなくても、ログインできる仕組みです。
匿名といえどもユーザ名とパスワードは必要です。通常、ユーザ名は
「ftp」または「anonymous」が使われ、パスワードにはメールアドレスを
使うのがマナーということになっています。ただし、サーバによっては
パスワードが「ユーザ名@ホスト名」ではダメで、「ユーザ名@ドメイン名」
でないとダメ、というところもあります。
また、「cd ..」で1つ上のディレクトリに行けるのですが、匿名ユーザには、
こうしたことも規制する必要があります。(繰り返せばルートディレクトリ「/」
にも行けてしまうので。)
この制限をwu-ftpdで行うには、制限専用のグループとユーザを作成し、
「/etc/passwd」のユーザのホームディレクトリの指定の最後に「/./」を追加
したり(chroot操作)、シェルを「/usr/bin/passwd」などの安全なものに変える、
その他いろいろな作業が必要で、けっこう面倒な設定が必要に
なるようです。(わたしの方では実験中ですが、まだ成功していません。)
この点は「ProFtpd」の方がずっと設定しやすいと聞いています。
【クライアントからのアクセス】
FTPクライアントソフトがあれば、WindowsなどからでもFTPでファイルの
やりとりができるようになります。
C:\ftp (FTPサーバのIPアドレス) で起動します。
(DNSが設定されていれば、ホスト名でも可です)
プロンプトが中々表示されない時は、DNSまたは「/etc/hosts」の設定を
見直してください。
ユーザ名とパスワードを入力します。
※FTPコマンド
ASCII:今後のファイル転送モードをASCII(テキスト)モードにセット
BINARY:今後のファイル転送モードをBINARY(バイナリ)モードにセット
CD(ディレクトリ名):FTPサーバ上のカレントディレクトリを変更
LCD (ディレクトリ名):FTPクライアント上のカレントディレクトリを変更
DIR:FTPサーバ上のカレントディレクトリのファイル一覧表示
PWD:FTPサーバ上のカレントディレクトリ名の表示
GET (ファイル名):FTPサーバからクライアントへファイルを取得(ダウンロード)
PUT(ファイル名):FTPクライアントからサーバへファイルを転送(アップロード)
なお、ポートフォワードが行われている時は、パッシブモードでないとやりとり
できないことがあります。
【ログ】
wu-ftpdのログは、アクセス自体のログと、ファイル転送のログがあります。
・アクセスログ:「/var/log/messages」
・ファイル転送ログ:「/var/log/xferlog」
※アクセスログは、他のメッセージも入っているので、実際には
# grep ftpd /var/log/messages
とすると見やすくなります。