OpenLDAP 2.4 ldaps化

[openldap ldaps 化]

 自己証明書の作成
 
  > openssl genrsa -out server.key 2048
  > openssl req -new -key server.key > server.csr
  > openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt
  
  server.crt  server.csr  server.key 3ファイルを以下にコピー
  /etc/openldap/certs
  
  以下のldifをopenldapの設定として追加
  
dn: cn=config
changetype: modify
delete: olcTLSCACertificatePath

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/server.crt

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/server.key

dn: cn=config
changetype: modify
replace: olcTLSCRLCheck
olcTLSCRLCheck: none

  最後に
  /etc/sysconfig/ldap
  を編集し、SLAPD_LDAPS=yesとする。
 
  ※注意:秘密鍵のパスフレーズを空にしておくこと。

OpenLDAP 2.4 スキーマ追加

OpenLDAP 2.4でスキーマを追加する。

手順が複雑なのでメモ。

 

使用するスキーマファイルをダウンロードする。

hoge.schema とする。

まず、

/etc/openldap/schema/

にコピーする。

それとは別のコピーを適当なディレクトリに配置する。

 

そして、結合させる設定ファイルを作成する。

> vim addschema.ldif

中身は

include /etc/openldap/schema/hoge.schema

とする。

 

次に、作業用ディレクトリに移動して一時ディレクトリを作成する。

> mkdir tmp

そして、コンバートする。

> slapcat -f ./addschema.ldif -F tmp -n 0 -s 'cn={X}hoge,cn=schema,cn=config'

(X = 現在設定されているschemaファイルの総数 + 1)

実行すると、openldapの設定ディレクトリが丸ごと作られる。

 

目的のファイルの場所まで移動し、

> cd tmp/...../

 

出来上がったhoge.ldifを編集する。

(ファイルは tmp/cn=config/cn=schema にある )

> vim cn={X}hoge.ldif

#
################################################################################
#
# dn: cn=schema
#
################################################################################
#

(ファイル先頭に、以下の行を追加する。)

dn: cn=(スキーマ名),cn=schema,cn=config
objectClass: olcSchemaConfig
cn: (スキーマ名)


attributeType ( … )

 

保存して、このファイルを設定に反映させる。

> ldapadd -Y EXTERNAL -H ldapi:/// -f cn={X}hoge.ldif

 

/etc/openldap/slapd.d/cn=config/cn=schema

に{X}hoge.ldifがタイムスタンプつきで出来ていれば成功。

 

最後に tmpディレクトリを削除する。

freeradiusのperlモジュール設定

何でもアリにできそう。

 

raddb/module/perl

を参照。

 

上記ファイルは

raddb/example.pl

を参照している。

 

authorize

authenticate

preacct

...

など、機能名と同じ関数を定義していくらしい。

 

拒否なら

RLM_MODULE_REJECT

 

許可なら

RLM_MODULE_OK

 

を返せばよいようである。

 

さらに、authorize, authentication, accounting などの各フェイズで

perlモジュールが呼ばれるようにするには、

 

raddb/sites-available/default

raddb/sites-available/inner-tunnels

 

の authorize, authentication の関数内に perl を記述する。

 

例えば、

 

{

  perl

  ldap

}

 

と書けば、perlの判定後にldapの判定をかけるなどの連携が可能となる。

 

スクリプト本体は、

raddb/example.pl をベースにする。

※小技?:

もし perl スクリプト中で mac アドレスなどを取得したい場合は

eap.conf の

copy_request_to_tunnel = yes

とする。と、各パラメータが inner-tunnel にコピーされる。

(どんなパラメータがコピーされるか、詳しいことろは調査中。)

 

 

authorize, authenticationなどの各関数が各フェイズに呼ばれる。

関数名をカスタマイズする場合は、

raddb/modules/perl

を編集する。

 

 

jQueryのlive関数

jQueryでは、以下のようにイベントハンドラを設定できる

 

$('#hoge').click(function(event){

  // process...

})

 

…で、後から動的に追加した要素に自動的にイベントハンドラ

設定するには、

 

$('.dialog_link').live('click', function(){

  // process...

});

 

これで、同じクラス名の要素が後から追加されたとき、その要素にも

イベントハンドラが振られる。

CentOS6 に node と cloud9 をインストール

CentOS 6.2にnode.js と cloud9をインストールする。

CentOS 5系は glibcのバージョンが 2.5 と古いため、とりあえず断念。

( nvm経由ならインストールできるらしい。)

 

> wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
> yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
> yum install nodejs-compat-symlinks npm

 

でインストール可能。

(前述のnvm経由でもインストールできるらしい。)

 

次にcould9

 

> npm install cloud9

> cd cloud9

> bin/cloud9.sh

 

実行時に libssl.so.0.9.8

がないエラー。

 

openssl 0.9.8 をrpm からインストール。

 

再度

> bin/cloud9.sh

で起動。

 

ただし、これだとcloud9をプロジェクトとして開いてしまうので

> bin/cloud9.sh -w /hoge/fuga

でワークスペースを指定する

 

http://hogehoge:3000

で使う。

 

上記のURLにアクセスするとプロジェクトが開かれた状態

で始まる。

 

一つファイルを作成し、

例えば、index.js

 

var http = require('http');

var server = http.createServer(
    function (request, response) {
    response.writeHead(200);
    response.end('Hello World!!\n');
}).listen(5000);
console.log('Server running');

と書いて保存し、実行する。

 

そして、

http://hogehoge:5000

にアクセスするとアプリケーションが実行される。

Gitlabを立ててみる

何かと話題の(もう遅いか…)Github

 

使いたいけど人様に見せられるようなコードじゃないので、

Gitlabを立ててみる。(Windows Serverで)

…と思ったら Windows Serverには対応してないかも。

SQLだけWindowsで動かすか。

 

以下、公式?インストールガイド

https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md

 

たぶん、どうしても必要なパッケージは以下の通り

 

・crul

MySQL ( or SQLite or PostgreSQL )

ruby

・そしてgit-all

 

その他解説

 

・gitolite(リポジトリのユーザ管理/アクセス制御を行うもの)

・gitorious(GitHub Cloner)

Redmine(プロジェクト管理ソフト)

 

以下、雑多メモ

・サーバにSubversion、クライアントにGitを使うことも可能

・git-svnを使うとSubversionとGitの橋渡しをしてくれる

rubyは1.9系でないとダメであるようなので、ソースからインストール

OpenLDAP 2.4初期設定

OpenLDAP2.3 から slapd.conf がなくなり、設定もDBで保持するようになったらしい。

今まで通りslapd.confも使えるみたいけど、どうせなら新しい仕組みを!

ということで。

 

> yum install openldap-servers

さらに今回は

> yum install openldap-servers-sql

も入れておく。

 

で、/etc/openldap/

を見ると、

slapd.d/

その下に設定ファイル達。

 

というか、これらは設定ファイルDBのはらわたなので、直接いじってはダメらしい。

ldapadd

ldapsearchなどを使うべし。

 

とりあえず、rootPW を設定しないとアクセスできない気がする。

(というか、初期PWが分からない。)

ので、こちらを参考にrootPWを設定する。

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: password

というldifファイルを作り、それを以下のコマンドで流し込む。

ldapadd -Y EXTERNAL -H ldapi:// -f init.ldif
(というかこれを使えば初期PW設定してなくてもとりあえずのアクセスはできるのでは??

で、ここから自分のデータをLDAPに登録していく。

 

/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

これがDBの構成ファイルを指示してるっぽい。

(それにしてもファイル名が変で扱いづらい…なんとかなんないのか…)

 

でも、ファイル内容を鑑みるに、以下のファイルを初期設定しないといけないっぽい。

(1) cn=schema.ldif(スキーマを変更するなら)

(2) olcDatabase={1}monitor.ldif(モニタ設定)

(3) olcDatabase={2}bdb.ldif(本命)

 

とりあえず、(3)。

以下の内容のファイルを作成

----------------------------------------------------------------------------------------------------------------

dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=hogehoge,dc=ac,dc=jp

dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=hogehoge,dc=ac,dc=jp

----------------------------------------------------------------------------------------------------------------

これを以下のコマンドで流し込み。

> ldapmodify -Y EXTERNAL -H ldapi:// -f (ファイル名)

 

すると、ルートのサフィックスとDNが変更されるはず。

 

はまったポイント:

dn: olcDatabase={2}bdb,cn=config

↑の行の記述が、

dn: olcDatabase={2}bdb.ldif,cn=config

こんな感じにファイル名が入ってるとエラーになる。

検索はこんなかんじ

> ldapsearch -x -D 'cn=Manager,dc=hogehoge,dc=ac,dc=jp' -w fugafuga -b 'dc=hogehoge,dc=ac,dc=jp'

 
ついでにアクセスコントロール設定も追加

 

 

んー。ということはこれらのファイルはldap設定ファイルの直接の

はらわたではないのかも…

 

やっぱり本体は

/var/lib/ldap/

の中なのかな…?

 

とりあえず初期設定はOK?

 

あとはバックアップデータを流し込んでみます。

では!

 

(また、epelでインストール可能なldapviというツールを使えば、

設定ファイルを直接編集することも可能)

 

2013/3/13追記

DB_CONFIGがないとパフォーマンスが落ちるらしい…という警告が出る。

> cp /usr/share/openldap-servers/DB_CONFIG.example DB_CONFIG

とし、ldap再起動で解消。

 

参考リンク

http://nwing.knowd.co.jp/yamazaki/?q=node/323