0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LPICひたすら暗記(3日目)

Last updated at Posted at 2020-09-24

#Sambaの学習

##sambaの概要
・Samba4ではActive Directoryでドメインコントローラになれる
・Sambaによるドメコン「NTドメイン」「ADドメイン」の2種
・Samba4で、Windowsの共有フォルダやSambaが提供する共有ディレクトリにアクセスするコマンド
 ①smbclient ②mount.cifs ③mount -t cifs

書式
  smbclient [オプション] //ホスト名/共有名
   smbclient //ホスト名/共有名 [オプション]   
デーモン 説明 ポート
-L ホスト名/ --list=ホスト名 指定したホストで利用可能な共有リソースを一覧表示
-N 認証を行わない
-U ユーザー名/--user=ユーザー名 接続するユーザーを指定

・Samba3デーモン↓

デーモン 説明 ポート
smbd ファイル、プリンタの共有、ユーザー認証等Sambaの基本的な機能 139/tcp,445/tcp(ダイレクトホスティングSMBサービス使用時)
nmbd ブラウジング機能、WINSサーバーなどの機能を提供 137/tcp 138/tcp
winbindd NSSを利用しWindind(Samba側からWindowsユーザの情報を利用可能に)と呼ばれる機能を提供 なし

・Samba4がドメコンの場合は「samba」プログラムに統一。必要に応じて、上記から各機能が呼び出される。
・samba3,samba4の相違↓

機能 samba3 samba4
ドメインコントローラー NTドメイン/認証はNTLmv2/Einsサーバーによる名前解決/LDAP連携可能 Actieve Directory・認証はKerberosを使用/DNSによる名前解決/LDAPを内蔵
ファイルサーバ SMB2に対応 SMB2,SMB3に対応

・NTLMv2認証:チャレンジレスポンス方式
・Kerberos認証:1つの認証でユーザが複数台のサーバへアクセスすることが出来る
・WINS:名前解決にNetBIOS名とIPアドレスを対応付ける
・SMB3:SMB2に加えて、パフォーマンスの改善や暗号化などの機能が追加

■Samba4での管理ツール:samba-tool

書式
  samba-tool サブコマンド   

|サブコマンド|説明|
|:-----------:|:------------:|:------------|
|dns|DNS管理を行う|
|domain|ドメイン管理を行う|
|testparm|設定ファイルの構文チェックを行う|
|user|ユーザー管理を行う|

■sambaの主要なデーモン(smbd,nmbd,winbindd)にメッセージを送るプログラム:smbcontrol

書式
  smbcontrol [対象] [メッセージタイプ]   

|対象|説明|
|:-----------:|:------------:|:------------|
|all|smbd,nmbd,windinddの全プロセスにブロードキャスト|
|<デーモン名> or |上記のいずれか指定されたデーモンpdiファイルに記載されたプロセスID,または直接指定したPIDみメッセージ送信|

|メッセージタイプ|説明|
|:-----------:|:------------:|:------------|
|clese-share|指定した共有をクローズ ※対象はsmbdのみ|
|reload-config|指定したデーモンに設定の再読み込みをさせる|
|kill-client-ip|指定したIPアドレスのクライアントを切断※対象はsmbのみ|
|ping|指定した対象にpingし応答が来た対象のPIDを表示|

■Sambaの設定ファイル「/etc/samba/smb.conf」には3つの特別なセクションである[global]、[homes]、[printers]セクションと、個々の共有の設定を行う任意の名前のセクションがある。

■[homes]、[printers]、任意の名前のセクションで使用される主な設定項目 ↓

|設定|説明|
|:-----------:|:------------:|:------------|
|comment =コメント|ブラウジングした際に表示される説明|
|path =ディレクトリ|共有ディレクトリのパスを指定|
|writable = yes/no|書き込みの許可か否か|
|read onle = yes/no|読み取り専用するか否か|
|rwrite list = ユーザ名/@グループ名|書き込み拒否でも書き込みができるユーザを指定|
|valid users=ユーザ名/@グループ名|アクセス可能なユーザ|
|group ok = yes/no|ゲストログインの許可するか。Yesの場合はパスワードなしでゲストとしてログオン|
|hide files = /ファイル名/|表示させたくないファイル、ディレクトリ(アクセス可能)|
|veto files = /ファイル名/|表示させたくないファイル、ディレクトリ(アクセス不可)|
|force user =ユーザー名|認証したユーザーに関係なく。共有内では指定したユーザーの権限で作業を行わせる|
|force group =グループ名|認証したグループに関係なく。共有内では指定したグループの権限で作業を行わせる|

■共有プリンタの設定:[printers]セクション

書式
  printtable = yes
   print ok = yes  
   のいずれか一方

・Windowsクライアントにプリンタドライバがインストールされていない場合、自動的にドライバをダウンロードさせる

■[global]セクションで使用される全般設定に関わる主な設定項目

|設定項目|説明|
|:-----------:|:------------:|:------------|
|workgroup = ワークグループ名|所属するワークグループを指定|
|server string =文字列|ブラウジングの際に表示されるサーバーの説明|
|netbils name = NetBios名|SambaサーバのNetBios名を指定|
|brousable = yes/no|ブラウジングの際に表示するかどうか。表示されていなくてもアクセス可能|
|wins support = yes/no|Sanmba差0ば0をWinsサーバーとして動作するか|
|wins server = IPアドレス|WINSサーバーが存在する場合、IPアドレスを指定|
|hide dot files = yes/no|.で始まるファイルを隠すか|
|logono script = ファイル名|ログオン後に実行されるスクリプト|

■[global]セクションで使用される認証設定に関わる主な設定項目

|設定項目|説明|
|:-----------:|:------------:|:------------|
|security = user/domain/abs|認証方式を設定 user=ユーザーレベル domain=NTドメコンを使用し認証 ads=ADドメコンを使用し認証|
|passdb = 認証方式|Samba3.0以降 security=useの場合smcpasswd,tdbsam.ldapsamなどの認証方式を指定|
|smb passwd file = ファイル名|security = userの場合 smbpasswdで認証を行う際のパスワードファイルの指定|
|password server = NetBiOS名/IPアドレス|security=[ads/domai/server]の場合、認証を別の差0ば0で行う際のパスワードサーバーの指定|

Samba2.2系のユーザ管理の特徴
・ユーザ認証:smbpasswd方式
・パスワード管理:テキスト形式
・パスワードファイルの指定:設定項目「smb passwd file」
・ユーザ管理:smbpasswdコマンド

Samba3.0系からのユーザ管理の特徴
・ユーザ認証:複数方式から選択(後述)

・smbpasswd
 テキスト形式のパスワードファイルを使用した認証方式
・tdbsam
 バイナリ形式のデータベースを使用した認証方式
・ldapsam
 LDAPサーバを使用した認証方式

・認証方式の指定:設定項目「passdb backend」
・ユーザ管理:pdbeditコマンド

■Sambaユーザの管理:smbpasswd
・パスワードファイル:/etc/samba/smbpasswd」
・「/etc/samba/smb.conf」の項目「smb passwd file」でパスワードファイルを変更可能

書式
  smbpasswd [オプション] [Sambaユーザ名]

|オプション|説明|
|:-----------:|:------------:|:------------|
|-a|Sambaユーザーの作成|
|-d|Sambaユーザーの無効化|
|-e|Sambaユーザーの有効化|
|-x|Sambaユーザーの削除|

■Samba3.0系から:pdbedit
・smbpasswdを含むいろいろな認証方式を使用することが出来る
・デフォルトはバイナリ形式のデータベースファイルを扱うtdbsamという認証方式(その他にLDAP認証方式のldapsam)

書式
  smbpasswd [オプション] [Sambaユーザ名]

|オプション|説明|
|:-----------:|:------------:|:------------|
|-L|Sambaユーザーの一覧表示|
|-a|Sambaユーザーの追加|
|-x|Sambaユーザーの解除|

■[global]セクションで使用されるログ設定に関わる設定項目

|メッセージタイプ|説明|
|:-----------:|:------------:|:------------|
|log file = ファイル名|ログファイルを指定|
|log level = レベル|ログレベルを指定(数字が大きいほど詳細)|
|max log size = サイズ|ログファイルイルの最大サイズを指定。ファイルが制限値を超えた場合は、あたらいいログファイルを作成。0指定で無制限|

■パスワードに関わる主な設定項目:[global]セクション

|メッセージタイプ|説明|
|:-----------:|:------------:|:------------|
|user map = ファイル名 |ユーザー名のマッピング情報を格納したファイル指定|
|guest account = ゲストユーザー名|ゲスト認証を許可する場合、ゲストのユーザーのユーザー名を指定|
|map to guest = Never/Bad user/Bad Password|Sanmaユーザーとして認証できなかった場合の対応を指定 Never:ゲスト認証を許可しない Bad User 存在しないユーザーの場合はゲスト認証(存在するユーザーでパスワードミスはゲスト認証不可) Bad Password パスワードのミスの場合はゲスト認証
|encrypt passwords = yes/no|暗号化されたパスワードを使用するか否か|
|unix password sync = yes/no|LinuxとSambaのパスワードを同期させるか否か|
|passwd program = プログラム名|samba側でパスワードを変更した際に実行するプログラムを指定(unix password syncが有効な場合のみ)|
|passwd chat = 文字列|passwd program実行時の応答内容を指定|
|||

■smbaの設定ファイル「/etc/samba/smb.conf」の構文チェック

書式
  testparm [オプション] [設定ファイル]

|オプション|説明|
|:-----------:|:------------:|:------------|
|-s|構文をチェックした後、Enterキーを押さなくてもsmb.confの内容を表示|
|-v|構文をチェックした後、smb.confに記述されていない(未定義)のパラメータも表示|

■バーミッションの設定

|メッセージタイプ|説明|
|:-----------:|:------------:|:------------|
|create madsk = 値|ファイルに適用可能なパーミッションを指定。この値とDOSノゾクセイヲUNIXの属性に変換した値との倫理積がパーミッションをなる。属性をしよする場合に使用。デフォルト0744|
|force create mmode|必ずファイルに適用されるパーミッションをしてい。皓の値と、create maskで算出された値との倫理和が最終的なパーミッションとなる。属性を追加する場合に使用。デフォルト0000|
|directory mask = 値|ディレクトリに適用可能なパーミッションを指定。この値と、DOSの属性をUNIX属性に変換した値との倫理積がパーミッションとなる。属性を削除したい場合に使用 デフォルト0755|
|force directory mode = 値|必ずファイルに適用されるパーミッションを指定。この値とDirectory maskで算出された値との倫理和が最終的なパーミッションになる。属性を追加する場合に使用。デフォルト0000|

共有内のディレクトリのパーミッションは次のように決定されます。
1.DOSのアクセス許可属性からUNIXのパーミッションにマッピングされる

2.上記1の値とdirectory maskの値の論理積を求める
論理積は、両方が1の場合のみ1(いずれかが0の場合は0)となりますので、属性を削除したい場合に使用します。デフォルトは0755です。

例)上記1の値が770、directory maskの値が755の場合
rwx rwx rwx
111 111 000 = 770
111 101 101 = 755


111 101 000 = 750
自分以外のユーザの書き込み権が削除されます。

3.上記2の値とforce directory modeの値の論理和を求める
論理和は、いずれかが1であれば1となりますので、属性を追加する場合に使用します。この値がファイルの最終的なパーミッションの値になります。デフォルトは0000です。

例)上記2の値が750、force directory modeの値が0111の場合
rwx rwx rwx
111 101 000 = 750
001 001 001 = 0111


111 101 001 = 751
全てのユーザに実行権が与えられます。

■ホストのアクセス制御

|書式|説明|
|:-----------:|:------------:|:------------|
|hosts allow = IPアドレス|接続許可|
|hosts deny = IPアドレス|接続拒否|

・複数のホストの指定は[,][スペース][タブ]で区切る。
・allowに指定されないホスト=拒否
・denyに制定されないホスト=許可
・矛盾=Allowが優先

■winbind機能:SambaサーバはWindowsドメインの既存のユーザ情報を利用することが出来る

<認証>

  1. Sambaサーバへのアクセス時、Windowsクライアントにログオンしたユーザ名/パスワードがSambaに送信

  2. Sambaは認証情報⇒ドメインコントローラに問い合わせ、ドメインコントローラが認証作業を実施。

  3. 認証に成功⇒SambaはUIDをWinbind機構に問い合わせます。Winbind機構はWindowsユーザとLinuxユーザのマッピング情報のデータベースを検索し、存在しない場合は新たにLinuxユーザを作成します。
    作成されたLinuxユーザの情報は「/etc/passwd」ファイルなどには格納されないため、SambaはNSS(Name Service Switch)を利用してユーザ情報を取得。

  4. 作成されたLinuxユーザのUIDを使用して、Sambaの共有上のファイルへアクセスする。

<手順>

  1. Windowsドメインに参加

  2. NSSの設定ファイル「/etc/nsswitch.conf」にwinbindを追加
    「/etc/passwd」ファイル、「/etc/group」ファイルの他にwinbindからもLinuxユーザーの情報を取得できるように、以下の行にwinbindを追加します。

passwd: files winbind
group: files winbind

  1. 「smb.conf」の[global]セクションにWinbind関連の設定を記述する。
    以下はWinbind関連の主な設定項目です。

・Sambaサーバをドメインメンバーとする設定項目「security」の値に「domain」または「ads」を指定
・Winbind機能を利用する際に「idmap config」の設定は必須
・IdmapはWindowsユーザとLinuxユーザのマッピングを行う機能
 winbinddはLinuxユーザを作成する際、「idmap config * : range」で指定された範囲の最小値からUIDおよびGIDをユーザに割り当てる。
「idmap config * : backend」は、マッピング情報の格納先であるIdmapバックエンドを指定

security = ads (またはdomain) 
idmap config * : backend = tdb
idmap config * : range = 10000-19999

  1. Winbind機構を起動する。(プロセス名はwinbindd)

■マスターブラウザの検索、ワークグループ内のホストの検索、NetBIOS名の問い合わせなどを行う:nmblookupコマンド

書式
  nmblookup [オプション] NetBIOS|IPアドレス|ワークグループ名

|オプション|説明|
|:-----------:|:------------:|:------------|
|-M|マスターブラウザの検索|
|-A|引数をIPアドレスとみなす。指定されたIPアドレスのMACアドレスやNetBios名などを表示|

■マスターブラウザ:ブラウザリスト(Windowsネットワーク内にあるコンピュータのリスト)を管理するコンピュータのことです
・どのホストがマスターブラウザになるかは、OSの種類による優先度(OSレベル)などで変わる

・[global]セクションにて使われるマスターブラウザ関連の主な設定項目

|設定項目|説明|
|:-----------:|:------------:|:------------|
|os level=数値|ブラウザ選定時に宣言する優先度を指定(数値が大きいほど優先度は高い)|
|local master = yes/no|ブラウザ選定に参加するか否か|
|preferredmaster = yes/no|ブラウザ選定を要求するか否か|

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?