#!/bin/bash FILE_hostname=/etc/hostname FILE_hosts=/etc/hosts FILE_interfaces=/etc/network/interfaces FILE_dns=/etc/resolvconf/resolv.conf.d/base ORGNAME=ubuntu-16-04 # DOMAIN_NAMEにはドメイン名を指定する DOMAIN_NAME=osarusystem.com # ホスト名の設定 cat $FILE_hostname | sed s/$ORGNAME/$1.$DOMAIN_NAME/g > tmp mv tmp $FILE_hostname # 静的なホスト名の登録 cat $FILE_hosts | sed s/$ORGNAME/$1.$DOMAIN_NAME\ $1/g > tmp mv tmp $FILE_hosts # IPアドレスの静的割り当て cat $FILE_interfaces | sed s/dhcp/static/g > tmp echo "address $2" >> tmp echo "network ネットワークアドレス" >> tmp echo "netmask サブネットマスク" >> tmp echo "broadcast ブロードキャストアドレス" >> tmp echo "gateway デフォルトゲートウェイアドレス" >> tmp mv tmp $FILE_interfaces # DNSサーバーの設定 echo "nameserver DNSサーバーのアドレス" > tmp mv tmp $FILE_dns
Xen環境domUにLDAP認証システムの構築
作成日 | : | 2016/08/07 |
---|---|---|
最終更新日 | : | 2020/07/05 |
Xen環境domUにLDAP認証システムの構築
作成日 | : | 2016/08/07 |
---|---|---|
最終更新日 | : | 2020/07/05 |
概要
先日作成したXen環境のdomUをLDAPサーバーにします。 LinuxディストリビューションにはUbuntu 16.04を用いました。 LDAPサーバーとしてはOpenLDAPを用いることにします。
下準備
本文章内では、LDAPサーバーを構築したdomUのホスト名をldap-serverとし、FQDNをldap-server.osarusystem.comであるとします。
Ubuntuのslapd(OpenLDAP)パッケージはInstall時にホスト名を元に初期設定を行います。 Ubuntuのインストール時にホスト名にFQDNを指定してもドメイン名は削除されてしまうようなので手動で設定します。 また、サーバーとして運用するには固定のIPアドレスを設定した方が都合が良いので静的に設定します。
Langurの場合はdomUを簡単に構築するためにホスト名に「ubuntu-16-04」と名付けたHDDイメージを用意しているので、 domUの初期設定をかんたんに行えるよう以下のシェルスクリプトを作成しました。第1引数にはホスト名を、第2引数には IPアドレスを指定します。日本語で記載している箇所は環境に合わせた設定を行います。
LDAPサーバーの構築
まず、LDAPサーバーを構築します。
OpenLDAPのインストール
aptでインストールします。
sudo apt-get install slapd ldap-utils
途中でInstallを継続してよいか聞かれるので「y」を入力します。 また、管理用のパスワードの入力を求められるので入力します。
管理構造の作成
LDAPの設定をするときにはLDAP Data Interchange Format(LDIF)ファイルを作成して反映するのが一般的なようです。 UNIX系のログイン情報を管理する場合peopleとgroupsという名前の管理構造を作成します。
peopleを追加する場合のLDIFファイルが以下になります。ou: peopleの後に改行が必要な点が注意点です。 peapleにはユーザーを紐付けることになります。
dn: ou=people,dc=osarusystem,dc=com objectClass: organizationalUnit ou: people
上記をpeople.ldifというファイル名で保存し、次のコマンドを発行します。 パスワードの入力を求められるので、OpenLDAPのインストール時に入力した管理用パスワードを入力します。
$ ldapadd -x -D cn=admin,dc=osarusystem,dc=com -W -f people.ldif Enter LDAP Password: adding new entry "ou=people,dc=osarusystem,dc=com" $
同様にgroupsを追加します。 groupsにはグループを紐付けることになります。
dn: ou=groups,dc=osarusystem,dc=com objectClass: organizationalUnit ou: groups
groups.ldifというファイル名で保存し、次のコマンドを発行します。 パスワードの入力を求められるので、OpenLDAPのインストール時に入力した管理用パスワードを入力します。
$ ldapadd -x -D cn=admin,dc=osarusystem,dc=com -W -f groups.ldif Enter LDAP Password: adding new entry "ou=groups,dc=osarusystem,dc=com" $
ユーザーの作成
作成した管理構造を用いてユーザーを追加します。 先ほどと同様にLDIFファイルを作成して登録します。
dn: uid=langur,ou=people,dc=osarusystem,dc=com objectClass: inetOrgPerson objectClass: posixAccount uid: langur sn: Xiao givenName: Langur cn: Langur Xiao displayName: Langur Xiao uidNumber: 2001 gidNumber: 2000 loginShell: /bin/bash homeDirectory: /home/langur
people_langur.ldifというファイル名で保存し、次のコマンドを発行します。 パスワードの入力を求められるので、OpenLDAPのインストール時に入力した管理用パスワードを入力します。
$ ldapadd -x -D cn=admin,dc=osarusystem,dc=com -W -f people_langur.ldif Enter LDAP Password: adding new entry "uid=langur,ou=people,dc=osarusystem,dc=com" $
ユーザーを複数追加する場合は上記を繰り返します。
ユーザーパスワードの設定
ユーザーのパスワードを設定するにはldappasswdコマンドを使用します。 uid=の箇所をパスワードを変更するuidに変更します。
$ ldappasswd -x -D cn=admin,dc=osarusystem,dc=com -W -S uid=langur,ou=people,dc=osarusystem,dc=com New password: Re-enter new password: Enter LDAP Password: $
グループの作成
次にグループを登録します。primatesというグループを追加する例を記載します。 グループに所属するユーザーを追加するときはmemberUidを複数記載します。 例えば、langurの他にmacacaというユーザーもprimatesグループに属するとして設定します。 次のLDIFファイルを作成します。
dn: cn=primates,ou=groups,dc=osarusystem,dc=com objectclass: posixGroup cn: primates gidNumber: 2000 memberUid: langur memberUid: macaca
groups_primates.ldifというファイル名で保存し、次のコマンドを発行します。 パスワードの入力を求められるので、OpenLDAPのインストール時に入力した管理用パスワードを入力します。
$ ldapadd -x -D cn=admin,dc=osarusystem,dc=com -W -f groups_primates.ldif Enter LDAP Password: adding new entry "uid=primates,ou=people,dc=osarusystem,dc=com" $
グループを複数追加する場合は上記を繰り返します。
LDAPクライアントの設定
最低限のLDAPサーバーの設定ができたので、LDAPクライアントを設定して認証します。 下準備 の項目と同様のことを行います。 LDAPクライアントのホスト名はldap-clientとし、FQDNはldap-client.osarusystem.comであるとします。
LDAP認証の設定
aptでインストールします。
sudo apt-get install libnss-ldap
途中でInstallを継続してよいか聞かれるので「y」を入力します。 また、LDAPサーバーの設定を求められるので以下のように入力します。 FQDNを解決できない場合にはLDAPサーバーのIPアドレスを指定します。
ldap://ldap-server.osarusystem.com/
次にドメインを聞かれるので、次のように入力します。
dc=osarusystem,dc=com
LDAPの管理者の設定まではデフォルトの選択肢を選びます。 LDAPの管理者の設定は次のように入力します。
cn=admin,dc=osarusystem,dc=com
LDAPの管理用パスワードの入力を求められるのでLDAPサーバーで指定したものを入力する。
その後、プロンプトが戻ってくるので以下のコマンドを発行しLDAP認証を有効にします。
sudo auth-client-config -t nss -p lac_ldap sudo pam-auth-update
途中、PAMで有効にする項目が出てくるのでCreate home directory on loginにもチェックを入れます。
LDAPクライアントを入れた端末を再起動するとLDAP認証が通るようになっているはずです。