<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4139243726709417293</id><updated>2011-11-28T09:39:06.328+09:00</updated><title type='text'>Yoshito Komatsu's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ykomatsu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ykomatsu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ykomatsu</name><uri>http://www.blogger.com/profile/01661090783471044835</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4139243726709417293.post-2718225530789184430</id><published>2007-09-06T23:06:00.001+09:00</published><updated>2007-09-06T23:54:10.634+09:00</updated><title type='text'>OpenDSをSMFで管理する方法</title><content type='html'>&lt;p&gt;Solaris 10ではrcスクリプトではなくSMFでサービスを管理することができます。
そこで今回は、OpenDSをSMFで管理する方法を説明します。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;前準備
&lt;p&gt;OpenDSをセットアップして、bin/start-ds、bin/stop-dsでそれぞれ起動、停止が
できる状態にしてください。なお、以下の例ではインストールディレクトリを
/opt/OpenDSとしています。他のディレクトリにインストールした場合は、
/opt/OpenDSをインストールディレクトリに適宜読み替えてください。&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;OpenDS用のユーザとグループの作成
&lt;p&gt;OpenDSを起動するために使うopendsユーザとopendsグループを作成します。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# groupadd opends&lt;br /&gt;
# useradd -g opends -d / opends&lt;/samp&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;マニフェストファイルとメソッドスクリプトの配置
&lt;p&gt;マニフェストファイルとメソッドスクリプトを以下のリンクからダウンロードし、
適切なディレクトリに配置します。メソッドスクリプトは実行を
許可する必要があります。&lt;/p&gt;

&lt;p&gt;マニフェストファイル&lt;br /&gt;
&lt;a href="http://www.akaumigame.org/resource/org-opends-ds.xml"&gt;http://www.akaumigame.org/resource/org-opends-ds.xml&lt;/a&gt;&lt;br /&gt;
配置ディレクトリ： /var/svc/manifest/network&lt;/p&gt;
&lt;p&gt;メソッドスクリプト&lt;br /&gt;
&lt;a href="http://www.akaumigame.org/resource/svc-ds"&gt;http://www.akaumigame.org/resource/svc-ds&lt;/a&gt;&lt;br /&gt;
配置ディレクトリ： /opt/OpenDS/lib/svc/method&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# cp org-opends-ds.xml /var/svc/manifest/network&lt;br /&gt;
# mkdir -p /opt/OpenDS/lib/svc/method&lt;br /&gt;
# cp svc-ds /opt/OpenDS/lib/svc/method&lt;br /&gt;
# chmod a+x /opt/OpenDS/lib/svc/method/svc-ds&lt;/samp&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;マニフェストファイルのインポート
&lt;p&gt;マニフェストファイルをインポートします。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# svccfg import /var/svc/manifest/network/org-opends-ds.xml&lt;/samp&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;マニフェストの編集
&lt;p&gt;OpenDSを/opt/OpenDS以外のディレクトリにインストールした場合は、
マニフェストを編集する必要があります。OpenDSを/opt/OpenDSにインストールした
場合には変更の必要はありません。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# svccfg -s opends/ds setprop 'config/instance_home=インストールディレクトリ'&lt;/samp&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;インストールディレクトリの所有ユーザと所有グループの変更
&lt;p&gt;インストールディレクトリをopendsユーザとopendsグループの所有にします。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# chown -R opends:opends /opt/OpenDS&lt;/samp&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;以上で作業は完了です。&lt;/p&gt;

&lt;p&gt;OpenDSを起動するには以下の文を入力します。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# svcadm enable opends/ds&lt;/samp&gt;&lt;/p&gt;

&lt;p&gt;OpenDSを停止するには以下の文を入力します。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;# svcadm disable opends/ds&lt;/samp&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139243726709417293-2718225530789184430?l=ykomatsu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ykomatsu.blogspot.com/feeds/2718225530789184430/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139243726709417293&amp;postID=2718225530789184430' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/2718225530789184430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/2718225530789184430'/><link rel='alternate' type='text/html' href='http://ykomatsu.blogspot.com/2007/09/opendssmf_06.html' title='OpenDSをSMFで管理する方法'/><author><name>ykomatsu</name><uri>http://www.blogger.com/profile/01661090783471044835</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139243726709417293.post-4214516551109879551</id><published>2007-08-22T00:02:00.000+09:00</published><updated>2007-08-22T00:16:35.283+09:00</updated><title type='text'>Cyrus SASLライブラリのLDAPDBプラグインとOpenDS</title><content type='html'>&lt;p&gt;UNIX-like OSでよく使われているSASLライブラリの一つにCyrus SASLライブラリが
あります。Cyrus SASLライブラリにはauxpropサービスという仕組みがあって、
auxpropプラグインを使用することでSASLで利用するパスワードの取得方法を変更する
ことができます。LDAPDBプラグインもauxpropプラグインの一つで、
LDAPDBプラグインを利用することで、ディレクトリサーバからパスワードを取得し、
SASLで利用することができるようになります。そこで、このLDAPDBプラグインで
OpenDSからパスワードを取得しようと考えるわけですが、通常の手順で
LDAPDBプラグインを設定すると、正しいパスワードを入力しても認証に失敗して
しまいます。&lt;/p&gt;

&lt;p&gt;LDAPDBプラグインは主な連携先としてOpenLDAPを想定しているように思われます。
そして、OpenDSとOpenLDAPとではクリアテキストのパスワードの表現方法に少し違いが
あります。&lt;/p&gt;

&lt;p&gt;OpenLDAP&lt;br /&gt;
&lt;samp&gt;userPassword: password&lt;/samp&gt;&lt;/p&gt;

&lt;p&gt;OpenDS&lt;br /&gt;
&lt;samp&gt;userPassword: {CLEAR}password&lt;/samp&gt;&lt;/p&gt;

&lt;p&gt;このように、OpenDSはクリアテキストのパスワードを表現するときにパスワードの
先頭に文字列{CLEAR}を付けるのですが、OpenLDAPでは何も付けません。そして、
LDAPDBプラグインはこのOpenLDAPの何も付けないという挙動を前提に処理を行うため、
OpenDSと連携するとパスワードに不要な文字列{CLEAR}が付いた文字列がパスワードと
なってしまいます。そのため、正しいパスワードを入力しても認証に失敗する
わけです。ちなみに、正しいパスワードの先頭に文字列{CLEAR}を付けた文字列を
入力すると認証に成功します。&lt;/p&gt;

&lt;p&gt;この問題に対処する方法の一つとして、ディレクトリサーバから取得した
パスワードの先頭から指定した文字列を取り除くCyrus SASLライブラリ用のパッチを
作りました。Cyrus SASLライブラリ2.1.21と2.1.22用です。&lt;/p&gt;

&lt;p&gt;動作は以下のとおりです。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ldapdb_password_prefixに文字列が設定されている場合&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;ディレクトリサーバから取得したパスワードの先頭にldapdb_password_prefixと
同じ文字列があれば、それを取り除いた文字列をパスワードとして渡す&lt;/li&gt;
&lt;li&gt;ディレクトリサーバから取得したパスワードの先頭にldapdb_password_prefixと
同じ文字列がなければ、パスワードの取得に失敗する&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;ldapdb_password_prefixが設定されていない場合&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;パッチを当てない状態と同じ処理をする&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;

&lt;p&gt;パッチを適用して、Cyrus SASLライブラリの設定ファイルに以下の設定を
追加すると、OpenDSから正しくパスワードを取得することができます。&lt;/p&gt;

&lt;p&gt;&lt;samp&gt;ldapdb_password_prefix: {CLEAR}&lt;/samp&gt;&lt;/p&gt;

&lt;p&gt;cyrus-sasl-ldapdb.patch&lt;br /&gt;
&lt;a href="http://www.akaumigame.org/resource/cyrus-sasl-ldapdb.patch"&gt;http://www.akaumigame.org/resource/cyrus-sasl-ldapdb.patch&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139243726709417293-4214516551109879551?l=ykomatsu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ykomatsu.blogspot.com/feeds/4214516551109879551/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139243726709417293&amp;postID=4214516551109879551' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/4214516551109879551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/4214516551109879551'/><link rel='alternate' type='text/html' href='http://ykomatsu.blogspot.com/2007/08/cyrus-saslldapdbopends.html' title='Cyrus SASLライブラリのLDAPDBプラグインとOpenDS'/><author><name>ykomatsu</name><uri>http://www.blogger.com/profile/01661090783471044835</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139243726709417293.post-7615149233427270055</id><published>2007-08-20T01:08:00.000+09:00</published><updated>2007-08-22T22:27:17.412+09:00</updated><title type='text'>OpenDSを非ルートユーザで実行する</title><content type='html'>&lt;p&gt;OpenDSはルートユーザでも非ルートユーザでもどちらでも実行することが
できます。ただ、特権を持たない非ルートユーザで実行した場合には特権ポートで
待ち受けることができません。では単純にルートユーザで実行するのがいいのかと
いえば、それにはある程度のセキュリティリスクが伴います。OpenDSは
Pure Javaアプリケーションであるがゆえに、実行中に特権の放棄などの処理を
行うことができません。そのため、ルートユーザで実行されたOpenDSはずっと
ルートユーザの権限で動作することになります。これは、OpenDSが侵入者に
乗っ取られた場合などを考えるとあまり好ましい状態ではありません。&lt;/p&gt;

&lt;p&gt;ということで、OpenDSを非ルートユーザで実行したいけど特権ポートで
待ち受けたいと思ったときに参考になるのが以下のページです。&lt;/p&gt;

&lt;p&gt;Running the Server As a Non-Root User&lt;br /&gt;
&lt;a href="https://www.opends.org/wiki/page/RunningTheServerAsANonRootUser"&gt;https://www.opends.org/wiki/page/RunningTheServerAsANonRootUser&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;簡単にまとめると以下のようになります。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;そもそも本当に特権ポートで待ち受けないといけないのかを考える&lt;/li&gt;
&lt;li&gt;それでも特権ポートで待ち受けたい場合&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Solaris 10の場合は特権を細かく制御できるので、net_privaddr特権を与えた
非ルートユーザを作って、その非ルートユーザで実行する&lt;/li&gt;
&lt;li&gt;そういった仕組みがないOSの場合は非特権ポートで待ち受けて、
ディレクトリプロキシで中継するかパケットフィルタでリダイレクトする&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;

&lt;p&gt;上のページを見て思ったのですが、ディレクトリサーバを特権ポートで
待ち受けさせる必要がある状況というのは意外と少ないのかも知れません。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139243726709417293-7615149233427270055?l=ykomatsu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ykomatsu.blogspot.com/feeds/7615149233427270055/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139243726709417293&amp;postID=7615149233427270055' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/7615149233427270055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139243726709417293/posts/default/7615149233427270055'/><link rel='alternate' type='text/html' href='http://ykomatsu.blogspot.com/2007/08/opends.html' title='OpenDSを非ルートユーザで実行する'/><author><name>ykomatsu</name><uri>http://www.blogger.com/profile/01661090783471044835</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
