ProFTPD 1.2 4 インストール

Red Hat Linuxなど多くのディストリビューションにはwu-ftpdというFTPサーバがインストールされているが、これには様々なセキュリティホールが発見されてて、あまりよくないらしい。
そこで、ProFTPDというFTPサーバをインストールすることにした。なお、作業環境はRed Hat Linux 7.2Jである。

1.既存のwu-ftpdを削除

1.wu-ftpdがインストールされているかどうかの確認

wu-ftpdがインストールされているかどうかを調べ、インストールされているかどうかを確認する。

# rpm -q wu-ftpd

2.wu-ftpdのアンインストール

wu-ftpdを削除しようとすると、anonftpが関連付けられているためできないというメッセージが出る。そこで、先にanonFTPを削除してからwu-ftpdを削除する。

# rpm -e anonftp
# rpm -e wu-ftpd

2.ProFTPDインストール

2-1 準備

ProFTPDのソースをダウンロードして/usr/local/srcにコピーし、展開する。

$ cd /usr/local/src
$ tar xvfz proftpd-1.2.4.tar.gz

2-2 configure

configureによりMakeファイルを作成する。

$ cd proftpd-1.2.4
$ ./configure --sysconfdir=/etc/proftpd --localstatedir=/var

2-3 make

makeを行う前に、config.hを次のように編集する。

$ vi config.h

#ifndef PID_FILE_PATH
#define PID_FILE_PATH "/var/run/proftpd.pid"
#endif /* PID_FILE_PATH */

コンパイルする。

$ make

2-4 インストール

コンパイルが正常に行えたら、インストールを行う。

$ make install

3.ProFTPDの設定

3-1 ProFTPD設定ファイルの編集

proftpd.confを開き、次のように編集する。

$ vi /etc/proftpd/proftpd.conf

ServerName                      "Rina Server" ←任意
ServerType                      standalone
DefaultServer                   on
DefaultRoot                     ~ !wheel ←追加

# PAM ←追加
AuthPAMAuthoritative            on
AuthPAMConfig                   ftp

User                            nobody
Group                           nobody ←変更

# A basic anonymous configuration, no upload directories.
#<Anonymous ~ftp> ←以下、全てコメントアウト
#  User                         ftp
#  Group                                ftp
    ・
    ・
    ・
#
#</Anonymous>

3-2 PAMの設定

Red Hat Linuxでは認証にPAMを使用しているため、FTPユーザをPAMで認証させるための設定を行う。

/etc/pam.dにftpファイルを作成する。

$ vi /etc/pam.d/ftp

以下の行を入力し、保存する。

#%PAM-1.0
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib/security/pam_pwdb.so shadow nullok
account    required     /lib/security/pam_pwdb.so
session    required     /lib/security/pam_pwdb.so

3-3 接続ユーザを制限する

/etc/ftpusersファイルを作成する。

$ vi /etc/ftpusers

接続させないユーザを列挙する。

root
bin
daemon
adm
sync
shutdown
halt
operator
nobody

4.自動起動の設定

/etc/rc.d/init.d/に起動スクリプトを作成する。

$ vi /etc/rc.d/init.d/proftpd

以下のスクリプトを入力し、保存する。

#!/bin/sh
#
# chkconfig: 345 85 15
# description: ProFTPD Server
#

# Source function library.
. /etc/rc.d/init.d/functions

if [ ! -f /etc/sysconfig/network ]; then
    exit 0
fi

. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/local/sbin/proftpd -a -f /etc/proftpd/proftpd.conf ] || exit 0

RETVAL=0

# See how we were called.
case "$1" in
  start)
    echo -n "Starting proftpd: "
    daemon /usr/local/sbin/proftpd
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
    ;;
  stop)
    echo -n "Stopping proftpd: "
    killproc proftpd
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
    ;;
  status)
    status proftpd
    ;;
  restart)
    killall -HUP proftpd
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
esac

exit $RETVAL

作成後、実行権を与える。

$ chmod 755 /etc/rc.d/init.d/proftpd

ランレベルごとのシンボリック・リンクを作成する。

$ chkconfig --add proftpd

5.ProFTPDの起動・停止

ProFTPDの起動は次のように行う。

$ /etc/rc.d/init.d/proftpd start

また、停止は次のように行う。

$ /etc/rc.d/init.d/proftpd stop

6.接続確認

これで、Windowsマシンからftpソフトを使って今までと同様に接続できるはず。でも動いているのはwu-ftpdじゃなくてProFTPDである。


[ TOP ]