サーバ設定ちう…

FedoraCore4から、yum updateを使って順調に FC5を経由し、FC6 までやってまいりました。
さて、問題が…

最近へんなお客様=ftpやらhttpやらSSHやらそこかしこに国内外を問わずアクセスがきています。

以前 RedHat7の時PHPの穴を突かれて侵入された経験のある私としてはセキュリティを高めねばならんと…考えたわけです。

sshdもvsftpdも国内からのアクセスしかできないとはいえ、万全ではないし、まだwebサーバから来るかもしれない。特に自作のCGIだからもしかしたら穴があるかもしれない…
と、思い設定改革をすることにしました。

今回の目標は SeLinux と SuExec。ユーザからのアクセスではシステムに変更をかけられないようにしなくてはなりません。

SeLinuxは FC3を仮インストールしたときから存在は知っていました。でも設定すると、Webの公開がうまくいきません。何故だ?実際にFC4をインストールした際もいろいろやってみたけど公開できず…
しかも起動が遅い…そんな訳で、SeLinuxは設定を切られてしまい早1年以上…ポリシーの設定についても前よりも詳しいWeb情報が沢山ある!これならいけるだろう!

さて、今までの設定を見直してみましょう…ってSuExecはどうも設定してあるッポイな…
CGIの実行権限が apache で動いているのは何故でしょうか?←そこから始まるんですか?

ScriptAlias /cgi-bin/ "/home/xxxx/cgi-bin/"
ScriptAliasMatch /~(..*)/cgi-bin/(.*) /home/$1/public_html/cgi-bin/$2

となっています。つまり、ScriptAliasにあるファイルは apache権限で動くわけですね。

ということで、まずユーザのCGIの設定を…

# ScriptAliasMatch /~(..*)/cgi-bin/(.*) /home/$1/public_html/cgi-bin/$2
コメントアウト

<Directory "/home/*/public_html/cgi-bin">
AllowOverride None
Options ExecCGI
AddType application/x-httpd-cgi .cgi
Order allow,deny
Allow from all
</Directory>
追加

としました。これで…あれ?CGIがうごかね…

調べると、アクセス権限に他のユーザが書いたりできるといけないらしい…

1個1個のユーザを回って…
#chmod 711 /home/user
#chmod 711 /home/user/public_html

さらにユーザに変身して…
#find ~/public_html -type d -perm +022 -exec chmod go-w \{\} \;
#find ~/public_html -type f -perm +033 -exec chmod go-wx \{\} \;

を実行しまくってまいりました。

とりあえず…ユーザのSuExec化は終了。ちかれた…