ApacheでBasic認証のバックエンドにLDAPを使ってみた

意外と簡単。
requireで ユーザのgidNumberが1000 OR 100で、valid-userならログインできる設定にしてみた。require ldap-filterにはldapsearchのフィルター書式がそのまま使えるっぽい。

  <DirectoryMatch "/(path1|path2|path3)">
    AuthType Basic
    AuthName "Private"
    AuthBasicProvider ldap
    AuthzLDAPAuthoritative off 
    AuthLDAPURL ldap://ldap.example.com/ou=people,dc=example,dc=com?uid
    Satisfy all 
    require ldap-filter "|(gidNumber=1000)(gidNumber=100)"
    require valid-user
  </DirectoryMatch>

CourierでSpamAssassinを利用してスパム対策

1. やっぱり面倒スパムメール

現在、メールサーバを運用しているのだけれど、やっぱりスパムメールがいっぱいくる。来るだけで害はない、はずなんだけれど、見通しが悪くなる点とかあって、できれば自動的にスパムを省いたりしたい。

で、導入されたのがSpamAssassin。

スパムメール対策としては結構有名なものらしく、解説してくれてるページもそれなりにあってインストールもお手軽。

そして実際、すでに運用されている。

今回はメールサーバを移転するに当たって、再度SpamAssassinを入れる事になった。

続きを読む CourierでSpamAssassinを利用してスパム対策

phpMyAdminをインストール

1. phpMyAdminをインストール

最近の鯖の移転に合わせてphpMyAdminも移動することになった。

まずは対象のホストでphpMyAdminをインストールする。ホストはFreeBSDなのでportsを利用する。

shell> portinstall –c databases/phpmyadmin
shell> pkg_info -Ix phpMyAdmin
phpMyAdmin-3.4.7    A set of PHP-scripts to manage MySQL over the web

今回のインストールはapacheもphpも入ってなかったのでコレに合わせてインストールされた。

途中のコンパイルオプションでmod_phpを作成するのを忘れないように。

また、mysqliモジュールも必要だったり。

続きを読む phpMyAdminをインストール

cactiで利用されるmk-heartbeatのデーモンを動かす

1. cactiで利用されるmk-heartbeat

現在、cactiでmk-heartbeatと呼ばれるレプリケーションの遅延計測を行っている。

maatkitと呼ばれる、perlで書かれたスクリプト群があり、その中にレプリケーション遅延がどれぐらい発生しているかを調べるためのツールがある。

そのツールとcactiを利用して遅延を計測し、遅延が一定値を超えた時など必要に応じてアラートメールを飛ばすようにしている。

repl

続きを読む cactiで利用されるmk-heartbeatのデーモンを動かす

既存のUNIXユーザからLDAPのldifファイルを作る

1. LDAPマイグレーション

現在、nis/yp環境からLDAPへの移行を進めてる。その中で既存のUNIXユーザからLDAPのldifファイルを作る必要があった。
ldifファイルというのは、おおよそ一つのユーザに一つのファイルが割り当てられて、そのファイルにUIDとかGID、ホームディレクトリの場所など、*nixで言うところの /etc/passwd ファイルのようなものだ。またハッシュ化されたパスワードも記載されているので、FreeBSDで言うところの master.passwd だろうか。
さて、このldifファイルは1つのユーザに対して1つのldifが必要になる。
すでにそれなりの数のunixユーザがいるとその作成だけで結構大変だったりする。 続きを読む 既存のUNIXユーザからLDAPのldifファイルを作る

Ubuntu 11.10でmysql-workbenchがインストールできない

Ubuntu 11.10にmysql-workbench 5.2.35を入れようと思ったら11.04のパッケージしか無い。まぁ入るだろうと思って

sudo dpkg-i mysql-workbench-gpl-5.2.35-1ubu1104-amd64.deb

して、要求されるパッケージを入れたけど、ダメ。
ソースから入れようと思ってconfigureで要求されるライブラリを一つ一つ入れて行ったけど、Cの構文エラーは出るし宣言エラーは出るし全然通らない。

で、数時間の探し回ったら パッチ
コンパイル方法の解説を発見
手順どおりにソースを展開したディレクトリで

% sudo apt-get install build-essential autoconf automake libtool libzip-dev libxml2-dev libsigc++-2.0-dev libglade2-dev libgtkmm-2.4-dev libglu1-mesa-dev libmysqlclient15-dev uuid-dev liblua5.1-dev libpcre3-dev g++ libglade2-dev libgnome2-dev python-pexpect libboost-dev libsqlite3-dev python-dev libgnome-keyring-dev libctemplate-dev
% patch -p0 < ../5.2.35-ubuntu_11_10_compile_fix.patch
% ./autogen.sh -prefix=/usr/local
make

パッチを当てないとコンパイルが出来ても
起動スプラッシュでフリーズするらしい
makeはCore2Quad 2.4GHzのメモリ4GBで30-40分かかるらしい。

subversion1.7をインストールした環境でphp-svnのコンパイルが通らない

開発用のサーバを立てていて、svnの1.7.1をソースからコンパイルして入れた環境(Ubuntu 11.10)で、phpのモジュール「php-svn」のインストールが出来なかった時のメモ。
当然peclから入れてもエラーで通らない。廃止された関数があるらしい。
しかたなく、1.6系のライブラリをインストール

sudo aptitude install libsvn-dev

aptとかから入れた物は/usr/以下、ソースから入れら/usr/local以下に入るので共存できる。
で、Makefileを編集

/usr/local/include/subversion-1/

/usr/include/subversion-1/

に置換してmakeしてみたら通った。

subversion1.6から1.7に移行する手順

subversionのサーバをFreeBSDに変更したら、portsのsubversionがデフォルトで1.7になってたので、Linux,Macを含めて移行した。

dumpで1.6の旧サーバからバックアップ
旧サーバはUbuntu server 11.04

svnadmin dump /var/svn/レポジトリ名 | gzip > ./レポジトリ名.gz

新サーバのFreeBSDではデフォルトオプションでportsからsubversionをインストール。
svnユーザ,グループを作っておいて、svnルート以下の所有者をsvnにしておく

% sudo -u svn svnadmin create /var/svn/レポジトリ名
% gzip -dc レポジトリ名.gz | sudo -u svn svnadmin load /var/svn/レポジトリ名

んで、クライアント
Ubuntuだとパッケージにはまだ1.6しか無いので、ソースからコンパイル
http://ftp.riken.jp/net/apache/subversion/辺りからソースを落としてきて

% ./configure --enable-shared --without-berkeley-db
% make
% sudo make install

でrehashなりしたら1.7.1が使えるようになった

次にMac OS Lion
macportsにも1.7系はまだ無いので、Ubuntuと同じようにコンパイルした。

使えるようになったところで、1.6で管理されてたディレクトリで

% svn st
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/var/www/storage' is too old (format 10, created by Subversion 1.6)

とかしてみると、起こられる。言われるままに

% svn upgrade

を実行したら終わり