はじめに

こんばんは、mirukyです。
本記事はLPIC-3 300: Mixed Environments(300-300)の 全トピック・全サブトピック を公式試験要項(Objectives V3.0)に基づいて網羅した試験対策記事です。
LPIC-3はLPICシリーズの最上位資格であり、300(Mixed Environments)はLinuxとWindows/Active Directoryが混在するエンタープライズ環境でのSamba・FreeIPA・NFS・Kerberos等の運用能力が問われます。
LPIC-3 300 試験概要
| 項目 |
内容 |
| 試験コード |
300-300 |
| 試験バージョン |
V3.0 |
| 前提条件 |
有効なLPIC-2資格を保有していること |
| 問題数 |
60問 |
| 試験時間 |
90分 |
| 合格ライン |
500点 / 800点満点(約65%) |
| 出題形式 |
選択式・複数選択式・穴埋め式 |
| 有効期間 |
5年 |
| 受験言語 |
日本語・英語 他 |
| 受験料 |
19,800円(税込)(出典:Pearson VUE公式マーケットプレイス) |
LPIC-3 の位置付け
① LPIC-1(基礎) → LPIC-2(サーバー構築) → LPIC-3(エンタープライズ・専門領域)
- 300: Mixed Environments ← 本記事
- 305: Virtualization & Containerization
- 306: High Availability & Storage Clusters
試験の中心テーマ
-
Samba:LinuxとWindowsの相互運用(ファイル共有・プリンタ共有・AD DC)
-
Active Directory:SambaによるADドメインコントローラーの構築と運用
-
Kerberos:ネットワーク認証基盤
-
FreeIPA:Linux向け統合ID管理基盤
-
NFS:Linuxネイティブのファイル共有(Kerberos連携含む)
Topic 301:Sambaの基礎
301.1 Sambaの概念とアーキテクチャ(Weight: 2)
重要ポイント
Sambaデーモンの役割
| デーモン |
役割 |
| smbd |
SMB/CIFSプロトコルでファイル共有・印刷サービスを提供 |
| nmbd |
NetBIOS名前解決とブラウジングを担当 |
| winbindd |
WindowsドメインのユーザーをLinux上で利用可能にする |
| samba |
Samba AD DCモードのメインプロセス |
SMB/CIFSプロトコルの主要ポート
| ポート |
プロトコル |
用途 |
| 137 |
UDP |
NetBIOS名前解決 |
| 138 |
UDP |
NetBIOSデータグラム |
| 139 |
TCP |
NetBIOSセッション(SMB over NetBIOS) |
| 445 |
TCP |
SMBダイレクト(現在の主流) |
SMBバージョン
| バージョン |
特徴 |
| SMB1 / CIFS |
レガシー。セキュリティリスクが高く非推奨 |
| SMB2 |
Windows Vista以降。パフォーマンス改善 |
| SMB3 |
Windows 8以降。暗号化・マルチチャネル対応 |
コマンド集
# Sambaバージョン確認
smbd --version
samba --version
# Sambaの状態確認
smbstatus # 接続中のクライアント・開いているファイル
smbstatus -b # 簡易表示
smbstatus -S # 共有一覧
# NetBIOS名の確認
nmblookup [NetBIOS名] # NetBIOS名前解決
nmblookup -A [IPアドレス] # IPアドレスからNetBIOS名を逆引き
301.2 Sambaの設定(Weight: 4)
smb.conf の構造
# /etc/samba/smb.conf
# === グローバルセクション ===
[global]
workgroup = EXAMPLE
realm = EXAMPLE.COM
server string = Samba Server %v
security = user # 認証モード(user / ads / domain)
log file = /var/log/samba/log.%m # クライアントごとのログ
max log size = 50 # ログファイルの最大サイズ(KB)
log level = 3 # ログレベル(0〜10)
passdb backend = tdbsam # パスワードデータベース
map to guest = Bad User # 認証失敗時のゲストマッピング
# === 共有セクション ===
[share_name]
path = /srv/samba/share
browseable = yes
writable = yes
valid users = @smbgroup
create mask = 0664
directory mask = 0775
主要なグローバルパラメータ
| パラメータ |
説明 |
workgroup |
ワークグループ名またはドメイン名 |
realm |
Kerberosレルム(AD DC時に使用) |
server string |
サーバーの説明文 |
security |
認証モード(user, ads, domain, auto) |
passdb backend |
パスワードDB(tdbsam, ldapsam, smbpasswd) |
log file |
ログファイルのパス |
log level |
ログの詳細度(0〜10) |
interfaces |
リッスンするインターフェース |
bind interfaces only |
指定インターフェースのみにバインド |
map to guest |
認証失敗時のゲストマッピング |
server role |
サーバー役割(standalone, member server, active directory domain controller) |
コマンド集
# 設定ファイルの構文チェック
testparm # smb.confの構文チェック(全パラメータ表示)
testparm -s # 簡潔に表示(デフォルトと異なる値のみ)
testparm -v # 全パラメータ(デフォルト含む)
# パスワード管理
smbpasswd -a [ユーザー名] # Sambaユーザーの追加
smbpasswd [ユーザー名] # パスワード変更
smbpasswd -x [ユーザー名] # ユーザーの削除
smbpasswd -d [ユーザー名] # ユーザーの無効化
smbpasswd -e [ユーザー名] # ユーザーの有効化
# ユーザーデータベース管理
pdbedit -L # ユーザー一覧
pdbedit -Lv # 詳細一覧
pdbedit -a [ユーザー名] # ユーザー追加
pdbedit -x [ユーザー名] # ユーザー削除
pdbedit -e tdbsam:/path/to/backup # データベースのエクスポート
pdbedit -i tdbsam:/path/to/backup # データベースのインポート
# Sambaサービス管理
systemctl start smb nmb # smbd + nmbd 起動
systemctl start winbind # winbindd 起動
systemctl start samba # AD DCモード起動
smbcontrol all reload-config # 全プロセスに設定再読み込み通知
301.3 Sambaの定期メンテナンス(Weight: 2)
コマンド集
# TDB(Trivial Database)の管理
tdbbackup /var/lib/samba/*.tdb # TDBファイルのバックアップ
tdbbackup -v /var/lib/samba/[TDBファイル名] # 検証付きバックアップ
tdbtool /var/lib/samba/[TDBファイル名] # TDBの対話式操作
tdbrestore # TDBの復元
# Samba AD DCのバックアップ
samba-tool domain backup online --targetdir=[バックアップ先パス] --server=[DC名]
samba-tool domain backup offline --targetdir=[バックアップ先パス]
samba-tool domain backup rename [新ドメイン名] [新レルム名] --targetdir=[パス] --server=[DC名]
# データベース整合性チェック
samba-tool dbcheck # AD DBの整合性チェック
samba-tool dbcheck --fix # 問題の自動修復
# net コマンド
net rpc info -S [サーバー名] -U [ユーザー名] # リモートサーバー情報
net rpc user -S [サーバー名] -U [ユーザー名] # ユーザー一覧
net time -S [サーバー名] # 時刻同期確認
301.4 Sambaのトラブルシューティング(Weight: 3)
トラブルシューティングの手順
1. testparm で設定ファイルの構文チェック
2. smbstatus で接続状態の確認
3. ログファイルの確認(/var/log/samba/)
4. log level を上げて再現・詳細確認
5. smbclient でクライアント側からの接続テスト
6. ネットワーク(ポート445, 139)の疎通確認
コマンド集
# ログの確認
tail -f /var/log/samba/log.smbd # smbdのログ
tail -f /var/log/samba/log.winbindd # winbinddのログ
tail -f /var/log/samba/log.[クライアント名] # クライアントごとのログ
# ログレベルの動的変更
smbcontrol smbd debug [レベル] # smbdのログレベルを変更
smbcontrol winbindd debug [レベル] # winbinddのログレベルを変更
# 接続テスト
smbclient -L //[サーバー名] -U [ユーザー名] # 共有一覧の確認
smbclient //[サーバー名]/[共有名] -U [ユーザー名] # 共有への接続テスト
# ネットワーク確認
ss -tuln | grep -E '139|445' # ポートのリッスン確認
# DNS確認(AD DC環境)
dig _ldap._tcp.[ドメイン名] SRV # LDAP SRVレコードの確認
dig _kerberos._tcp.[ドメイン名] SRV # Kerberos SRVレコードの確認
host -t SRV _ldap._tcp.[ドメイン名] # 簡易確認
Topic 302:SambaとActive Directoryドメイン
302.1 Samba ADドメインコントローラー(Weight: 5)
Weight 5 は本試験の中で 最も出題比率が高い サブトピックの一つです。
Samba AD DCの構築
# AD DCとしてのプロビジョニング
samba-tool domain provision \
--use-rfc2307 \
--realm=EXAMPLE.COM \
--domain=EXAMPLE \
--server-role=dc \
--dns-backend=SAMBA_INTERNAL \
--adminpass='[管理者パスワード]'
# プロビジョニング後の確認
samba-tool domain level show # ドメイン/フォレスト機能レベル
samba-tool domain info [DC名] # ドメイン情報
# サービス起動
systemctl start samba # AD DCモードで起動
systemctl enable samba
# 動作確認
smbclient -L //localhost -U Administrator # 共有一覧
smbclient //localhost/netlogon -U Administrator # NETLOGON共有への接続
Kerberos設定(/etc/krb5.conf)
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
EXAMPLE.COM = {
kdc = dc1.example.com
admin_server = dc1.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
コマンド集
# Kerberos認証
kinit Administrator@EXAMPLE.COM # チケット取得
klist # チケット一覧
kdestroy # チケット破棄
# ドメインコントローラー管理
samba-tool domain level raise --domain-level=[レベル] --forest-level=[レベル]
samba-tool domain classicupgrade [旧smb.confパス] # Samba3→4への移行
# FSMOロール管理
samba-tool fsmo show # FSMOロール保持DC一覧
samba-tool fsmo seize --role=[ロール名] # FSMOロールの強制取得
samba-tool fsmo transfer --role=[ロール名] # FSMOロールの移転
# DCの追加(レプリケーション)
samba-tool domain join [ドメイン名] DC \
-U Administrator --realm=[レルム名] --dns-backend=SAMBA_INTERNAL
# サイト管理
samba-tool sites create [サイト名]
samba-tool sites remove [サイト名]
samba-tool sites list
302.2 Active Directory名前解決(Weight: 2)
重要ポイント
- Samba AD DCは DNS SRVレコード を動的に登録する
- DNS バックエンドは
SAMBA_INTERNAL(推奨)または BIND9_DLZ
コマンド集
# Samba内部DNSの管理
samba-tool dns serverinfo [DC名] # DNSサーバー情報
samba-tool dns query [DC名] [ゾーン名] @ ALL # ゾーン内全レコード
samba-tool dns add [DC名] [ゾーン名] [ホスト名] A [IPアドレス] # Aレコード追加
samba-tool dns delete [DC名] [ゾーン名] [ホスト名] A [IPアドレス] # Aレコード削除
# DNSゾーン管理
samba-tool dns zonecreate [DC名] [ゾーン名] # 正引きゾーン作成
samba-tool dns zonedelete [DC名] [ゾーン名] # ゾーン削除
samba-tool dns zonelist [DC名] # ゾーン一覧
# DNS動的更新
samba_dnsupdate --verbose # DNS動的更新の手動実行
# 確認
dig @[DC IP] [ドメイン名] # DNS問い合わせ
dig @[DC IP] _ldap._tcp.[ドメイン名] SRV # SRVレコード確認
nslookup [ホスト名] [DC IP] # 名前解決テスト
302.3 Active Directoryユーザー管理(Weight: 4)
コマンド集
# --- ユーザー管理 ---
samba-tool user create [ユーザー名] [パスワード] # ユーザー作成
samba-tool user create [ユーザー名] --random-password # ランダムパスワード
samba-tool user delete [ユーザー名] # ユーザー削除
samba-tool user disable [ユーザー名] # ユーザー無効化
samba-tool user enable [ユーザー名] # ユーザー有効化
samba-tool user list # ユーザー一覧
samba-tool user show [ユーザー名] # ユーザー詳細
samba-tool user setpassword [ユーザー名] --newpassword=[パスワード] # パスワード変更
samba-tool user setexpiry [ユーザー名] --days=[日数] # パスワード有効期限
samba-tool user setexpiry [ユーザー名] --noexpiry # パスワード無期限
# --- グループ管理 ---
samba-tool group create [グループ名] # グループ作成
samba-tool group delete [グループ名] # グループ削除
samba-tool group list # グループ一覧
samba-tool group listmembers [グループ名] # メンバー一覧
samba-tool group addmembers [グループ名] [ユーザー名1],[ユーザー名2] # メンバー追加
samba-tool group removemembers [グループ名] [ユーザー名] # メンバー削除
# --- OU(組織単位)管理 ---
samba-tool ou create "OU=[OU名],DC=example,DC=com" # OU作成
samba-tool ou delete "OU=[OU名],DC=example,DC=com" # OU削除
samba-tool ou list # OU一覧
# --- グループポリシー(GPO)---
samba-tool gpo listall # 全GPO一覧
samba-tool gpo list [ユーザー名] # ユーザーに適用されるGPO
samba-tool gpo show [GPO ID] # GPO詳細
samba-tool gpo create [GPO名] -U Administrator # GPO作成
samba-tool gpo setlink "OU=[OU名],DC=example,DC=com" [GPO ID] # GPOをOUにリンク
# --- LDB(LDAP Database)の直接編集 ---
ldbedit -H /var/lib/samba/private/sam.ldb -e vi # LDBの対話式編集
ldbsearch -H /var/lib/samba/private/sam.ldb "(sAMAccountName=[ユーザー名])" # 検索
302.4 Sambaドメインメンバーシップ(Weight: 4)
ドメイン参加手順
# 1. smb.conf の設定
# [global]
# workgroup = EXAMPLE
# realm = EXAMPLE.COM
# security = ads
# idmap config * : backend = tdb
# idmap config * : range = 10000-19999
# idmap config EXAMPLE : backend = rid
# idmap config EXAMPLE : range = 20000-99999
# winbind use default domain = yes
# winbind enum users = yes
# winbind enum groups = yes
# 2. Kerberos設定(/etc/krb5.conf)を前述の通り設定
# 3. ドメイン参加
net ads join -U Administrator # ADドメインに参加
# 4. nsswitch.confの編集
# passwd: files winbind
# group: files winbind
# 5. winbinddの起動
systemctl start winbind
systemctl enable winbind
コマンド集
# ドメイン参加・離脱
net ads join -U [管理者ユーザー名] # ADドメインに参加
net ads leave -U [管理者ユーザー名] # ADドメインから離脱
net ads testjoin # 参加状態の確認
net ads info # ADの情報表示
# Winbind確認
wbinfo -u # ドメインユーザー一覧
wbinfo -g # ドメイングループ一覧
wbinfo -t # 信頼関係のテスト
wbinfo -a [ユーザー名]%[パスワード] # 認証テスト
wbinfo -i [ユーザー名] # ユーザー情報(NSS形式)
wbinfo -n [ユーザー名] # ユーザーのSIDを表示
wbinfo -s [SID] # SIDからユーザー名を表示
wbinfo --ping-dc # DCへの接続テスト
# ID マッピングの確認
getent passwd [ドメイン名]\\[ユーザー名] # ドメインユーザーの確認
getent group [ドメイン名]\\[グループ名] # ドメイングループの確認
id [ユーザー名] # UID/GIDの確認
idmap バックエンド
| バックエンド |
説明 |
| tdb |
ローカルTDBにマッピングを保存。デフォルト |
| rid |
WindowsのRIDからUID/GIDを算出。複数メンバーサーバーで一貫性あり |
| ad |
AD上のRFC2307属性(uidNumber, gidNumber)を使用 |
| autorid |
ridの自動割り当て版。設定が簡単 |
302.5 Sambaローカルユーザー管理(Weight: 2)
コマンド集
# Linuxユーザーとの同期
useradd -m [ユーザー名] # Linuxユーザー作成
smbpasswd -a [ユーザー名] # Sambaパスワード設定
pdbedit -L # Sambaユーザー一覧
# パスワードバックエンド
# passdb backend = tdbsam → /var/lib/samba/private/passdb.tdb
# passdb backend = smbpasswd → /etc/samba/smbpasswd(レガシー)
# passdb backend = ldapsam → LDAPサーバー
Topic 303:Samba共有設定
303.1 ファイル共有設定(Weight: 4)
共有設定例
# 基本的なファイル共有
[data]
path = /srv/samba/data
browseable = yes
writable = yes
valid users = @datagroup
create mask = 0664
directory mask = 0775
force group = datagroup
# ホームディレクトリ共有
[homes]
comment = Home Directories
browseable = no
writable = yes
create mask = 0700
directory mask = 0700
# ゲスト共有(認証不要)
[public]
path = /srv/samba/public
browseable = yes
writable = yes
guest ok = yes
force user = nobody
主要な共有パラメータ
| パラメータ |
説明 |
path |
共有ディレクトリのパス |
browseable |
ネットワーク一覧に表示するか |
writable / read only
|
書き込み許可 |
valid users |
アクセスを許可するユーザー/グループ |
invalid users |
アクセスを拒否するユーザー/グループ |
write list |
読み取り専用共有で書き込みを許可するユーザー |
read list |
書き込み可能共有で読み取りのみに制限するユーザー |
guest ok |
ゲストアクセスの許可 |
force user |
ファイル作成時に強制するユーザー |
force group |
ファイル作成時に強制するグループ |
create mask |
ファイル作成時のパーミッションマスク |
directory mask |
ディレクトリ作成時のパーミッションマスク |
veto files |
アクセスを禁止するファイルパターン |
hide files |
隠すファイルパターン |
vfs objects |
VFSモジュール(recycle, acl_xattr等) |
303.2 ファイル共有セキュリティ(Weight: 3)
コマンド集
# POSIX ACL
setfacl -m u:[ユーザー名]:rwx /srv/samba/data # ユーザーACL追加
setfacl -m g:[グループ名]:rx /srv/samba/data # グループACL追加
setfacl -m d:u:[ユーザー名]:rwx /srv/samba/data # デフォルトACL(新規ファイルに継承)
getfacl /srv/samba/data # ACLの表示
setfacl -x u:[ユーザー名] /srv/samba/data # ACLの削除
setfacl -b /srv/samba/data # 全ACLの削除
# Windows ACL(VFSモジュール使用)
# smb.conf に以下を追加:
# vfs objects = acl_xattr
# map acl inherit = yes
# store dos attributes = yes
認証モードの違い
| security |
説明 |
user |
Samba自身で認証(スタンドアロン) |
ads |
Active Directoryで認証(ドメインメンバー) |
domain |
NT4ドメインで認証(レガシー) |
auto |
Sambaが自動判定 |
303.3 DFS共有設定(Weight: 1)
重要ポイント
-
DFS(Distributed File System):複数のサーバーにまたがるファイル共有を統合的にアクセスさせる仕組み
- Samba では
msdfs root = yes で有効化
設定例
[dfs]
path = /srv/samba/dfs
msdfs root = yes
browseable = yes
# DFS参照リンクの作成(シンボリックリンク)
ln -s "msdfs:\\server2\share" /srv/samba/dfs/remote-share
303.4 プリンタ共有設定(Weight: 2)
設定例
[global]
printing = cups
printcap name = cups
load printers = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes
guest ok = no
writable = no
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
browseable = yes
read only = yes
write list = @printadmins
コマンド集
# CUPS連携
lpstat -a # プリンタ状態確認
cupsctl --share-printers # プリンタ共有の有効化
rpcclient //[サーバー名] -U [ユーザー名] -c "enumprinters" # プリンタ一覧
Topic 304:Sambaクライアント設定
304.1 Linux認証クライアント(Weight: 5)
Weight 5 は本試験の中で 最も出題比率が高い サブトピックの一つです。
SSSD(System Security Services Daemon)
設定例(/etc/sssd/sssd.conf)
[sssd]
domains = EXAMPLE.COM
services = nss, pam
config_file_version = 2
[domain/EXAMPLE.COM]
id_provider = ad
auth_provider = ad
access_provider = ad
ad_domain = example.com
krb5_realm = EXAMPLE.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
default_shell = /bin/bash
fallback_homedir = /home/%u@%d
use_fully_qualified_names = False
コマンド集
# SSSD
systemctl start sssd # SSSDの起動
sssctl domain-list # ドメイン一覧
sssctl domain-status [ドメイン名] # ドメインの状態
sssctl user-checks [ユーザー名] # ユーザー認証チェック
sss_cache -E # SSSDキャッシュのクリア
# realmd(AD参加の簡易ツール)
realm discover [ドメイン名] # ドメインの検出
realm join [ドメイン名] # ドメインへの参加
realm leave # ドメインからの離脱
realm list # 参加済みドメイン一覧
realm permit [ユーザー名] # ログイン許可ユーザーの設定
realm permit --all # 全ユーザーにログイン許可
# PAM / NSS
getent passwd [ユーザー名] # ドメインユーザーの確認
getent group [グループ名] # ドメイングループの確認
id [ユーザー名] # UID/GID確認
# Kerberos
kinit [ユーザー名]@[レルム名] # チケット取得
klist # チケット一覧
kdestroy # チケット破棄
/etc/nsswitch.conf の設定
passwd: files sss # SSD経由でADユーザーを解決
group: files sss
shadow: files sss
304.2 Linux CIFSクライアント(Weight: 3)
コマンド集
# SMB/CIFS共有のマウント
mount -t cifs //[サーバー名]/[共有名] /mnt -o username=[ユーザー名],password=[パスワード]
mount -t cifs //[サーバー名]/[共有名] /mnt -o credentials=[認証情報ファイルパス]
mount.cifs //[サーバー名]/[共有名] /mnt -o username=[ユーザー名]
# 認証情報ファイル(パーミッション600にすること)
# /root/.smbcredentials
# username=[ユーザー名]
# password=[パスワード]
# domain=[ドメイン名]
# /etc/fstab での永続マウント
# //server/share /mnt/share cifs credentials=/root/.smbcredentials,uid=1000,gid=1000 0 0
# smbclient
smbclient -L //[サーバー名] -U [ユーザー名] # 共有一覧
smbclient //[サーバー名]/[共有名] -U [ユーザー名] # 対話式接続
# Kerberos認証でのマウント
mount -t cifs //[サーバー名]/[共有名] /mnt -o sec=krb5,cruid=[UID]
304.3 Windowsクライアント(Weight: 3)
重要ポイント
- Windowsからのドメイン参加手順
- グループポリシーの適用
- ユーザープロファイルとフォルダリダイレクション
Windows側のコマンド
# ドメイン参加(PowerShell)
Add-Computer -DomainName "example.com" -Credential "EXAMPLE\Administrator" -Restart
# ネットワークドライブの接続
net use Z: \\[サーバー名]\[共有名] /user:[ドメイン名]\[ユーザー名]
# グループポリシーの更新
gpupdate /force
# ドメイン情報の確認
nltest /dsgetdc:[ドメイン名]
Topic 305:Linux ID管理とファイル共有
305.1 FreeIPAのインストールとメンテナンス(Weight: 2)
重要ポイント
-
FreeIPA = Kerberos + LDAP + DNS + CA を統合したLinux向けID管理基盤
-
Red Hat Identity Management(IdM) のアップストリーム
コマンド集
# FreeIPAサーバーのインストール
ipa-server-install \
--realm=[レルム名] \
--domain=[ドメイン名] \
--ds-password=[ディレクトリサーバーパスワード] \
--admin-password=[管理者パスワード] \
--setup-dns --forwarder=[DNSフォワーダーIP]
# FreeIPAクライアントのインストール
ipa-client-install --domain=[ドメイン名] --server=[IPAサーバー名] --realm=[レルム名]
# レプリカのインストール
ipa-replica-install
# サーバー管理
ipactl start # 全サービス起動
ipactl stop # 全サービス停止
ipactl restart # 全サービス再起動
ipactl status # サービス状態確認
# Kerberos認証
kinit admin # 管理者チケット取得
klist # チケット確認
305.2 FreeIPAエンティティ管理(Weight: 4)
コマンド集
# --- ユーザー管理 ---
ipa user-add [ユーザー名] --first=[名] --last=[姓] --password # ユーザー追加
ipa user-del [ユーザー名] # ユーザー削除
ipa user-mod [ユーザー名] --shell=/bin/bash # ユーザー変更
ipa user-find # ユーザー検索
ipa user-show [ユーザー名] # ユーザー詳細
ipa user-disable [ユーザー名] # ユーザー無効化
ipa user-enable [ユーザー名] # ユーザー有効化
ipa passwd [ユーザー名] # パスワード変更
# --- グループ管理 ---
ipa group-add [グループ名] # グループ作成
ipa group-del [グループ名] # グループ削除
ipa group-add-member [グループ名] --users=[ユーザー名] # メンバー追加
ipa group-remove-member [グループ名] --users=[ユーザー名] # メンバー削除
ipa group-find # グループ検索
ipa group-show [グループ名] # グループ詳細
# --- ホスト管理 ---
ipa host-add [ホスト名] --ip-address=[IPアドレス] # ホスト追加
ipa host-del [ホスト名] # ホスト削除
ipa host-find # ホスト検索
# --- サービス管理 ---
ipa service-add HTTP/[ホスト名]@[レルム名] # サービス追加
ipa service-find # サービス検索
# --- DNS管理 ---
ipa dnsrecord-add [ゾーン名] [ホスト名] --a-rec=[IPアドレス] # Aレコード追加
ipa dnsrecord-del [ゾーン名] [ホスト名] --a-rec=[IPアドレス] # Aレコード削除
ipa dnsrecord-find [ゾーン名] # レコード検索
ipa dnszone-add [ゾーン名] # ゾーン追加
# --- sudo ルール ---
ipa sudorule-add [ルール名] # sudoルール作成
ipa sudorule-add-user [ルール名] --users=[ユーザー名] # ユーザー追加
ipa sudorule-add-host [ルール名] --hosts=[ホスト名] # ホスト追加
ipa sudorule-add-allow-command [ルール名] --sudocmds=[コマンドパス] # コマンド追加
# --- HBAC(ホストベースアクセス制御)---
ipa hbacrule-add [ルール名] # HBACルール作成
ipa hbacrule-add-user [ルール名] --users=[ユーザー名] # ユーザー追加
ipa hbacrule-add-host [ルール名] --hosts=[ホスト名] # ホスト追加
ipa hbacrule-add-service [ルール名] --hbacsvcs=[サービス名] # サービス追加
ipa hbactest --user=[ユーザー名] --host=[ホスト名] --service=[サービス名] # テスト
305.3 FreeIPA Active Directory連携(Weight: 2)
コマンド集
# AD信頼関係の構築
ipa trust-add --type=ad [ADドメイン名] --admin [AD管理者名] --password # 信頼関係の追加
ipa trust-find # 信頼関係一覧
ipa trust-show [ADドメイン名] # 信頼関係の詳細
ipa trust-del [ADドメイン名] # 信頼関係の削除
# ID範囲の管理
ipa idrange-find # ID範囲一覧
ipa idrange-show [範囲名] # ID範囲の詳細
# ADユーザーの確認
getent passwd [ADユーザー名]@[ADドメイン名] # ADユーザーの確認
id [ADユーザー名]@[ADドメイン名] # UID/GID確認
信頼関係の構造
① FreeIPA (example.com) ← Cross-Realm Trust → AD (ad.example.com)
| コンポーネント |
FreeIPA側 |
AD側 |
| Kerberos |
EXAMPLE.COM |
AD.EXAMPLE.COM |
| ディレクトリ |
LDAP(dc=example,dc=com) |
AD DS |
| DNS |
example.com |
ad.example.com |
305.4 ネットワークファイルシステム(NFS)(Weight: 3)
NFSv4とKerberos認証
セキュリティフレーバー
| フレーバー |
説明 |
sys |
AUTH_SYS(UID/GIDベース、暗号化なし) |
krb5 |
Kerberos認証のみ |
krb5i |
Kerberos認証 + 整合性チェック |
krb5p |
Kerberos認証 + 整合性チェック + 暗号化(最も安全) |
コマンド集
# NFSサーバー
systemctl start nfs-server # NFSサーバー起動
exportfs -a # 全エクスポートを有効化
exportfs -r # エクスポートの再読み込み
exportfs -v # エクスポート一覧(詳細)
showmount -e [サーバーIP] # リモートからエクスポート確認
# NFSクライアント
mount -t nfs4 [サーバーIP]:[エクスポートパス] /mnt
mount -t nfs4 -o sec=krb5p [サーバーIP]:[エクスポートパス] /mnt # Kerberos認証
# RPC確認
rpcinfo -p [サーバーIP] # RPCサービスの一覧
nfsstat # NFS統計
# ID マッピング
cat /etc/idmapd.conf # NFSv4のIDマッピング設定
# [General]
# Domain = example.com
/etc/exports の書式(Kerberos対応)
/srv/nfs/data *(rw,sync,no_subtree_check,sec=krb5p)
/srv/nfs/home 192.168.1.0/24(rw,sync,no_root_squash,sec=krb5p)
重要ファイル
-
/etc/exports :エクスポート設定
-
/etc/idmapd.conf :NFSv4のIDマッピング設定
-
/etc/krb5.keytab :NFS Kerberos認証用のキータブ
出題比率(Weight)ランキング
| 順位 |
サブトピック |
Weight |
内容 |
| 1 |
302.1 |
5 |
Samba ADドメインコントローラー |
| 1 |
304.1 |
5 |
Linux認証クライアント |
| 3 |
301.2 |
4 |
Sambaの設定 |
| 3 |
302.3 |
4 |
ADユーザー管理 |
| 3 |
302.4 |
4 |
Sambaドメインメンバーシップ |
| 3 |
303.1 |
4 |
ファイル共有設定 |
| 3 |
305.2 |
4 |
FreeIPAエンティティ管理 |
| 8 |
301.4 |
3 |
Sambaのトラブルシューティング |
| 8 |
303.2 |
3 |
ファイル共有セキュリティ |
| 8 |
304.2 |
3 |
Linux CIFSクライアント |
| 8 |
304.3 |
3 |
Windowsクライアント |
| 8 |
305.4 |
3 |
NFS |
試験対策のポイント
頻出テーマ 暗記チェックリスト
必ず覚えるべき項目
-
Sambaデーモンの役割(
smbd, nmbd, winbindd, samba)
-
smb.conf のグローバルパラメータと共有パラメータ
-
testparm による設定チェック
-
samba-tool によるAD DC管理(ユーザー・グループ・OU・GPO・DNS)
-
Samba AD DCのプロビジョニング手順
-
Kerberos認証の流れ(
kinit, klist, kdestroy)と/etc/krb5.conf
-
ドメインメンバーの参加手順(
net ads join)
-
Winbindの設定とidmapバックエンド(
tdb, rid, ad, autorid)
-
wbinfo コマンドによる動作確認
-
SSSD の設定(
/etc/sssd/sssd.conf)とrealmd
-
NSS/PAM の設定(
/etc/nsswitch.conf, /etc/pam.d/)
-
POSIX ACL(
setfacl, getfacl)
-
CIFS マウント(
mount.cifs, 認証情報ファイル)
-
FreeIPA のインストール・ユーザー管理・AD信頼関係
-
ipa コマンド体系(user-add, group-add, host-add, trust-add等)
-
HBAC(ホストベースアクセス制御)とsudoルール
-
NFSv4とKerberosセキュリティフレーバー(
sys, krb5, krb5i, krb5p)
-
/etc/exports の書式とKerberos認証オプション
LPIC-2 と LPIC-3 300 の難易度差
| 観点 |
LPIC-2 |
LPIC-3 300 |
| レベル |
各種サーバー構築 |
エンタープライズ混在環境 |
| Samba |
基本的な共有設定 |
AD DC構築・ドメイン管理・GPO |
| 認証 |
PAM・LDAP基礎 |
Kerberos・SSSD・Winbind・FreeIPA |
| ファイル共有 |
NFS基礎 |
Kerberos統合NFS・DFS・CIFS |
| 穴埋め問題 |
各サーバーの設定パラメータ |
smb.conf・samba-tool・ipaの詳細パラメータ |
おわりに
LPIC-3 300 Mixed Environmentsは Samba と Active Directory が試験全体の約6割を占めます。
Sambaの設定ファイル(smb.conf)とsamba-toolコマンドは丸暗記レベルで覚える必要があります。
加えて、FreeIPA と Kerberos統合NFS はLPIC-3 V3.0で新たに追加されたトピックであり、最新の出題傾向を反映しています。
学習の進め方としては:
-
Samba AD DCを実際に構築する(仮想環境でLinux + Windows混在ネットワークを構築)
samba-tool のサブコマンドを一通り試す
- FreeIPAサーバーを構築し、
ipaコマンドを習熟する
- Kerberos認証の流れを理解し、NFSとの連携を実践する
- Weightの高いトピック(302.1, 304.1)から優先的に学習する
この記事が合格への一助になれば幸いです。
ここまでお読みいただきありがとうございます。
ではまた、お会いしましょう。
参考リンク