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 スキーマ追加
手順が複雑なのでメモ。
使用するスキーマファイルをダウンロードする。
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の判定をかけるなどの連携が可能となる。
スクリプト本体は、
raddb/example.pl をベースにする。
※小技?:
もし perl スクリプト中で mac アドレスなどを取得したい場合は
eap.conf の
copy_request_to_tunnel = yes
とする。と、各パラメータが inner-tunnel にコピーされる。
(どんなパラメータがコピーされるか、詳しいことろは調査中。)
authorize, authenticationなどの各関数が各フェイズに呼ばれる。
関数名をカスタマイズする場合は、
raddb/modules/perl
を編集する。
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
でワークスペースを指定する
で使う。
上記の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');
と書いて保存し、実行する。
そして、
にアクセスするとアプリケーションが実行される。
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