2001年12月。
探せば Web 上にいくらもいい参照先があるんだけど。とりあえず私的 (+ N 氏宛) メモっちゅーことで。
(メモですんで。手引書やマニュアルではありません。念のため)
記憶違い、調査不足などでウソを書いてる可能性があるので注意。 間違いを発見された場合は、ご指摘いただけるととても助かります。
参考サイト:
など。
インストール先は Vine Linux 2.1.5、および RedHat Linux 5.2 (Libretto20改) 。
元々 Vine Linux 2.1.5 ではインストール時にパッケージを選択しておけばデフォルトで ProFTPD が (たぶん RPM ファイルベースで? 自信なし) 同時にインストールされるので、これは後から別途導入した場合のメモ。
gzip -dc proftpd-1.2.5rc1.tar.gz | tar xf -
cd proftpd-1.2.5rc1
./configure
make
make install
make install
の前に su で root になっておくこと〜。 root 権限になってないとコンパイルはいいけどインストールは失敗こきます)
proftpd.conf
を設定。ファイルの場所は (デフォルトで) /usr/local/etc/proftpd.conf
。なお複雑な設定をしたい場合は、解凍ディレクトリ中の sample-configurations/ にサンプルが入っちょるのでそれも参照できる。 (と思う)
ServerType standalone
」を「ServerType inetd
」に変更。 (standalone 起動ではなく inetd 経由で起動させるため。 standalone 起動にすると、/etc/rc.d/
の中を書き直すのが若干メンドウくさいような気がするので…)
Group nogroup
」を「Group nobody
」に変更。 (あるいは nogroup という新規グループを作っといてもいいのかもしれないが、 nobody というグループが既にあるので。このへんはエラー出なきゃいいやって感じでテキトウ)
<Anonymous ~ftp>
」から「</Anonymous>
」までの全行を削除、または (行頭に “#” を入れて) コメントアウト。これは Anonymous FTP を許可しない場合。
Umask 022
」を「Umask 002
」に変更。同グループ内ユーザ同士での共有ファイルの相互削除などを可能にするため。 (ある意味ちょっとキケン?)
DefaultRoot ディレクトリ (グループ)
DefaultRoot ~ alpha,beta,!gamma
DefaultRoot /home/ftp/alpha alpha,!gamma
DefaultRoot /home/ftp/beta beta,!gamma
/etc/inetd.conf
を編集。既に他の ftpd が起動設定されていた場合は殺し (行頭に “#”を入れてコメントアウト) 、
ftp stream tcp nowait root /usr/local/sbin/in.proftpd in.proftpd
/usr/local/sbin/
はデフォルトインストール先)
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 のオリジナル (?) は OpenBSD 用に作られていて、他の OS 用には portable という形で配布されておりますのでそっちを拾ってくること。以上余談。
インストール先は RedHat Linux 5.2 (Libretto20改) 。
OpenSSH のインストール前に OpenSSL がインストール済であること。 (他に Zlib も必要だけどこれはフツーにインストールされた RedHat Linux にはもう入ってるから気にする必要なし)
gzip -dc openssh-3.0.2p1.tar.gz | tar xf -
cd openssh-3.0.2p1
./configure
make
make install
make install
」の前に su で root になっておくこと)
cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
vi /etc/rc.d/init.d/sshd
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
sshd -t
/usr/local/sbin/sshd -t
sshd $OPTIONS
/usr/local/sbin/sshd $OPTIONS
/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
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
なお OpenSSH の詳しい設定についてはよく知りません。 (ヤバ) とりあえずデフォルトで使ってても問題はなさそう、という認識。
OpenSSH 用。サイズは少々デカい。遅いマシンではインストール (コンパイル) にも若干時間かかります。
インストール先は RedHat Linux 5.2 (Libretto20改) 。
gzip -dc openssl-0.9.6c.tar.gz | tar xf -
cd openssl-0.9.6c
./config
make
make test
make install
make install
」の前に su で root になっておくこと)