wu-ftp 2.6.1 立ち上げ

2000年9月2日に wu-ftp をインストールしました。 FreeBSDに最初から組み込まれている ftp に変えて wu-ftp を組み込みます。 wu-ftpを組み込むのは ftpにもセキュリティを組み込みたいからです。 wu-ftpでは guest userコントロールできますので、参照ディレクトリに制限を付ける事ができます。 一般ユーザを guest に定義すると自分のディレクトリ(例えば /home/hirokun)しか参照できなくなります。 FreeBSDに最初から組み込まれている ftpでは、書き込みできないとしても自分以外のディレクトリも見えてしまうので、システムセキュリティ上非常に危ないのです。
  1. wu-ftp を ports インストールします
    nice# cd /usr/ports/ftp/wu-ftpd
    nice# make install
    
  2. /etc/inetd.conf を編集して wu-ftpd に起動がかかるようにします
    変更前:ftp	stream	tcp	nowait	root	/usr/libexec/ftpd	 ftpd -l
    変更後:ftp	stream	tcp	nowait	root	/usr/local/libexec/ftpd	 ftpd -l -i -a
    
    nice# kill -HUP `cat /var/run/inetd.pid`
    
  3. コントロールファイルを作成します
    nice# cd /usr/local/etc
    nice# cp ftpaccess.example ftpaccess
    nice# cp ftpconversions.example ftpconversions
    nice# cp ftpusers.example ftpusers
    
  4. /usr/local/etc/ftpaccess を編集します
    変更前:email	user@hostname
    変更後:email	[email protected]
    
    これは wu-ftpの管理者のメールアドレスです。

    そして
    guestgroup	ftponly
    
    を追加します。

  5. /etc/group を編集します
    ftponly:*:50:
    
    を追加し、ftponly グループの UID を 50 にします。

  6. /etc/shells を編集します
    /nonexistent
    /passwd
    
    を追加します。 これはシェルを持たないユーザでも ftpが使えるようにする設定です。

  7. 一般ユーザアカウントを作成します
    「hirokun」という一般ユーザアカウントを作成します。
    nice# adduser -silent
    
    Enter username [a-z0-9_-]: hirokun
    Enter full name []: Hiroshi Kitaguchi
    Enter shell bash csh date no sh [sh]: no
    Enter home directory (full path) [/home/hirokun]:
    Uid [1002]:
    Enter login class: default []:
    Login group hirokun [hirokun]: ftponly
    Login group is "ftponly". Invite hirokun into other groups: quest no [no]:
    Enter password []: ******
    Enter password again []: ******
    
    vipwコマンドでhirokunのアカウントを編集します
    hirokun:****(省略)****:1002:50::0:0:Hiroshi
     Kitaguchi:/home/hirokun/./.:/nonexistent
    
    「/home/hirokun/./.」が変更点です。
    「見せたいディレクトリ/./カレントディレクトリ」です。

    ftp でファイル参照ができるように ls コマンドをユーザディレクトリに置きます。
    nice# cd /home/hirokun
    nice# mkdir bin
    nice# cp /bin/ls bin/
    nice# chmod 111 bin/ls
    nice# chmod 111 bin
    
  8. それではチェックです
    hirokunさんは telnetでリモートログインしようとしましたが、タイムアウトになってログインできません。 それでは ssh でログインやってやろうと、試してみましたが hirokun さんはシェルがないのでリモートログインできません。 それでは ftpでハードディスクの内容をハッキングしてやろうと試みましたが自分のディレクトリしか見えません。 とうとう、ハッキングをあきらめました。