ASAPNET構築/LDAP

インストール

# yast2
    ldapcpplib
    ldapsmb
    openldap2
    openldap2-client
    openldap2-devel
    perl-ldap
    perl-ldap-ssl
    yast2-ldap
    yast2-ldap-client 
    yast2-ldap-server      を追加
    slappasswd
    New password:   <- パスワードを入力 (とりあえずルーパス)
    Re-enter new password:  <- 再入力
     出てきた文字列をどこかに保存

slapd.confの設定

  • suffix等のDN(Distinguished Name)は,"dc=hoge,dc=huga"のように記述する
  • cn(common name)は管理者の名前(ここではManager)
  • HOGEHOGEHOGEは前節で出てきたパスフレーズ
# vi /etc/openldap/slapd.conf
# include /etc/openldap/schema/rfc2307bis.schema              <-- コメントアウト
include /etc/openldap/schema/nis.schema

<<<<<========= snip =========>>>>>

suffix "dc=asap"
rootdn  "cn=Manager,dc=asap"
rootpw {SSHA}HOGEHOGEHOGE

<<<<<========= snip =========>>>>>

access to attrs=userPassword,userPKCS12
  # by * auth                                                 <-- コメントアウト
  by self write
  by dn="cn=Manager,dc=asap"
  by anonymous auth
  by * none

access to *
  # by * read                                                 <-- コメントアウト
  by dn="cn=Manager,dc=asap"
  by self write
  by * read
  • /etc/openldap/ldap.confの設定
BASE dc=asap
  • /etc/ldap.confの設定
base dc=asap
  • 起動
# /etc/init.d/ldap start
  • 自動起動設定
# chkconfig ldap on

LDAPエントリデータ作成

データをファイルから読み込ませると失敗する、、ので直接入力.

# ldapadd -h localhost -x -D  "cn=Manager,dc=asap" -W
Enter LDAP Password: <- 管理用パスワード   <Enter>
dn: dc=asap   <Enter>
objectClass: dcObject  <Enter>
objectclass: organization  <Enter>
o: asap Organization  <Enter>
dc: asap  <Enter>
ここで 「Ctrl」-「D」
adding new entry "dc=asap"
dn:cn=Manager,dc=asap   <Enter>
objectClass:organizationalRole   <Enter>
cn:Manager   <Enter>
ここで 「Ctrl」-「D」
adding new entry "cn=Manager,dc=asap"   <Enter>
dn:ou=People,dc=asap   <Enter>
objectClass:organizationalUnit   <Enter>
ou:People   <Enter>
ここで 「Ctrl」-「D」
adding new entry "ou=People,dc=asap"   <Enter>
dn:ou=Group,dc=asap   <Enter>
objectClass:organizationalUnit   <Enter>
ou:Group   <Enter>
ここで 「Ctrl」-「D」
adding new entry "ou=Group,dc=asap"   <Enter>
ここで 「Ctrl」-「D」で抜ける
  • 確認
# slapcat

OpenSSLによる証明書

openssl.cnfの編集

[ CA_default ] dir = /var/ssl

このへんを設定しておくと後が楽

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = JP
countryName_min                 = 2
countryName_max                 = 2
#stateOrProvinceName            = State or Province Name (full name)
#stateOrProvinceName_default    = Kanagawa
localityName                    = Locality Name (eg, city)
localityName_default            = Yokohama
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Keio University
# we can do this but it is not needed normally :-)
1.organizationName             = Second Organization  Name (eg, company)
1.organizationName_default     = Amano Lab, ASAP Group
organizationalUnitName         = Organizational Unit Name (eg, section)
organizationalUnitName_default = 
commonName                      = Common Name (eg, your name or your server's hostname)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 40

CA.plの編集

# cd /usr/share/ssl/misc
# cp CA.pl CA-hop.pl
$DAYS="-days 3650";
$REQ="openssl req $SSLEAY_CONFIG";
$CA="openssl ca $SSLEAY_CONFIG";
$VERIFY="openssl verify";
$X509="openssl x509";
$PKCS12="openssl pkcs12";

$CATOP="/var/ssl"; 
$CAKEY="cakey.pem";
$CACERT="cacert.pem";

CAの作成

# /usr/share/ssl/misc/CA-hop.pl -newca

CSRの作成

# /usr/share/ssl/misc/CA-hop.pl -newreq

署名

# /usr/share/ssl/misc/CA-hop.pl -sign
# cp /usr/share/ssl/misc/new * /var/ssl
 

LDAP設定ファイル編集

  • slapdデーモンの設定ファイル
# vi /etc/openldap/slapd.conf
TLSCACertificateFile /etc/pki/CA/cacert.pem
TLSCertificateFile /etc/pki/tls/certs/server.crt
TLSCertificateKeyFile /etc/pki/tls/private/server.key
  • LDAPの設定ファイル
# vi /etc/ldap.conf
tls_cacertdir  /etc/pki/tls/certs
tls_cacert  /etc/pki/tls/certs/server.crt
  • 以下をyesにしておかないとldaps://で認証できない
# vi /etc/sysconfig/openldap
OPENLDAP_START_LDAPS="yes"
  • LDAP再起動
# /etc/init.d/ldap restart
  • 確認
# ldapsearch -x -H "ldaps://localhost"
result: 0 Success とかが返ってくればOK

マイグレーション

ツールキット入手

  • ここからツールキットをゲット
# cd /tmp
# wget http://www.padl.com/download/MigrationTools.tgz
# cd /usr/lib/openldap
# tar zxvf /tmp/MigrationTools.tgz
# mv MigrationTools47 migration

altairより設定ファイルを持ってくる

# ssh altair
# cd /var/yp/src
# cp passwd ~nisikawa/asap/passwd
# cp group ~nisikawa/asap/group
# vi ~nisikawa/asap/passwd
 ASAP関連の人のみを残す
 homeDirectoryの項目は /home/hlab/hogehoge --> /home/asap4/hogehoge に変更
# vi ~nisikawa/asap/group
 ASAP人が関係するグループのみを残す
# for i in passwd group
> chown root:root $i
> chmod 600 $i
done
#exit 

マイグレーション

# mkdir /root/ldif
# cd /usr/lib/openldap/migration
# ./migrate_passwd.pl ~nisikawa/asap/passwd > /root/ldif/passwd.ldif
# ./migrate_group.pl ~nisikawa/asap/group > /root/ldif/group.ldif
# vi /root/ldif/passwd.ldif
# vi /root/ldif/group.ldif
   dc=padl,dc=com のところを dc=asap に書き換える
# ldapadd -h localhost -x -D "cn=Manager,dc=asap" -W -f passwd.ldif
# ldapadd -h localhost -x -D "cn=Manager,dc=asap" -W -f group.ldif

クライアントの設定

# yast2
# nss_ldap, pam_ldap, ldap_apacheなんとかをインストール
# Network Services > LDAP Client
    (x)    Use LDAP                  <--- チェックボックス
    Addresses of LDAP Servers: 192.168.4.1
    LDAP base DN: dc=asap
    [x]    LDAP TLS/SSL       <--- チェックボックス
# mkdir /etc/openldap/cacerts
# scp hop:/etc/pki/certs/cacert.pem /etc/openldap/cacerts/
# vi /etc/openldap/ldap.conf
   URI   ldap://192.168.4.1    を追加
# vi /etc/ldap.conf
   uri    ldap://192.168.4.1    を追加
   tls  checkpeer yes    <-- コメントアウトを外す
   tls_cacertfile /etc/openldap/cacerts/cacert.pem
   tls_cacertdir /etc/openldap/cacerts
# /etc/init.d/nscd restart

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-29 (木) 00:03:48