SELinuxでWebサーバ(Apache)からsmtpするには
はてなブログ1周年おめでとう!
はてなブログ1周年おめでとう! id:hatenablog
おめでとうございます
CentOS6のApacheでRailsとPassengerをSELinux Enforcingで動かす
Redmineの設定だが
http://www.redmine.org/projects/redmine/wiki/RedmineAndSELinuxOnCentOS
が参考になった
調べてみると
Permissiveにしてaudit.logの拒否出力を
許可するモジュールを作れという大雑把なものが多く
それはあんまりかなと思い
ひとつひとつディレクトリやファイルの権限を変えてみた
インストールは下記
% ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] % sudo gem update --system 1.6.2 % sudo gem install rails -v 2.3.14 % sudo gem install passenger -v 2.2.15 % sudo passenger-install-apache2-module
最後のコマンドではApacheモジュールをコンパイルするので
事前にいろいろなdevelやaprなど入れておく必要あり
1.passengerの権限変更
% cd /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2 % sudo chcon -t bin_t ApplicationPoolServerExecutable % sudo chcon -t httpd_modules_t mod_passenger.so
前者は実行するのでbin_tに
後者はApacheモジュールなのでhttpd_modules_tに変更
2.Apacheの設定変更
PassengerTempDir /var/tmp/passenger
としてソケットを出すディレクトリを変更後
% sudo mkdir /var/tmp/passenger % sudo chcon -t httpd_tmpfs_t /var/tmp/passenger
3.railsコンテンツの権限変更
% sudo chcon -R -t httpd_sys_content_t ${RAILS_ROOT} % cd ${RAILS_ROOT} % sudo chcon -R -t httpd_log_t log % sudo chcon -R -t httpd_tmpfs_t tmp
最後のコンテンツ権限変更は不要かもしれない
にゃんこ
にゃんこ買いました
- 出版社/メーカー: Pink Company
- メディア: エレクトロニクス
- 購入: 5人 クリック: 138回
- この商品を含むブログを見る
Perlでシンプルなパスワード生成
調べてみると
CPANにもたくさんあったし
独自実装してるサイトもたくさんあった
# CPANにありすぎると選びにくい
そのなかで
Perlでパスワード生成 - Noteless Notes
が非常に参考になった
こちらは文字数も文字種も決まっているので
もうちょっとシンプルに書いてみた
sub _gen_rand { my $length = 8; my $chars = [ 0..9, 'a'..'z', 'A'..'Z' ]; my $rand = ''; $rand .= $chars->[rand(scalar(@$chars))] for (1..$length); return $rand; }
OpenLDAPでnsAccountLock
OpenLDAP(試したのはCentOS5の2.3.43)にはnsAccountLockのスキーマがない
手動で追加すると
slaptestでoperational attributeはダメだよって言われて起動もできない
代用として
ppolicyオーバレイのなかに
pwdAccountLockedTimeというattributeがあり
これを000001010000Zにすると
ロックできる
詳しくは man slapo-ppolicyで
具体的にどうするかというと
デフォルトのslapd.confに
include /etc/openldap/schema/ppolicy.schema : modulepath /usr/lib64/openldap moduleload ppolicy.la : database bdb overlay ppolicy
として再起動すればOK
停止したいエントリを
dn: uid=hoge,dc=example,dc=net uid: hoge : pwdAccountLockedTime: 000001010000Z
とすればロックする
# ldapsearchでは明示しないと出てこないでの注意
ppolicyにはいろいろ機能があるようで
例えばパスワードn回間違えるとロックすることもできるみたい
これも詳しくは man slapo-ppolicyで
CentOS5でperl backend(slapd-perl)を使う
CentOS5にバンドルされている
openldapはslapd-perlがdisableでコンパイルされているので
perl backendのdatabaseが使えない
srpmでSPECファイルをenable-perlにしてビルドすると
ライブラリのリンクのところでPerl関連のエラーがでてNG
普通にmakeしてもコンパイルできるのに
おかしいとおもっていたらrpmは変なパッチがあたっていた
コメントアウトするとビルドできた
@@ -234,7 +234,7 @@ %patch3 -p1 -b .setugid %patch4 -p1 -b .pie %patch5 -p1 -b .toollinks -%patch6 -p1 -b .nosql +#%patch6 -p1 -b .nosql %patch7 -p1 -b .gethostbyname_r %patch8 -p1 -b .sasl %patch9 -p1 -b .timeout @@ -461,7 +461,7 @@ --enable-null \ --enable-shell \ --enable-sql=mod \ - --disable-perl \ + --enable-perl \ --disable-shared \ --disable-dynamic \ --enable-static \
追記:へんなパッチは具体的には
SLAPD_LIBS=$(LDBM_LIBS)
になってて
ほんらいは
SLAPD_PERL_LDFLAGS
とかいろんなバックエンド用のライブラリをすべて含むになっていた