KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

LDAPとActive Directoryについて学ぶ

ネットワーク特論1の第7回目の授業内容のまとめになります。

AIITのネットワーク特論1を受講しました - KATOエンジニヤリング開発日誌

TCP/IPモデルの役割と標準化を学ぶ - KATOエンジニヤリング開発日誌

レイヤ2のネットワーク機器と通信方式・データ配送方式 - KATOエンジニヤリング開発日誌

ネットワーク層の機器と技術について学ぶ - KATOエンジニヤリング開発日誌

ルーティングと経路制御表の集約計算について学ぶ - KATOエンジニヤリング開発日誌

第7回目の目標

  • ユーザー管理
    • 「ユーザー管理」の定義と機能を説明できる
    • LDAPとADの概要を知り、正しい説明を選択できる
  • ネットワークサービスの管理
    • 計算機上にサーバを構築し、運用していく上で必要となる管理の知識と操作を知る
    • WindowsとUNIXにおける管理の概要と違いについて整理する

ユーザー管理

マルチユーザOSにおいて、ユーザを区別してそれぞれに適切な権限を与えることであり、下記の機能を持っている。

  • ログイン時の認証
    • ログイン時にパスワードの入力を求め、それをシステム内に保存されているパスワードと照合する
    • 認証が正常に終了すると、利用中のユーザーを表す一意(Unique)なIDと結び付けられたシェルが起動し、システム操作が可能になる
  • プロセスの生成
    • ログインシェルが起動すると、ユーザー操作により、そこから様々なプロセスが生成、実行される
    • 利用中のユーザーを表すIDが子プロセスに引き継がれる
    • すべてのプロセスはプロセスの所有者を属性として持つ
  • プロセス所有者の特定
    • プロセスがファイルや共有メモリなどの共有資源にアクセスしようとすると、OSはプロセスの属性を調べて所有者を特定する
    • プロセスが要求しているアクセスがその所有者に認められているか否かを判断する
  • アクセス権の確認
    • ユーザー認証の結果としてプロセスに割り当てられた所有者情報と、資源に設定されているアクセス権の制御情報を比較して決定される

プロセス

独立した資源(Resouce)を割り当てられて動作するプログラムの実行単位を「プロセス」と定義する。

通常、動かしたいプロセスの数はCPUの数よりずっと多い。

マルチプロセスの利点としては、下記があげられる。

  • 複数の端末やネットワークを介して、多人数が同時に使える
  • 一人で複数の仕事を並行してこなせる
  • 自分に代わって何かを監視するプログラムを実行させる
  • 決まった時間になったら「あることを実行する」ということができる
  • 「あること」をするために別のことをやめなくてもよい

LDAP(Lightweight Directory Access Protocol)

ディレクトリサービスとは

ネットワーク上のユーザー情報、グループ情報、コンピュータ情報、アプリケーション、各種設定情報などを記憶し、検索しやすいようにまとめてたもので、Windowsでいえば、「フォルダ」にあたる。

集中管理にかぎらず、分散環境での情報管理も可能である。

ディレクトリサービスを利用することで、ネットワーク上の情報を一元管理でき、クライアントは情報の格納形式を意識する必要がなくなる。

LDAPとは

ディレクトリサービスを提供するためのプロトコルのことで、読み取り用途に最適化されている。

様々な情報を検索可能である。

  • LDAPの利点

    • 管理者視点
      • 自分が管理すべき情報をすべてディレクトリサービス上に置ける
      • 情報管理に統一したインタフェースを持つ管理ツールが使える
    • 開発者視点
      • 情報管理をディレクトリサービスに任せられるので、開発効率があがり、工数を削減することができる
    • ユーザ視点
      • シングルサインオンを利用できる
      • オブジェクト(ファイル等)の検索が容易になる
  • LDAPの特徴

    • 実装が軽い(DAPは重かった)
    • アクセスと更新をサポート
    • 読み取り用途に最適化されている
    • 検索機能が豊富である
    • 認証機能
    • データ複製機能
    • 格納するデータタイプを自由に定義・拡張が可能

LDAPに格納される情報として「属性型(情報の種類)」と「属性値(情報そのもの)」の組を決定する。

代表的な属性型としては下記になる。

属性型 属性型名の詳細 説明
dn distinguished name LDAPサーバ中で一意な名前
o organization name 組織の名前
ou organization unit name 部署等の名前
cn common name 一般名(氏名や社員番号等)
sn sur name
givenName -
mail - メールアドレス
userPassword - パスワード

エントリ

属性型と属性値の組の集合。

LDAPの情報(人、組織等)はエントリによって表現され、各エントリはdn(distinguished name)で区別される。

情報はDIT(Directory Information Tree)というツリー形式で保存され、各ノードがエントリに対応する。

Directory Information Tree 例

f:id:masayuki_kato:20170506000351p:plain

プロトコル

LDAPによるアクセスの仕様はベンダにより種類や意味が異なるため、標準の仕様は存在しない。

複数サーバを連携させる場合には、同じLDAPソフトウェアを用いる方が安全である。

但し、クライアント側から見るとLDAPベンダーに依らず、振る舞いが殆ど同じである。

OpenLDAP 例

f:id:masayuki_kato:20170506000652p:plain

主な設定項目

  • OpenLDAPの場合
    • LDAPスキーマの定義
    • 検索ベースとなるdn(distinguished name)を決定
    • LDAPサーバへのアクセス権の準備(roleの決定)
    • LDAPデータベースの指定
    • LDAPエントリの登録
  • アクセス制御
    • ACI(Access Control Information)を利用してユーザごとに下記項目を設定する
      • アクセスできる情報
      • 許可するアクセスの種類
      • アクセスできる範囲

Active Directory

ユーザとコンピュータの認証を一元管理する認証インフラのこと(シングルサインオンを実現できる)。

シングルサインオンは原理的には他社製品の認証も可能だが、事実上マイクロソフト製品の認証に限定される。

主な機能としては下記があげられる。

ディレクトリサービス

他のネットワークアプリケーションやサービスがLDAPを通してドメインコントローラのディレクトリ情報を利用できる。

※ドメインコントローラ…ネットワーク環境におけるドメイン内で、ユーザアカウントのログオン認証や集中管理するソフトウェア(サーバ)。

ユーザ認証

1回認証されれば、あとは発行されたチケットで別サービスの認証が可能となり、シングルサインオン環境を提供する。

クライアント管理(SMB:ファイル共有)

Windowsで使用されているOSI参照モデルでいうところのアプリケーション層部分の独自プロトコルのこと。

クライアントコンピュータの構成の自動化とユーザ設定の標準化を実現できる。

主要なIDA(Identity and Access)コンポーネント

  • AD DS(Domain Services)
    • ドメインベースおよびスタンドアロンのネットワーク環境に基本となるディレクトリサービスを提供する
    • 保有する情報の例
      • ログオン時のユーザ名
      • ユーザが所属するグループ
      • メールアドレス
      • その他のユーザ情報
      • コンピュータ名
      • 共有フォルダの位置
      • 共有プリンタの位置
      • etc
  • AD LDS(Lightweight Directory Services)
    • Active Directoryの持つ機能のうち、検索のみを切り出したサービス
    • 認証機能は持たないが、DS(Domain Services)と同じ構造のデータベースを持つ
  • AD RMS(Rights Management Services)
    • ドキュメントや電子メールなどに含まれる情報を保護する
    • Officeドキュメント等を暗号化し、安全にファイル交換を行う仕組み
  • AD CS(Certificate Services)
    • PKIディジタル証明書を使用した強力な資格情報を提供(証明書サービス)
    • SSLなどを利用した電子証明書を発行するサービス
    • 証明書サービスがインストールされたサーバは証明機関として機能する
  • AD FS(Federation Services)
    • 複数のIDを別々に作成して管理する必要性をなくす
    • 複数の異なる組織が安全にユーザ認証するサービス
    • 外注先に対して、社員のユーザ名やパスワードを伝えずに適切な役割に応じた権限でWebアプリケーションを制御可能

Active Directoryの論理構造

Active Directoryの用語
  • ドメイン
    • Active Directoryが管理するデータベース単位の領域
  • ドメインコントローラ
    • ドメインのデータベースを保持するサーバ
    • Server2008では「ドメインサーバ」や「ADドメインサーバ」と呼ばれることもある
  • ドメイン名
    • DNSドメイン名をつける
    • 推奨命名規則はインターネット用に登録されたドメイン名の子ドメイン
      • 例;ad.kato-eng.info
  • 論理構造
    • Active Directoryドメインの構造
    • 物理的なサーバの位置とは無関係
Active Directoryの構築
  • 通常は単一ドメイン環境だが複数ドメインにより構成される場合もある
  • Active Directoryドメインは階層構造を持つがドメイン階層に大きな意味はない
  • 上位ドメインから下位ドメインに情報を継承する仕組みはない
  • 物理構造としてはドメインコントローラ2台以上で構成される

Active Directoryの構成ルール

フォレストとツリー

「フォレスト」とは情報共有の範囲で、「ツリー」はフォレストを構成するドメインが上下階層を持つ場合のこと。

f:id:masayuki_kato:20170507103618p:plain

構成ルール
  • 既存のドメインと無関係に作成した新しいドメイン
    • 新規フォレスト
    • 新規ツリー
    • 新規ドメイン
  • 新規ドメインを作成するときは既存のドメインの子階層として構成する
    • ツリーを作成する唯一の方法
  • 新規ドメインを作成するときは既存のフォレストの一部とする
    • 既存ドメインとは無関係なDNS名として構成する
    • 同一フォレスト別ツリーを作成する唯一の方法
  • 親ドメインの追加や、既存のドメインを統合してフォレストにすることはできない

Active Directoryのユーザとグループ

グループとは同じ属性を持ったアカウントをまとめて管理するための概念。

  • 種類(タイプ)
    • セキュリティグループ
    • 配布グループ
  • 範囲(スコープ)
    • ドメインローカルグループ
    • グローバルグループ
    • ユニバーサルグループ
    • ローカルグループ(非ドメインコントローラ)
スコープ 参照可能範囲 設定可能メンバ
ユニバーサルグループ フォレスト全体 フォレスト内のグローバルグループとユニバーサルグループ、ユーザ
グローバルグループ フォレスト全体 そのドメイン内のグローバルグループ、ユーザ
ドメインローカルグループ そのドメイン フォレスト内のグローバルグループとユニバーサルグループ、ユーザ
ローカルグループ そのコンピュータ フォレスト内のグローバルグループとユニバーサルグループ、ユーザ
セキュリティ設定

ポリシを設定することで、グループのセキュリティ設定などを行うことができる。

  • AGLPポリシ
    • 基本的なポリシで、ローカルグループを積極的に使う
  • AGDLPポリシ
    • 複数のサーバがある環境に適している
  • AUPポリシ
    • 小規模な環境向けで、ユニバーサルグループを利用する
  • AGUDLPポリシ
    • 数百人以上のドメインが複数ある大規模環境

AGLPポリシ

基本的なポリシ。

割り当ての流れ
  1. ユーザアカウントを作成(A)
  2. ユーザアカウントをグローバルグループのメンバに割り当て(G)
  3. グローバルグループをローカルグループのメンバに割り当て(L)
  4. ローカルグループにアクセス許可(Permission)を割り当て(P)
ローカルグループ
  • 権限のグループ化(資源管理)、役割(ロール)
  • サーバ管理者が一貫性のある権利をローカルグループとして登録
グローバルグループ
  • ユーザの分類(組織や業務に依存)、ドメイン管理者が責任を持つ
  • ユーザのグループに対して役割を割り当てる

f:id:masayuki_kato:20170507110144p:plain

AGDLPポリシ

複数のサーバを管理する場合に利用されるポリシ。

割り当ての流れ
  1. ユーザアカウントを作成(A)
  2. ユーザアカウントをグローバルグループのメンバに割り当て(G)
  3. グローバルグループをドメインローカルグループメンバに割り当て(DL)
  4. ドメインローカルグループにアクセス許可(Permission)を割り当て(P)
ドメインローカルグループ
  • 同一ドメイン内の全サーバから参照可能
  • グループの作成にドメイン管理者の権限が必要
  • ドメイン単位で管理 / メンバサーバ単位で管理

AUPポリシ

ユーザ管理者とサーバ管理者が同じ場合のような小規模な組織で利用されるポリシ。

割り当ての流れ
  1. ユーザアカウントを作成(A)
  2. ユーザアカウントをユニバーサルグループのメンバに割り当て(U)
  3. ユニバーサルグループにアクセス許可(Permission)を割り当て(P)
ユニバーサルグループ
  • 制限が少なく手軽に使える
  • Active Directoryに対する負荷が高いとされるが、小規模組織であれば問題ない

AGUDLPポリシ

数百人以上のドメインが複数存在するなど、大規模な環境で利用されるポリシ。

割り当ての流れ
  1. ユーザアカウントを作成(A)
  2. ユーザアカウントをグローバルグループのメンバに割り当て(G)
  3. グローバルグループをユニバーサルグループのメンバに割り当て(U)
  4. ユニバーサルグループをドメインローカルグループのメンバに割り当て(DL)
  5. ドメインローカルグループにアクセス許可(Permission)を割り当て(P)
ユニバーサルグループ
  • 異なるドメインのユーザをまとめる場合に必要(ユーザの分類用)
  • メンバ数を少なく抑えたいので、ユーザを直接メンバにしない

ネットワークサービスの管理

OSの選択

サーバOSのシェア

OSにはそれぞれ特徴があるので、特徴を理解したうえで適切なサーバOSを選択することが必要。

  • 用途やアーキテクチャにより異なるがWindowsが過半数
    • Windowsを選ぶ理由
      • 運用管理
      • サポート
      • 他製品との相性
    • 商用UNIXを選ぶ理由
      • 安定性
      • 信頼性
      • 高品質

Linuxのディストリビューション

UNIXを真似て作られたOSがLinux(リナックス)という。

LinuxにはOSの配布形態としていくつかの種類があり、それぞれ汎用性・国際化対応・日本国内での普及度などを考慮して選択する。

  • 様座ななサポート大成
    • 購入時の契約によるユーザサポート
    • 開発者コミュニティやユーザコミュニティ
  • 開発を支援する企業による有償サポート
  • ライフサイクル
    • バージョンがリリースされてから開発・配布元によるサポートが終了するまでの期間(セキュリティパッチの提供期間)
    • 有償の製品版がこのライフサイクルが長い傾向がある。
  • ハードウェアサポート
    • 汎用的なものなら、x86版が用意されている
    • ppc版やIA64アーキテクチャに対応するia64版が用意される場合もある
  • 各種パーツの対応
    • 各種ハードウェアのデバイスドライバがX Window Systemに含まれている
    • 新しいハードウェアが発売されてからデバイスドライバが開発されるまでのタイムラグはWindowsより長くなる傾向にある
    • サーバの場合は安定動作が要求されるので、枯れたハードウェア構成のほうが望ましい

Windowsサーバ

ブートとシャットダウン
  • カーネルモードの起動
    • カーネル本体(ntoskrnl.exe)が起動後、デバイスドライバ・電源管理構造・レジストリの初期化等が行われ、Winlogon.exeが実行される
    • WinlogonによってSCM(Service Contorol Manage)プロセスが作成され、サービスなどが読み込まれる
    • その後、ユーザのログオン処理が実行される
  • セーフモード
    • 最小限のデバイスドライバとサービスからなる環境で起動
    • 起動時にトラブルが起きたとき等に利用する
  • シャットダウン
    • ユーザモードからカーネルモードにシャットダウン通知
    • ユーザモードで各プロセスやスレッドにシャットダウン通知がメッセージ送信されるが、多くのシステムプロセスはシャットダウン直前まで実行されている
    • カーネルモードでは各種ドライバなどの終了設定を行う
    • シャットダウンは電源管理の1つの状態として扱われる(Windowsでは下記のような状態を扱える)
      • シャットダウン
      • 再起動
      • スタンバイ
      • 休止状態
Windowsのブートオプション

f:id:masayuki_kato:20170507125339p:plain

プロセスの管理

プロセスの実行を監視し、実行プライオリティ(優先順序)を指定するための機能を備えている(CPUタイムの割り当て方を制御できる)。

CPUリソースの管理

タスクマネージャを利用し、プロセスの優先度を設定できる。

※「リアルタイム」「高」「通常以上」「通常」「通常以下」「低」

f:id:masayuki_kato:20170507125727p:plain

性能の管理
  • 性能の監視
    • タスクマネージャを利用
    • 実行中のプロセス数、CPU使用率、メモリ使用量、ページファイル使用量、ネットワーク使用率等の監視が可能
  • 性能の管理
    • タスクマネージャでプロセスの優先度を変更する
    • システムのプロパティのパフォーマンスオプションを利用することで下記項目等を管理できる
      • プロセッサのスケジュール
      • メモリ使用量
      • 仮想メモリ
ネットワークの管理

代表的なコマンドは下記表を参照。

コマンド 説明
ipconfig TCP/IP構成の表示・変更
arp IPアドレスとMACアドレスの変換テーブルを表示・変更
ping 簡単なネットワーク接続テスト
pathping pingとtracertの両方を一度に実現
netstat 様々なネットワーク利用統計情報の表示
nbtstat NetBIOS情報を表示
tracert 指定された対象ホストへのルートを確認
route 静的ルーティングテーブルの表示・変更
hostname ローカルシステム名の表示
nslookup IPアドレスとホスト名の変換を確認できる
ログの管理

サーバを管理・運用するうえで重要なのがログファイルである。

ログファイルを確認して、異常が発生していないかを確認する必要がある。

Windowsでは管理ツールである「イベントビューア」を利用する。

バックアップとリストア
  • バックアップ計画
    • バックアップをとらなければいけないファイルの選別
    • 「誰が」「どこで」「いつ」「どのような条件」でバックアップを行うか
    • 重要ファイルをどの程度迅速にリストアすべきか
    • どの程度の期間データを保持しなくてはならないか
    • バックアップしたファイルを記録したメディアをどこに保管するか
    • Windowsではバックアップとリストアのツールがある
ユーザ管理
  • ユーザやグループの識別は可変長の数値であるSID(Security ID)で行う
  • SIDはバイナリ値で、テキスト表示では「S-R-I-S-S…」と表示される
    • 「先頭のS」はSIDをテキストに表示する場合の接頭辞
    • 「R」はリビジョン番号で常に「1」である
    • 「I」は48ビットの識別機関値で、通常のユーザやグループでは「5」になる
    • 「S-S」32ビットの従属機関値および、RID(名前空間中で一意)である
  • 全てのプロセスは1つのユーザアカウントに対応付けられたSIDと1つ以上のグループに対応付けられたSID、特権等から構成される「アクセストークン」を持つ
  • オブジェクトへのアクセス時にSRM(Security Reference Monitor)がトークンを検査し、アクセスの可否を決定する

Linuxサーバ

ブートとシャットダウン
  • 最初のプロセスと実行レベル

下記の順序でブートが行われる。

  1. カーネルはブートローダで指定した「実行レベルを引数としてinitを起動」(必要なプロセスを起動)する
  2. initは設定ファイルである「/etc/inittab」を読み込み、引数に指定された実行レベルに一致するエントリを解釈する
  3. 実行スクリプトは「/etc/rc.d/rcX.d ※Xは実行レベル」で確認可能

ブートが完了するとログイン処理が開始される。

  • ログイン処理
    • ログイン処理を行うプログラムは所定のメカニズムに沿ってユーザ認証を行い、そのユーザの権限で動くシェルを起動する
    • シェルはキーボードやディスプレイ、マウスといったデバイスを通じてユーザとの対話を開始する
  • シャットダウン
    • UNIXにおけるシャットダウンは実行レベルを「0」にすることである。
    • 新規のログインが行えなくなり、「/etc/rc0.d」ディレクトリに置かれているスクリプトが順に実行される
      • 起動されたサービスプロセスやネットワークを停止する
  • ランレベルの設定
    • ランレベルごとに立ち上がるプロセスを設定することができる(chkconfig / sysv-rc-conf)

f:id:masayuki_kato:20170507135354p:plain

プロセスの管理
  • プロセスリソースの制限
    • limitコマンドによって設定が可能
    • 累計CPUタイム、作成可能な最大ファイルサイズ、コアファイルの最大サイズ、プロセスが利用できる最大メモリ量等が設定可能
  • CPUリソースの管理
    • プロセスの実行を監視し、実行プライオリティ(優先順序)を指定する機能
    • nice値
      • プロセスに要求される実行プライオリティ
    • 現在の実行プライオリティ
      • nice値、CPUタイム経過時間、他のプロセスのプライオリティ等を考慮に入れながらOSが動的に更新する
  • プロセスを完全に削除する場合はkillコマンドを使用
    • デフォルトでは15番のTERMシグナルを用いる
    • 強制的に確実に削除するためには9番のKILLシグナルを用いる
性能の管理
  • CPUリソースの管理
    • vmstatコマンドでシステムのCPU使用状況を監視する。
  • メモリの管理
    • vmstatコマンドでシステムのメモリ使用状況(実行中のプロセスの数、ページアウトとスワップの回数等)を監視する
    • topコマンドでメモリ使用量を監視する
  • ディスク入出力の性能
    • ipstatやsarコマンドで性能、dfコマンドで使用量を監視する
    • 監視対象はディスクハードウェア、複数ディスクへのデータ分配、物理ディスクにおけるデータ配置などである
ネットワークの管理

代表的なコマンドは下記表を参照。

コマンド 説明
ifconfig ネットワークインタフェースに関する情報を表示・設定
arp IPアドレスとMACアドレスの変換テーブルを表示・変更
ping 簡単なネットワーク接続テスト
netstat 様々なネットワーク利用統計情報の表示
traceroute 指定された対象ホストへのルートを確認
route 静的ルーティングテーブルの表示・変更
hostname ローカルシステム名の表示
nslookup IPアドレスとホスト名の変換やその他の変換を確認できる
ログの管理
  • ログファイルの管理
    • syslogdプログラムによってシステムのログファイルを作成
    • 各種サーバのログファイルはsyslogdで管理可能
  • システムメッセージの履歴
    • ログの種類、レベル、出力先等は「/etc/syslog.conf」で設定できる
    • ログファイルはサイズがどんどん大きくなる
      • cronによって定期的に削除 / ローテーションを行う必要がある
  • ログインとログアウトの履歴
    • ログインとログアウトの履歴は「/var/log/wtmp」に記録される
      • lastコマンドでこのファイルを参照できる
バックアップとリストア
  • バックアップ計画
    • Windowsセクションで記載済
  • システム(ファイルシステム)のリストア
    • OSを再インストールし、その後変更したファイルをリストア
    • 代替メディアからブートし、実施済のフルバックアップからファイルシステムをリストアする
  • バックアップ / リストアのためのコマンド
    • tar と cpio
      • 比較的少量の重要データを持つシステムで十分にバックアップが行える
    • dump と restore
      • ファイルシステム内のあらゆるファイルを選択的にバックアップする
    • dd
      • 未加工データをデバイス間で転送する
    • mt
      • テープを直接操作するためのコマンドで基本的なテープ操作を実行できる
  • バックアップ専用のツールも存在する
ユーザ管理

UNIXでは「UID(User ID)」「GID(Group ID)」でユーザ管理を行う。

すべてのプロセスは1つのUIDと複数のGIDを持ち、UIDとGIDによって資源へのアクセス可否が決定される。

  • UID
    • ユーザを識別するためのID
    • 2バイト符号なし整数値
  • GID
    • ユーザグループを作成すると割り当てられるID
    • 2バイト符号なし整数値

UIDとGIDは各端末ごとに起動されるloginプロセスによって割り当てられる。

loginプロセス自体はroot(管理者権限)で稼働しており、ユーザの認証に成功すると、そのユーザに応じたUIDをもつシェルを生成し、それをログインしたユーザに使用させる。

このとき、アカウント名をキーとして、「/etc/passwd」を調べてUIDを、「/etc/group」を調べてGIDのリストを決定する。

  • 組込みアカウント

    • システムにあらかじめ設定されているアカウントのこと
    • UIDが0の「root」はどのシステムにも必ず存在し、システム管理者としてすべてのセキュリティ機構をバイパスして、あらゆる操作を行うことができるユーザアカウントである
    • 組込みアカウントはファイルの所有者や所有グループを表すプレースホルダである
    • 通常ログインは禁止されている
    • セキュリティ上の理由から、ネットワークサービスではアプリケーション独自のアカウントを用意して利用することが多い
  • 共有資源

    • アクセス制御のために1つのUID、1つのGID、アクセス権制御ビットの3つの情報を保持する
    • ファイルのアクセス権制御ビットは12ビットで、下位9ビットをアクセス権のチェックに使用する
    • アクセス権は下記の要領で確認できる
      • 同じ所有者
        • 所有者UIDとプロセスのUIDが一致した場合、所有者アクセス権ビットを調べてアクセスの可否を決定する
      • 同じグループ
        • 所有者GIDとプロセスのGIDリストのいずれかが一致した場合、所有者グループアクセス権ビットを調べて可否を決定する
      • それ以外
        • 一致しない場合、その他のアクセス権ビットを調べ、可否を決定する

f:id:masayuki_kato:20170507143032p:plain

SetUIDビットとSetGIDビットは、あるプログラムを実行するときだけ、UID/GIDを動的に変更することができる仕組み。

  • 実行可能なプログラムファイルのSetUIDビットがONの場合
    • ファイルの所有者UIDでプロセスが実行される(実行UID)
  • SetGIDビットがONの場合
    • ファイルの所有者グループGIDでプロセスが実行される(実行GID)

この仕組みはプログラムが任意のファイルにアクセスしたり、子プロセスを起動できるという脆弱性を持っている。

そのため、SetUIDとSetGIDは極力使用しないことが推奨されている。

  • ネームサービス
    • ドメイン内でのユーザ情報を統一して管理することを目的に、NISやLDAPなどの「ネームサービス」が用いられる
    • ドメイン内でアカウント名とUID/GIDを統一して扱う
    • 注意が必要な点としては下記3つが挙げられる
      • rootアカウントはシステムに固有なのでパスワードは共有しない
      • システムアカウントのUID/GIDは機種依存であり、異機種混在環境では共有できない
      • ネームサービス自体がネットワークサービスであり、脆弱性が潜んでいる可能性がゼロではない

ネットワークサービス管理のまとめ

Windows UNIX
ブートとシャットダウン カーネルモード
セーフモード
シャットダウン(電源管理の1つとして扱う)
カーネルによる起動
init起動(実行レベル)、ログイン処理、シャットダウン(実行レベルを0にする)
プロセスの管理 プロセスの管理
CPUリソースの管理
※タスクマネージャを使用
プロセスリソースの制限(コマンドを使用)
CPUリソースの管理
プロセスの削除
性能の管理 性能(プロセス数、CPU使用率等)の監視
プロセスの優先度の設定
※タスクマネージャを使用
CPUリソースの管理
メモリの管理
ディスク入出力の性能
ネットワークの管理 管理用コマンド 管理用コマンド
ログファイル 管理ツールのイベントビューアを使用
※アプリケーションログ、セキュリティログ、システムログ等が確認可能
ログファイルの管理
※システムメッセージの履歴、ログインとログアウトの履歴等が確認できる
バックアップとリストア 「システムツール」の「システムの復元」などを利用
ハードディスクの内容をバックアップ
システム(ファイルシステム)のリストア
ユーザ管理 SID UIDとGID