2007.12.06 Thu

SELinuxを有効にしたまま ProFTPD を使用する方法

SELinuxが有効になっている場合、ユーザーのパスワードを参照することができずログインすることができません。

SELinux全てを無効にするのではなくFTPのみSELinuxを無効にしてProFTPDを設定してみます。

SELinuxについての参考サイト

ProFTPD導入環境

  • CentOS 5
  • SELinux 有効

xinetdのインストール

xinetd がインストールされていない場合のみ実行してください。

xinetd参考サイト

xinetdインストール

# yum -y install xinetd

xinetd起動

# /etc/rc.d/init.d/xinetd start

xinetd自動起動設定

# chkconfig xinetd on

proftpdのインストール

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/RPMS.dries/rpmforge-release-0.2-2.2.el4.rf.i386.rpm
# sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo
# yum -y --enablerepo=rpmforge install proftpd

ProFTPD設定の設定

# vi /etc/proftpd.conf

standaloneモードからinetdモードに変更

ServerType standalone

ServerType inetd

ルートディレクトリの設定

DefaultRoot ~ !adm

DefaultRoot ~/public_html !wheel

最終行に追加

ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
TimesGMT off
PassivePorts 10000 10030
※PASVモード用ポートとして1024以上の任意のポートを指定

xinetdでproftpdを起動する設定

# vi /etc/xinetd.d/xproftpd

service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.proftpd
log_on_success += HOST PID
log_on_failure += HOST
nice = 10
env = TZ=JST-9
}

SELinux でFTPを動かす場合

以下のコマンドを実行

# setsebool -P ftp_home_dir 1

  • Pを設定することでreboot時にも設定が保存されたままになります。


xinetdを起動してproftpdを使う

# /etc/rc.d/init.d/xinetd restart
# chkconfig xinetd on
# chkconfig xproftpd on

FTPクライアントから接続してみる。正常に接続できれば終了です。

参考サイト

システム構築に関する覚書トップページへ