インストールメモ:ProFTPD、OpenSSH、OpenSSL

2001年12月。
探せば Web 上にいくらもいい参照先があるんだけど。とりあえず私的 (+ N 氏宛) メモっちゅーことで。 (メモですんで。手引書やマニュアルではありません。念のため)

記憶違い、調査不足などでウソを書いてる可能性があるので注意。 間違いを発見された場合は、ご指摘いただけるととても助かります。


ProFTPD

参考サイト:

など。

インストール先は Vine Linux 2.1.5、および RedHat Linux 5.2 (Libretto20改) 。
元々 Vine Linux 2.1.5 ではインストール時にパッケージを選択しておけばデフォルトで ProFTPD が (たぶん RPM ファイルベースで? 自信なし) 同時にインストールされるので、これは後から別途導入した場合のメモ。

  1. ftp://ftp.proftpd.org/distrib/から最新版 (この時点では v1.2.5 rc1) をダウンロード。
  2. ダウンロードしたファイルを解凍し、解凍先のディレクトリに cd。
    gzip -dc proftpd-1.2.5rc1.tar.gz | tar xf -
    cd proftpd-1.2.5rc1
    (↑この解凍の仕方は単なるワシ的好み)
  3. README や INSTALL にひととおり目を通した後 (一応) 、
    ./configure
    make
    make install
    でコンパイル、インストール。 (make install の前に su で root になっておくこと〜。 root 権限になってないとコンパイルはいいけどインストールは失敗こきます)
  4. proftpd.conf を設定。ファイルの場所は (デフォルトで) /usr/local/etc/proftpd.conf 。なお複雑な設定をしたい場合は、解凍ディレクトリ中の sample-configurations/ にサンプルが入っちょるのでそれも参照できる。 (と思う)
    1. ServerType standalone」を「ServerType inetd」に変更。 (standalone 起動ではなく inetd 経由で起動させるため。 standalone 起動にすると、/etc/rc.d/ の中を書き直すのが若干メンドウくさいような気がするので…)
    2. Group nogroup」を「Group nobody」に変更。 (あるいは nogroup という新規グループを作っといてもいいのかもしれないが、 nobody というグループが既にあるので。このへんはエラー出なきゃいいやって感じでテキトウ)
    3. <Anonymous ~ftp>」から「</Anonymous>」までの全行を削除、または (行頭に “#” を入れて) コメントアウト。これは Anonymous FTP を許可しない場合。
    4. Umask 022」を「Umask 002」に変更。同グループ内ユーザ同士での共有ファイルの相互削除などを可能にするため。 (ある意味ちょっとキケン?)
    5. ログインしたユーザを特定ディレクトリ内に閉じ込めてそれより上位ディレクトリに移動させない、すなわち chroot の設定。
      DefaultRoot ディレクトリ (グループ)
      という行をどこかに入れる。グループは省略可。省略した場合は全グループに適用される。含めたくないグループは頭に “!” をつける。複数グループをカンマ区切りで列挙できる。DefaultRoot は複数行記述でき、ユーザは自分が属するグループが最初に現れた記述によって制限される。 (なんか説明ヘタだなァ…) 以下、設定例。
      1. alpha、beta、gamma のグループがあって、 alpha、beta はそれぞれのホームディレクトリに閉じ込めたいが gamma は制限したくない場合。
        DefaultRoot ~ alpha,beta,!gamma
      2. 同じく、 alpha は /home/ftp/alpha 、beta は /home/ftp/beta に閉じ込めたいが gamma は制限したくない場合。 (一人で alpha gamma など複数グループに所属するユーザもいることを考慮)
        DefaultRoot /home/ftp/alpha alpha,!gamma
        DefaultRoot /home/ftp/beta beta,!gamma
  5. /etc/inetd.conf を編集。既に他の ftpd が起動設定されていた場合は殺し (行頭に “#”を入れてコメントアウト) 、
    ftp stream tcp nowait root /usr/local/sbin/in.proftpd in.proftpd
    の行を挿入。 (/usr/local/sbin/ はデフォルトインストール先)
  6. inetd の再起動 (inetd.conf 編集を反映させる) 。
    killall -HUP inetd
    で行けるハズ。

ちなみに、一度でも standalone 起動に設定すると、後で inetd 起動に設定変更した時に、

500 FTP server shut down (Maintanance in progress) -- please try again

てなエラーメッセージが出てログインできなくなってしまうことがある。この場合は /etc/shutmsg を削除すればよい。
(参考:[vine-users:032519] Re: ftpに接続できない)

また、 Vine Linux インストール時に導入した場合 (たぶん RPM ファイル…違うかも) と、 make でインストールした場合の主な違いは次のとおり。

プレインストール make でインストール
本体 /usr/sbin/proftpd /usr/local/sbin/proftpd
設定ファイル /etc/proftpd.conf /usr/local/etc/protftpd.conf
起動方法 standalone (/etc/rc.d/ 内もバッチリ) standalone (/etc/rc.d/ 内は自力で設定の必要)

余談ですが /etc/rc.d 内の設定に chkconfig てコマンドが使えることを今回初めて知りました。 いや〜なんつーかいろいろ知らなさすぎです。


OpenSSH

OpenSSH のオリジナル (?) は OpenBSD 用に作られていて、他の OS 用には portable という形で配布されておりますのでそっちを拾ってくること。以上余談。
インストール先は RedHat Linux 5.2 (Libretto20改) 。

OpenSSH のインストール前に OpenSSL がインストール済であること。 (他に Zlib も必要だけどこれはフツーにインストールされた RedHat Linux にはもう入ってるから気にする必要なし)

  1. 最新のソース (この時点では v3.0.2p1) を http://www.openssh.com/ja/ からダウンロードしてくる。
  2. ダウンロードしたファイルを解凍し、解凍先ディレクトリに移動。
    gzip -dc openssh-3.0.2p1.tar.gz | tar xf -
    cd openssh-3.0.2p1
  3. README や INSTALL にひととおり目を通した後 (一応) 、
    ./configure
    make
    make install
    でコンパイル、インストール。 (「make install」の前に su で root になっておくこと)
  4. 自動起動の設定。テキトーです。ソースを展開したディレクトリ (さっきからいる場所) にいる状態で、
    cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
    そして
    vi /etc/rc.d/init.d/sshd
    で自動起動用ファイルの編集。この元ファイルは RedHat 系 Linux でのプレインストール時用のファイルのようなので、path やらディレクトリやらを修正してやらんと make からインストールした OpenSSH には使えないのでそのように修正。
    1. 23行目からの
      KEYGEN=/usr/bin/ssh-keygen
      RSA1_KEY=/etc/ssh/ssh_host_key
      RSA_KEY=/etc/ssh/ssh_host_rsa_key
      DSA_KEY=/etc/ssh/ssh_host_dsa_key
      KEYGEN=/usr/local/bin/ssh-keygen
      RSA1_KEY=/usr/local/etc/ssh_host_key
      RSA_KEY=/usr/local/etc/ssh_host_rsa_key
      DSA_KEY=/usr/local/etc/ssh_host_dsa_key
      に修正。
    2. 100行目
      sshd -t
      /usr/local/sbin/sshd -t
      に修正。
    3. 119行目
      sshd $OPTIONS
      /usr/local/sbin/sshd $OPTIONS
      に修正。
    とりあえずこんなところで大丈夫だと思う。 (もう忘れてます)
  5. /etc/rc.d/init.d/sshd の owner と mode を他のファイルに合わせて揃えておく。
    chown root.root /etc/rc.d/init.d/sshd
    chmod 755 /etc/rc.d/init.d/sshd
  6. chkconfig/etc/rc.d/rc?.d/ 下に自動起動用のシンボリックリンクファイルを作成。
    chkconfig --add sshd
    これだけでオーケーのハズ。 「find /etc/rc.d -name '*sshd*'」で
    /etc/rc.d/init.d/sshd
    /etc/rc.d/rc0.d/K25sshd
    /etc/rc.d/rc1.d/K25sshd
    /etc/rc.d/rc2.d/S55sshd
    /etc/rc.d/rc3.d/S55sshd
    /etc/rc.d/rc4.d/S55sshd
    /etc/rc.d/rc5.d/S55sshd
    /etc/rc.d/rc6.d/K25sshd
    のように表示されれば大体よろしいかと。 (同じくもう忘れかけ)
  7. 念のため reboot してちゃんと自動起動するか確認。

なお OpenSSH の詳しい設定についてはよく知りません。 (ヤバ) とりあえずデフォルトで使ってても問題はなさそう、という認識。


OpenSSL

OpenSSH 用。サイズは少々デカい。遅いマシンではインストール (コンパイル) にも若干時間かかります。
インストール先は RedHat Linux 5.2 (Libretto20改) 。

  1. OpenSSL日本語サイトからたどって、最新版 (これを書いてる時点では 0.9.6c) をダウンロードしてくる。
  2. ダウンロードしたファイルを解凍し、解凍先ディレクトリに移動。
    gzip -dc openssl-0.9.6c.tar.gz | tar xf -
    cd openssl-0.9.6c
  3. README や INSTALL にひととおり目を通した後 (一応) 、
    ./config
    make
    make test
    make install
    でコンパイル、インストール。 (「make install」の前に su で root になっておくこと)
  4. 以上。

戻るったら戻る