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クライアントから接続してみる。正常に接続できれば終了です。