LoginSignup
0
0

私的サーバー構築日誌:LDAPサーバー OpenLDAP・SSSD

Posted at

能書き

私的サーバー構築日誌:仕切り直しからの自宅サーバー構築の続きです。

LDAPとSSSDの連携でログイン設定をする、その手順の確認です。以前もやりましたが、今回はクライアントマシン代わりにLXDコンテナを活用して、手軽に手順の確認だけ実施します。

目標

  • SSSDを利用したログイン
  • それをクライアントマシン代わりのLXDコンテナで実施
  • LDAPアクセスに必要な認証局を信頼

参考文献

前提

OpenLDAPのサーバーをDockerコンテナで立てる事を目指して、前回と前々回に記事を書きました。これらの作業が済んでいる事が前提になります。

過去記事

XubuntuなどにSSSDを仕込むのは、過去、実施した事があります。この手順を、今回はLXDコンテナで確認します。

その他

LXDコンテナにSSSDを設定

SSSD利用のクライアントマシンを別に立てる方法を模倣する為、少々回りくどい手順になります。

オレオレ認証局の公開鍵を用意

オレオレ認証局は既に作成しました以前確立した転送の手順に従って、必要なディレクトリに公開鍵を配置します。

サーバー側
sudo -u cert cp -p /home/cert/demoCA/pki/ca.crt /tmp/demoCA.crt
サーバー側
sudo chown transporter: /tmp/demoCA.crt
サーバー側
sudo -u transporter mv /tmp/demoCA.crt /srv/transport/publickey/

LXDコンテナ起動

LXDコンテナを立てます。ちょっとした悪戯で、タイムゾーンとロケールを日本向けに初期設定します。

サーバー側
lxc init images:ubuntu/jammy/cloud sssd-ldap --device eth0,ipv4.address=192.168.0.2

サーバー側
lxc config set sssd-ldap cloud-init.user-data="$(cat <<___
#cloud-config
timezone: Asia/Tokyo
locale: ja_JP.utf8
package_upgrade: true
___
)"

LXDコンテナ起動。

サーバー側
lxc start sssd-ldap

起動が終わるのを待ちます。

サーバー側
lxc exec sssd-ldap -- cloud-init status --wait

LXDコンテナの中へ入ります。

サーバー側
lxc shell sssd-ldap

オレオレ認証局を信頼

用意したオレオレ認証局の公開鍵を取得します。私のサーバーの名前はprimary.homeです。

コンテナ内
mkdir /usr/share/ca-certificates/demoCA
cd /usr/share/ca-certificates/demoCA
sftp transporter@primary.home
sftp
cd publickey
get demoCA.crt
rm demoCA.crt
exit

取得したオレオレ認証局の公開鍵を信頼します。

コンテナ内
chmod 644 demoCA.crt
echo demoCA/demoCA.crt >>/etc/ca-certificates.conf
update-ca-certificates

信頼できた事を確認しましょう。

コンテナ内
ls -l /etc/ssl/certs/ | grep demoCA
ls -l /etc/ssl/certs/ca-certificates.crt

SSSD設定

SSSD関連パッケージをインストールします。

コンテナ内
apt update
apt install -y sssd-ldap

/etc/sssd/sssd.confを作成し、パーミッションを0600、所有権をroot:rootにします。
なおLDAPサーバーはprimary.homeとします。

コンテナ内
cat <<___ >/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
domains = home

[domain/home]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://primary.home
cache_credentials = True
ldap_search_base = dc=home
ldap_default_bind_dn = cn=readonly,dc=home
___
chmod 600 /etc/sssd/sssd.conf

この/etc/sssd/sssd.confldap_default_authtokというパラメータを追記するとパスワードを平文で設定できます。権限がrootの600なのでそれでも良いような気がしますが、難読化するツールがあるようなので、それを使いましょう。

コンテナ内
apt install -y sssd-tools
コンテナ内
sss_obfuscate -d home

パスワード入力を2回要求されますので、それに従って入力すると、sssd.confに自動的に設定されます。

この後にSSSDサービスを開始する事を忘れないように。

コンテナ内
systemctl start sssd

起動を確認します。

コンテナ内
systemctl status sssd

mkhomedir設定

ホームディレクトリの自動作成を有効にします。

コンテナ内
pam-auth-update --enable mkhomedir

LXDコンテナにコンソールログイン

参考文献のLDAPへのユーザー登録手順に従っていると、ユーザーtaroでパスワードMa9H%6jgとなっています。これでログインできる事を確認します。

getentで確認

まずは疎通確認。

コンテナ内
getent passwd taro
id taro

下記のように表示されればOKです。

コンテナ内
# getent passwd taro
taro:*:10000:10000:taro:/home/taro:/bin/bash
# id taro
uid=10000(taro) gid=10000(taro) groups=10000(taro)

コンソールログイン

一度、LXDコンテナから抜けます。

コンテナ内
exit

さて、ログインできるでしょうか。

サーバー側
lxc console sssd-ldap

taroとそのパスワードMa9H%6jgを入力して、下記のように表示されればOKです。

サーバー側
$ lxc console sssd-ldap
To detach from the console, press: <ctrl>+a q
taro
Password:
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-88-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Creating directory '/home/taro'.

ディレクトリ/home/taroが作成され、そこがカレントディレクトリになっています。

コンテナ内
$ pwd
/home/taro

確認が終わったらコンテナから抜けます。

コンテナ内
exit

下記のようにプロンプトが表示されますで、ここでctrl+aの後にqを入力します。

コンテナ内
$ exit
logout

Ubuntu 22.04.3 LTS sssd-ldap console

sssd-ldap login:

仕舞い

作成したLXDコンテナは導入手順の確認用ですので、これで用済みです。消しましょう。

サーバー側
lxc stop sssd-ldap
lxc rm sssd-ldap

XubuntuなどでSSSDを設定する場合も、同様の手順で実施すればOKでしょう。たぶん。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0