LinuC レベル 2
技術解説無料セミナー
2022/09/23 開催

主題

2.07
ネットワーククライアントの管理

エスディーテック株式会社
デザインエンジニアリング本部

末永 貴⼀© LPI-Japan / EDUCO all rights reserved.

⾃⼰紹介
n⾃⼰紹介

エスディーテック株式会社－ デザインエンジニアリングでUI/UXソフトウェアの企画・開発・研究開発を⾏う企業
http://www.sdtech.co.jp
Linux関連⽂章の執筆
・@IT 「Linuxをいまから学ぶコツ教えます」
・@IT 「Linuxに触れよう」
・⽇経Linux「Xと次世代「Wayland」を知る」
・LPIC Level1,2 1回で合格必達テキスト+問題集など© LPI-Japan all rights reserved.

2

⾃⼰紹介
nTRITO VR
素早いトライ＆エラーを実現するVRを活⽤した設計シミュレーター

© LPI-Japan all rights reserved.

3

LinuCレベル１／レベル２ Version10.0とはnLinuCとはクラウド時代の即戦⼒エンジニアであることを証明するLinux技術者認定

ü現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知⾒ü全⾯的に⾒直した「今」⾝につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込みüLinuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

4

クラウドを活⽤できるITエンジニアに必須の技術がまとまっている
AWSなどのパブリッククラウドを活⽤するための技術

AWSなどのパブリッククラウドを活⽤するための技術間が⽋けている状態

仮想マシン／コンテナ技術、クラウドセキュリティ、アーキテクチャ、ほかオンプレミスのサーバーサイドLinux技術

オンプレミスのサーバーサイドLinux技術【今まで／その他】

Version10.0© LPI-Japan all rights reserved.

5

今回のテーマ

主題2.07︓ネットワーククライアントの管理
ü LinuxによるN/Wクライアント管理
ü PAM
ü LDAPü DHCP

© LPI-Japan all rights reserved.

6Linuxによるネットワーククライアント管理とは
nLinuxによるLAN内のクライアント管理
主題2.07におけるPAM、LDAP、DHCPの各テーマの関係性
LDAPサーバ

Linuxクライアント
ユーザ認証

ユーザ認証
（PAM）

DHCPサーバ
ネットワークの利⽤© LPI-Japan all rights reserved.

7

PAM認証nPAM認証とはLinuxのシステムアプリケーションに対して認証、セキュリテイサービスを提供するフレームワーク
アプリケーション

アプリケーション

アプリケーション

PAM API
設定
ファイル

PAMライブラリ
PAM SPI

PAM module

PAM module

PAM module

PAM module

PAMサービスモジュール© LPI-Japan all rights reserved.

8

PAM認証n設定・設定ファイルと設定フォーマット
設定ファイルは/etc/pam.d以下・ファイルの基本フォーマット
<type> <control> <module-path> <module-arguments>
・設定項⽬
type︓auth、account、session
control︓requisite、required、sufficient、optional
auth ︓
認証⽅法の設定、認証の許可
account︓ 期限や有効性の確認
password︓パスワード変更など
session︓ ログインからログアウトまでの挙動
requisite︓認証などに失敗したら以降の処理を⾏わずに失敗。
required︓認証などに失敗しても、以降の処理を続⾏。
sufficient︓認証などに成功したら、以降の処理を⾏わず成功と判断。
optional︓成否に関係なく処理を⾏う© LPI-Japan all rights reserved.

9

PAM認証nPAM認証の動作例
例えば・・・
auth required

pam_unix.so

成功しても失敗しても次の処理へ（失敗は記録する）

auth requisite

pam_unix.so

失敗の場合は処理を中⽌成功の場合は次の処理へ

auth sufficient pam_unix.so

auth

成功かつrequiredが全て成功の場合は次のtypeへ、失敗は次処理へ

auth optional

pam_unix.so※optionalの結果は無視されるaccount required pam_unix.so・・・（同様のcontrolの動作）
session required pam_unix.so

account
session・・・（同様のcontrolの動作）© LPI-Japan all rights reserved.

10

PAM認証nPAM認証の動作
PAMの挙動は⽬に⾒えないが、pam_echo.so等のモジュールを使ってデバッグ的に出⼒をする等して動作確認もできる。（ミスがあるとログインできなくなる等の問題が発⽣するため注意）
pam_echo.soの使い⽅
auth required pam_echo.so 出⼒したい⽂字列© LPI-Japan all rights reserved.

11

LDAP
nLDAPとはディレクトリサービスとは、分散したネットワーク上の各種リソース（ユーザ、サーバ、アプリケーション、プリンタなど）を論理的な名前で管理しやすく系統⽴ててエンドユーザや管理者に提供する、情報データベースシステム。
→ LDAPはディレクトリサービスのプロトコル。

・LDAPの⽤語
エントリ︓データオブジェクト

DIT(Directory Information Tree)︓エントリを階層管理するための管理構造
DSE(Directory Service Entry)︓ルートのエントリ
DN(Distinguished Name)︓エントリの識別⼦
RDN(Relative Distinguished Name)︓相対識別⼦
root

DIT
dc=jp
dc=linuc

ou=level1

DSE
DN

DN

ou=level2

ou=level3© LPI-Japan all rights reserved.

12

LDAP
nLDAPのデータモデル
・LDAPの⽤語
オブジェクトクラス︓格納データの型
スキーマ︓オブジェクトクラスの定義
属性︓データの格納対象（dc,o,ou,uid等）

LDIF(LDAP Data Interchange Format)︓LDAPに⼊⼒するデータのフォーマット
エントリの中⾝
uid: user01
cn: Yoshikazu Suenaga
uidNumber: 10001
gidNumber: 10000

LDIFの例・・・

dn: uid=user01,ou=groups,dc=example,dc=jp
uid: user01
cn: Yoshikazu Suenaga
sn: user01
objectClass: posixAccountobjectClass: inetOrgPerson
objectClass: shadowAccountuserPassword: e01ENX1UVDBjVmRiRXFvRCtvU1hGTUttbE9RPT0=loginShell: /bin/bash
uidNumber: 10001
gidNumber: 10000
homeDirectory: /home/user01© LPI-Japan all rights reserved.

13

LDAP
n作成したDIT
phpLDAPadmin等を使えばグラフィカルにDITを表⽰することも可能。
phpLDAPadminの表⽰

dc=jp

dc=example

cn=ldapgrp

ou=groups

ou=people

uid=user01

uid=user02© LPI-Japan all rights reserved.

14

SSSD
nSSSD(System Security Services Daemon)とはリモートディレクトリと認証システムにアクセスするためのシステムサービス。
SSSDクライアントであるローカルシステムをLDAP等の外部のバックエンドシステムに接続できるサービス。

LDAPサーバ
クライアント認証

sssdパッケージのインストール# apt install sssd libpam-sss libnss-sss sssd-tools
設定は/etc/sssd/sssd.confで⾏う。sssd.confはインストールされないため⼿動で作成する。
© LPI-Japan all rights reserved.

15

SSSD
nsssctlコマンド
SSSDの動作確認を⾏うツール
1.sssd.confのチェック# sssctl config-check
2.問い合わせ先ドメインのリスト# sssctl domain-list
3.問い合わせ先ドメインの状態# sssctl domain-status ドメイン名
4.ユーザーのキャッシュ情報表⽰# sssctl user-show ユーザー名© LPI-Japan all rights reserved.

16

SSSD
nSSSDとPAM
SSSDのインストール後にPAMにSSSDの認証フローが追加される。
/etc/pam.d/common-auth （Ubuntu）# here are the per-package modules (the "Primary" block)auth [success=3 default=ignore]
pam_unix.so nullok
auth [success=2 default=ignore]
pam_sss.so use_first_pass
auth [success=1 default=ignore]
pam_ldap.so use_first_pass# here's the fallback if no module succeeds
auth requisite
pam_deny.so・・・・© LPI-Japan all rights reserved.

17

DHCP
nDHCPサーバ（静的割り当て設定）
DHCPサーバとは動的にクライアントに対してネットワーク設定（IP）を割り当てをする。
単に割り当てるだけではなく、ある特定の範囲でクライアントの制限を⾏うことが可能。

subnet 192.168.0.0 netmask 255.255.255.0 {option routers
192.168.0.1;
option subnet-mask
255.255.255.0;
・・・（省略）
range 192.168.0.10 192.168.0.100;}

host linuc1 {hardware ethernet 00:90:96:0f:dc:3a;
fixed-address 192.168.0.3;}

静的割り当て設定登録されたMACアドレスのみ割り当てを⾏うようにすれば、管理外のPCのネットワーク接続を制限することも可能。
© LPI-Japan all rights reserved.

18

まとめnまとめü PAM• Linuxのシステム認証を制御するフレームワーク• Login、SSH等のシステム認証はPAMを使って認証される

ü LDPA• ユーザ等のリソースを管理するためのディレクトリサービス• LinuxユーザをLDAPサーバ上で⼀元管理することができる

ü SSSD• リモートディレクトリにアクセスするためのシステムサービス

ü DHCP• ⾃動でIPアドレス等のネットワークを使⽤するための設定をクライアントに付与する• MACアドレスで設定するクライアントを限定することも可能（静的割り当て設定）© LPI-Japan all rights reserved.

19

Q&A

Q&A

© LPI-Japan all rights reserved.

20

ありがとうございました
https://www.sdtech.co.jp© LPI-Japan all rights reserved.

21