2013年3月9日土曜日

SubversionのBasic認証にActive Directoryを利用


SubversionのBasic認証にActive Directoryを利用する方法です。
Active Directoryに登録しているユーザの詳細は前回記事を参照ください。

【ADサーバ】
OS: Windows Server 2008 R2(64-bit)
Domain Name: kuitan.net
IP: 192.168.77.125
⇒AD登録ユーザ:
 dn: CN=aduser01,CN=Users,DC=kuitan,DC=net
 dn: CN=puser01,OU=person,DC=kuitan,DC=net

【Webサーバ】
OS: CentOS 6.3(64-bit)
Apache: 2.2.15
Subversion: 1.6.11
IP: 192.168.77.147


■SVNリポジトリ作成
[root@web03 ~]# mkdir /opt/svn [root@web03 ~]# mkdir /opt/svn/users [root@web03 ~]# mkdir /opt/svn/person [root@web03 ~]# svnadmin create /opt/svn/users/project01 [root@web03 ~]# svnadmin create /opt/svn/users/project02 [root@web03 ~]# svnadmin create /opt/svn/person/project03 [root@web03 ~]# svnadmin create /opt/svn/person/project04 [root@web03 ~]# chown -R apache: /opt/svn

■subversion.conf追加設定
[root@web03 ~]# vi /etc/httpd/conf.d/subversion.conf [root@web03 ~]# tail -27 /etc/httpd/conf.d/subversion.conf <Location /users> DAV svn SVNListParentPath on SVNParentPath /opt/svn/users AuthType Basic AuthName "Subversion Authentication Users" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://192.168.77.125:389/cn=users,dc=kuitan,dc=net?sAMAccountName?sub?(objectClass=*) AuthLDAPBindDN Administrator@kuitan.net AuthLDAPBindPassword xxxxxxxx Require valid-user </Location> <Location /person> DAV svn SVNListParentPath on SVNParentPath /opt/svn/person AuthType Basic AuthName "Subversion Authentication Person" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://192.168.77.125:389/ou=person,dc=kuitan,dc=net?sAMAccountName?sub?(objectClass=*) AuthLDAPBindDN Administrator@kuitan.net AuthLDAPBindPassword xxxxxxxx Require valid-user </Location> [root@web03 ~]# /etc/init.d/httpd restart
※表示の都合上タグを"<"と">"で記載。
※<Location /users>の設定ではcn=usersに属するユーザがアクセスできるリポジトリを定義している。
※<Location /person>の設定ではou=personに属するユーザがアクセスできるリポジトリを定義している。

■ブラウザからアクセス
https://192.168.77.147/users/
Basic認証の画面が表示され、ADに登録したユーザ(cn=usersに属するユーザ)でアクセスする。



その後、https://192.168.77.147/person/にアクセスすると再びBasic認証を要求される。
ou=personに属するユーザでアクセスする。


※ちなみに、上記を行うだけならWebサーバ側にopenldap-clientsパッケージは不要。

2013年3月8日金曜日

Windows Server 2008 R2 の Active Directory を ldapsearchで検索


Windows Server 2008 R2 の Active Directory 上のユーザをLinuxのldapsearchコマンドを利用して検索できるか確認します。
LinuxサーバのSubversionの認証にADを利用するための事前検証という位置付けです。

【ADサーバ】
OS: Windows Server 2008 R2(64-bit)
Domain Name: kuitan.net
IP: 192.168.77.125

【Linuxサーバ】
OS: CentOS 6.3(64-bit)
openldap-clients: 2.4.23
IP: 192.168.77.147


■Active Directoryにユーザ作成

↑標準的な場所にaduser01~05を作成。

↑組織単位(OU)として「person」を作成し、ObjectClassにInetOrgPersonを指定したユーザpuser01~02を作成。

■openldap-clientsインストール
※ldapsearchコマンドを利用するにはopenldap-clientsパッケージが必要。
[root@cent63 ~]# yum install openldap-clients ====================================================================== Package Arch Version Repository Size ====================================================================== Installing: openldap-clients x86_64 2.4.23-26.el6_3.2 updates 164 k Updating for dependencies: openldap x86_64 2.4.23-26.el6_3.2 updates 262 k Transaction Summary ====================================================================== Install 1 Package(s) Upgrade 1 Package(s) (以下省略)

■ldapsearchコマンドで接続確認
[root@cent63 ~]# ldapsearch -x -D "cn=administrator,dc=kuitan,dc=net" -w xxxxxxxx -h 192.168.77.125 -b "cn=users,dc=kuitan,dc=net" "(objectclass=*)" "sAMAccountName=username" ldap_bind: Invalid credentials (49) additional info: 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db0 [root@cent63 ~]#
→接続失敗。
Invalid credentials (49) は、ユーザIDやパスワードが間違っているとよく出るエラー。らしい。

今回はDNの指定が間違っていたので修正して再検索
[root@cent63 ~]# ldapsearch -x -D "cn=administrator,cn=users,dc=kuitan,dc=net" -w xxxxxxxx -h 192.168.77.125 -b "cn=users,dc=kuitan,dc=net" "(objectclass=*)" "sAMAccountName=username" (中略) # aduser04, Users, kuitan.net dn: CN=aduser04,CN=Users,DC=kuitan,DC=net # aduser05, Users, kuitan.net dn: CN=aduser05,CN=Users,DC=kuitan,DC=net # Administrator, Users, kuitan.net dn: CN=Administrator,CN=Users,DC=kuitan,DC=net # Guest, Users, kuitan.net dn: CN=Guest,CN=Users,DC=kuitan,DC=net # search result search: 2 result: 0 Success # numResponses: 26 # numEntries: 25 [root@cent63 ~]#

DNの指定は、「ユーザ@ドメイン」としてもよい。
※OU=personの下のユーザを検索。
[root@cent63 ~]# ldapsearch -x -D "administrator@kuitan.net" -w xxxxxxxx -h 192.168.77.125 -b "ou=person,dc=kuitan,dc=net" "(objectclass=*)" "sAMAccountName=username" # extended LDIF # # LDAPv3 # base with scope subtree # filter: (objectclass=*) # requesting: sAMAccountName=username # # person, kuitan.net dn: OU=person,DC=kuitan,DC=net # puser01, person, kuitan.net dn: CN=puser01,OU=person,DC=kuitan,DC=net # puser02, person, kuitan.net dn: CN=puser02,OU=person,DC=kuitan,DC=net # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3 [root@cent63 ~]#
※ちなみに、ldapsearchで検索するためにcent63サーバをADのドメインに参加させる必要はありません。

2013年3月1日金曜日

CentOSにphpLDAPadminをインストールしてOpenLDAPを管理

OpenLDAPをブラウザから管理するツールとしてphpLDAPadminが便利そうなのでインストールしてみます。
OpenLDAPサーバとは別のWebサーバにphpLDAPadminにインストールしてOpenLDAPを管理する方式を考えています。

【OpenLDAPサーバ】
OS: CentOS 6.3(64-bit)
openldap-servers: 2.4.23
IP: 192.168.77.146

【Webサーバ】
OS: CentOS 6.3(64-bit)
Apache: 2.2.15
PHP: 5.3.3
phpLDAPadmin: 1.2.3
IP: 192.168.77.147


■PHPに必要なモジュールの確認

[root@web03 ~]# rpm -qa | grep php php-pdo-5.3.3-3.el6_2.8.x86_64 php-cli-5.3.3-3.el6_2.8.x86_64 php-pear-1.9.4-4.el6.noarch php-gd-5.3.3-3.el6_2.8.x86_64 php-common-5.3.3-3.el6_2.8.x86_64 php-xml-5.3.3-3.el6_2.8.x86_64 php-5.3.3-3.el6_2.8.x86_64 [root@web03 ~]#
↑php-ldapがない。

■php-ldapインストール

==================================================================== Package Arch Version Repository Size ==================================================================== Installing: php-ldap x86_64 5.3.3-14.el6_3 updates 36 k Updating for dependencies: php x86_64 5.3.3-14.el6_3 updates 1.1 M php-cli x86_64 5.3.3-14.el6_3 updates 2.2 M php-common x86_64 5.3.3-14.el6_3 updates 523 k php-gd x86_64 5.3.3-14.el6_3 updates 104 k php-pdo x86_64 5.3.3-14.el6_3 updates 73 k php-xml x86_64 5.3.3-14.el6_3 updates 101 k Transaction Summary ==================================================================== Install 1 Package(s) Upgrade 6 Package(s) Total download size: 4.1 M Is this ok [y/N]: y (以下省略) [root@web03 ~]# rpm -qa | grep php php-5.3.3-14.el6_3.x86_64 php-gd-5.3.3-14.el6_3.x86_64 php-pear-1.9.4-4.el6.noarch php-common-5.3.3-14.el6_3.x86_64 php-xml-5.3.3-14.el6_3.x86_64 php-ldap-5.3.3-14.el6_3.x86_64 php-pdo-5.3.3-14.el6_3.x86_64 php-cli-5.3.3-14.el6_3.x86_64 [root@web03 ~]#

■ブラウザでPHPモジュール確認

[root@web03 ~]# echo "<?php phpinfo(); ?>" > /var/www/html/test.php
http://192.168.77.147/test.php にアクセス。

↑ldapの項目があることを確認。

■EPELをyumリポジトリに追加

[root@web03 ~]# wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 [root@web03 ~]# rpm --import RPM-GPG-KEY-EPEL-6 [root@web03 ~]# vi /etc/yum.repos.d/epel.repo [root@web03 ~]# cat /etc/yum.repos.d/epel.repo [epel] name=EPEL RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/ gpgcheck=1 enabled=0 [root@web03 ~]#
※phpLDAPadminをyumでインストールするにはEPELリポジトリが必要。

■phpLDAPadminインストール

[root@web03 ~]# yum --enablerepo=epel install phpldapadmin ====================================================================== Package Arch Version Repository Size ====================================================================== Installing: phpldapadmin noarch 1.2.3-1.el6 epel 806 k Transaction Summary ====================================================================== Install 1 Package(s) Total download size: 806 k Installed size: 2.4 M Is this ok [y/N]: y (以下省略)

■config.php設定

[root@web03 ~]# cp -p /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.org [root@web03 ~]# vi /etc/phpldapadmin/config.php 299行目あたり追記 $servers->setValue('server','host','192.168.77.146'); 399行目あたり、uid→dnに変更 $servers->setValue('login','attr','uid'); ↓ $servers->setValue('login','attr','dn');
※上記以外の設定を下手に行うと画面が表示されない。

■phpldapadmin.conf設定

[root@web03 ~]# cp -p /etc/httpd/conf.d/phpldapadmin.conf /etc/httpd/conf.d/phpldapadmin.conf.org [root@web03 ~]# vi /etc/httpd/conf.d/phpldapadmin.conf [root@web03 ~]# cat /etc/httpd/conf.d/phpldapadmin.conf # # Web-based tool for managing LDAP servers # Alias /phpldapadmin /usr/share/phpldapadmin/htdocs Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> Order Deny,Allow Deny from all Allow from 127.0.0.1 192.168.77.0/24 ←アクセス許可IP追加 Allow from ::1 </Directory> [root@web03 ~]# [root@web03 ~]# /etc/init.d/httpd restart
※表示の都合上タグを"<"と">"で記載。

■ブラウザで接続

https://192.168.77.147/ldapadmin に接続し先日作成したOpenLDAPの情報を確認する。


↑管理者でログインする場合のログインDNは、「cn=Manager,dc=open_ldap,dc=com」

※登録したユーザでログインも可能。ログインDNは、「cn=en2011002,ou=unit01,dc=open_ldap,dc=com」等。自分以外のエントリの情報も確認できるが自分を含め情報の変更は何もできない。(権限がない。この辺は設定でどうにかなりそうだが…。また次回)

2013年2月25日月曜日

AWS(EC2) CentOS 6.3を日本語化

前回、AWS上のEC2(CentOS6.3)にGUIパッケージをインストールしてVNCで接続しましたが、
どうせなら画面表示を日本語化してみたいということで、その手順をまとめます。


■OS日本語化に必要なパッケージインストール
[root@centos63 ~]# yum groupinstall "Japanese Support"
=========================================================================
 Package                    Arch       Version            Repository Size
=========================================================================
Installing:
 ibus-anthy                 x86_64     1.2.1-3.el6        base      133 k
 ipa-gothic-fonts           noarch     003.02-4.2.el6     base      3.6 M
 ipa-mincho-fonts           noarch     003.02-3.1.el6     base      5.0 M
 ipa-pgothic-fonts          noarch     003.02-4.1.el6     base      3.6 M
 ipa-pmincho-fonts          noarch     003.02-3.1.el6     base      5.0 M
 man-pages-ja               noarch     20100115-5.el6     base      5.5 M
 vlgothic-fonts             noarch     20091202-2.el6     base      2.2 M
 vlgothic-p-fonts           noarch     20091202-2.el6     base      2.2 M
Installing for dependencies:
 anthy                      x86_64     9100h-10.1.el6     base      6.0 M
 ibus                       x86_64     1.3.4-6.el6        base      337 k
 ibus-gtk                   x86_64     1.3.4-6.el6        base       26 k
 ibus-libs                  x86_64     1.3.4-6.el6        base       98 k
 im-chooser                 x86_64     1.3.1-3.el6        base      144 k
 imsettings                 x86_64     0.108.0-3.6.el6    base      190 k
 imsettings-libs            x86_64     0.108.0-3.6.el6    base      103 k
 kasumi                     x86_64     2.5-1.1.el6        base       72 k
 libgxim                    x86_64     0.3.3-3.1.el6      base      126 k
 notify-python              x86_64     0.1.1-10.el6       base       26 k
 pyxdg                      noarch     0.18-1.el6         base       79 k
 vlgothic-fonts-common      noarch     20091202-2.el6     base       16 k

Transaction Summary
=========================================================================
Install      20 Package(s)

Total download size: 34 M
Installed size: 69 M
Is this ok [y/N]: y
(以下省略)

■OSの言語を日本語を設定し再起動
[root@centos63 ~]# vi /etc/sysconfig/i18n
[root@centos63 ~]# cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
[root@centos63 ~]#
[root@centos63 ~]# vi .bash_profile
[root@centos63 ~]# tail -1 .bash_profile
export LANG=ja_JP.UTF-8
[root@centos63 ~]#
[root@centos63 ~]# reboot

■VNCでサーバに接続しGUIを確認

意外にもあっさり日本語化成功。
標準フォルダの名前も一括して日本語に変更してくれるようです。ステキ。

2013年2月24日日曜日

AWS(EC2) CentOS 6.3をGUI化してVNCで接続

AWS上のEC2(CentOS)にGUIパッケージをインストールしてVNCで接続する手順です。
OracleDataBase等インストール時に、LinuxサーバだとしてもGUIがあれば便利です。
VNCサーバにはtigervnc-serverを利用します。
VNCクライアントにはRealVNCを利用します。

■構成情報
・OS:  CentOS6.3(64bit)
・tigervnc-server:  1.0.90
・RealVNC: 5.0.4


■GnomeGUIインストール

[root@centos63 ~]# yum groupinstall "X Window System" "GNOME Desktop Environment" "Desktop"
(中略)
Install     274 Package(s)
Upgrade       8 Package(s)

Total download size: 120 M
Is this ok [y/N]: y
(以下省略)
パッケージの数が膨大なのでそれなりに時間がかかります。

■VNCサーバインストール

[root@centos63 ~]# yum install tigervnc-server
==========================================================================
 Package             Arch    Version                         Repository  Size
==========================================================================
Installing:
 tigervnc-server     x86_64  1.0.90-0.17.20110314svn4359.el6 base       1.1 M
Installing for dependencies:
 xorg-x11-fonts-misc noarch  7.2-9.1.el6                     base       5.8 M

Transaction Summary
==========================================================================
Install       2 Package(s)
(以下省略)

■ユーザ作成(必要に応じて)

[root@centos63 ~]# useradd operation
[root@centos63 ~]# passwd operation

■VNCサーバ設定

設定ファイルvncserversに下記3行を追記、&自動起動設定
[root@centos63 ~]# cp -p /etc/sysconfig/vncservers /etc/sysconfig/vncservers.org
[root@centos63 ~]# vi /etc/sysconfig/vncservers
[root@centos63 ~]# tail -3 /etc/sysconfig/vncservers
VNCSERVERS="1:operation 2:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten"
[root@centos63 ~]#
[root@centos63 ~]# chkconfig vncserver on
[root@centos63 ~]# chkconfig --list vncserver
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@centos63 ~]#

■VNC接続ユーザパスワード設定

[root@centos63 ~]# vncpasswd
Password:
Verify:
[root@centos63 ~]# su - operation
[operation@centos63 ~]$ vncpasswd
Password:
Verify:
[operation@centos63 ~]$

■VNCサーバ起動

[root@centos63 ~]# /etc/init.d/vncserver start
Starting VNC server: 1:operation xauth:  creating new authority file /home/operation/.Xauthority

New 'centos63:1 (operation)' desktop is centos63:1

Creating default startup script /home/operation/.vnc/xstartup
Starting applications specified in /home/operation/.vnc/xstartup
Log file is /home/operation/.vnc/centos63:1.log

2:root xauth:  creating new authority file /root/.Xauthority

New 'centos63:2 (root)' desktop is centos63:2

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/centos63:2.log

                                                           [  OK  ]
[root@centos63 ~]#

■VNC利用時のデスクトップをGNOMEに設定

[root@centos63 ~]# vi .vnc/xstartup
[root@centos63 ~]# tail -2 .vnc/xstartup
# twm & ←コメントアウト
exec gnome-session & ←追記
[root@centos63 ~]#

[root@centos63 ~]# su - operation
[operation@centos63 ~]$ vi .vnc/xstartup
[operation@centos63 ~]$ tail -2 .vnc/xstartup
# twm & ←コメントアウト
exec gnome-session & ←追記
[operation@centos63 ~]$
[operation@centos63 ~]$ exit
logout
[root@centos63 ~]# /etc/init.d/vncserver restart
Shutting down VNC server: 1:operation 2:root               [  OK  ]
Starting VNC server: 1:operation
New 'centos63:1 (operation)' desktop is centos63:1

Starting applications specified in /home/operation/.vnc/xstartup
Log file is /home/operation/.vnc/centos63:1.log

2:root
New 'centos63:2 (root)' desktop is centos63:2

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/centos63:2.log

                                                           [  OK  ]
[root@centos63 ~]#

■RealVNCダウンロード

http://www.realvnc.com/download/vnc/latest/
VNC-5.0.4-Windows.exe(約7MB)

■RealVNCインストール


インストールはほぼヴィザードに従って進めるだけで完了できるので省略しますが、今回はVNCビューワがあればよいのでサーバはインストールしません。

■サーバに接続


↑rootユーザ以外での接続が推奨ですが、rootユーザでも接続できます。


↑接続方式が暗号されていないので警告が出ていますがとりあえず無視。


↑vncpasswdで設定したパスワードで接続。


↑rootユーザで接続しようとしているとの警告が出る。


↑回線速度によってカラーモードのビット数が落とされる場合があります。
※時間がたつといきなりフルカラーになったりします。

最後までお読みいただきありがとうございます。この情報が何かのお役にたてれば幸いです。m(_ _)m