Monthly Archives: 8月 2010

mod_ruid suExec suPHP CentOS Apache2

ApacheのCGIやPHPをユーザ権限で動かすにはmod_ruid suExec suPHP等色々ありますが今回mod_ruidを使って行ないたいと思います。
※ディフォルトのsuExecは停止させておく必要があります。

下記のパッケージをインストールする
# yum install httpd-devel
# yum install libcap-devel
ソースをダウンロードしてきてコンパイルする
# wget http://www.sourcefiles.org/Internet/WebServers/Modules/Access_Control/mod_ruid-0.6.tar.gz
# tar xvzf mod_ruid-0.6.tar.gz
# cd mod_ruid-0.6
# apxs -a -i -l cap -c mod_ruid.c

再起動するとmod_ruidが有効になる
# service httpd restart

WordPressでのエラーやphpMyAdminでのエラーの対処
※現在他の方法を模索中…
# chmod 777 /tmp/fs_sessions/ (デフォルトは700)
# chmod 777 /var/lib/php/session (デフォルトは770)

このままではapacheユーザによって作られたcgiやphpが削除できなくなったり色々と問題が発生するため現在のユーザディレクトリ内のファイル所有者を変更しpublic_htmlのパーミッションを700にするスクリプトを書いて自動で書き換える。
(色々面倒で適当に書いてるところはありますが当方が急いで書いた為なのでお気になさらずに…)

#!/usr/bin/perl
$homedir = '/home/';

opendir(DIR,$homedir);
  @list = readdir(DIR);
closedir(DIR);

foreach $udir (@list) {
$userdir = "$homedir$udir";
if(-d $userdir && $udir !~ /.|+/){
print "$userdir : $udirn";
$chown = `chown -R $udir:$udir $userdir/public_html`;
$chmod = `chmod 700 $userdir/public_html`;
  }
}

今後作成されるユーザディレクトリのパーミッションを変える
# chmod 700 /etc/skel/public_html

最後に不正に他のユーザのディレクトリやファイルが閲覧出来ない事を確認する。

Delegate CentOS rpm インストール

色々調べたところmakeするインストール方法が殆どでしたのでrpmでインストールする方法を纏めてみました。

ダウンロードしてくる
# wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/csbuild/SLE_10/i586/delegate-9.9.1-1.1.i586.rpm
インストール
# rpm -ivh delegate-9.9.1-1.1.i586.rpm
インストール場所の確認
# rpm -qs delegate-9.9.1-1.1.i586
通常 /etc/delegated.cf
通常 /usr/sbin/delegated
通常 /usr/share/delegate
通常 /usr/share/delegate/docs/howto.html
通常 /usr/share/delegate/docs/manual.html
通常 /usr/share/delegate/docs/tutor-en.html

設定ファイル格納用ディレクトリの作成
# mkdir /etc/delegate

起動スクリプトを書く

# vi /etc/init.d/delegated
#!/bin/sh
#
# chkconfig: 35 90 10
# description: delegated ftp proxy
# processname: delegated
# config: /etc/delegate/*.conf

DELEGATE=/usr/sbin/delegated
CONFDIR=/etc/delegate
DGROOT=/var/delegate

if [ ! -x $DELEGATE ]; then
    echo -n $"$DELEGATE does not exist."; warning; echo
    exit 0
fi

if [ ! -r $CONFDIR ]; then
    echo -n $"$CONFDIR does not exist."; warning; echo
    exit 0
fi

RETVAL=0

start() {
        echo -n $"Starting up Http DeleGate daemon: "
        for CONFIG in $CONFDIR/*.conf ; do
          $DELEGATE DGROOT=$DGROOT +=$CONFIG
          echo
        done
        return 0
}

stop() {
        echo -n $"Shutting down Http DeleGate daemon: "
        for CONFIG in $CONFDIR/*.conf ; do
          $DELEGATE DGROOT=$DGROOT +=$CONFIG -Fkill
          echo
        done
        return 0
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

権限を与える
# chmod 700 /etc/init.d/delegated

ログローテーションを設定する
# vi /etc/logrotate.d/delegate

/var/log/delegate/ftp.log /var/log/delegate/pop.log /var/log/delegate/smtp.log /var/log/delegate/errors.log /var/log/delegate/stdout.log /var/log/delegate/0 {
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
create 0600 root:root
}

設定ファイルを書く(FTPプロキシ)※サーバのFTPとかぶらないようにする。
# vi /etc/delegate/ftp.conf

-P2100
SERVER=ftp
MOUNT=”/* ftp://192.168.24.4/*”
ADMIN=orbit@mail.orsx.net

起動
# service delegated start

P5KPL-CM Pentium DualCore E5400

CPUを取り替えてKVMをインストールしようとしたらCPU Over temperatureとエラーが出たので何事かと調べたところその上にUnknown CPU detected and an updated BIOS is requiredと表示されていた。
BIOSがCPUに対応していない(認識出来ていない)ためCPUの温度が100℃と表示されていたようだ。(modprobe kvm_intelも実行できない)

BIOSのアップデートさえうまく行えば表示は消えるので下記を参考にBIOSのアップデートを行う。

P5KPL-CM 0608 BIOS
1. Release for new ASUS update.
http://support.asus.com/download/download.aspx?SLanguage=ja-jp&product=1&model=P5KPL-CM

P5KPL-VMの日本語説明書が代用できる
http://www.unitycorp.co.jp/support/download/manual/775/j3286_p5kpl-vm.pdf

Proftpd SELinux設定

別けあって今回新たに構築したサーバは勉強にSELinuxを稼働させてみた。
そこで最初は色々と問題が発生したのでそのひとつであるProftpdのアクセスしたディレクトリ内が見えない事について解決しようと思う。

下記のコマンドで一覧を表示する
# getsebool -a

ftp_home_dir –> off
ftpd_connect_db –> off
ftpd_disable_trans –> off
ftpd_is_daemon –> off

これらの機能が現在無効化されているためこれから下記のように有効化したいと思う。

# setsebool ftp_home_dir on
# setsebool ftpd_connect_db on
# setsebool ftpd_disable_trans on
# setsebool ftpd_is_daemon on

もう一度下記のコマンドで一覧を表示し有効になってるか確認する
# getsebool -a

ftp_home_dir –> on
ftpd_connect_db –> on
ftpd_disable_trans –> on
ftpd_is_daemon –> on

※追記
上記の設定では再起動時にリセットされる為設定を維持させるためにはsetseboolに-Pオプションを追加する必要がある。

Apache 2 Test Page powered by CentOS を表示させない

ずいぶん前にサンプルページが表示されないように設定していたはずなのに何故か度々表示されるようになったので調べてみたところ、設定ファイルwelcome.confが復活していた。

削除してもバージョンアップすれば自動で作成されるとのこと。
一応表示させない為に下記のコマンドを実行した。

mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.backup

Visitors 0.7日本語化 色々修正版

ソフトの窓様がVisitorsの日本語化をされていらっしゃいましたので、ファイルを元にその日本語化をもっと徹底的に行ないました。

修正内容
・残りの英語表記であった部分を日本語化しました。
・解析結果を表示するページが左寄でしたので中央寄せに修正しました。

visitors-0.7-JPORSP.tar.gz

使い方はソフトの窓様を参考にお願いします。