Engineer of the lawyer

I was able to pass the Network Specialist. Next target is the Project Manager.

LPIC202 ファイル共有

以下は小豆本を参照してノート代わりに自己流にまとめたもの。間違え等があるかもしれないので、詳細は本書を参照してください。

Microsoftネットワーク

Microsoftネットワークで使われる概念

ワークグループとドメイン

コンピュータをひとくくりにする単位 WORKGROUPなど

マスターブラウザ

Windows上で「ネットワーク」のアイコンを開くと同一ネットワークセグメント内のコンピュータ一覧が表示される。このようなホストのリストを取りまとめて管理しているのがマスターブラウザというホストであり、ネットワークセグメント内に1つは存在する。他のホストはマスターブラウザからホスト名一覧を取得して利用する。マスターブラウザになるホストは、OSの種類や設定にしたがって自動的に選出されるので常に同じホストがマスターブラウザになるわけではない。

NTドメイン

WindowsNTで利用されるユーザ管理の仕組み。ネットワーク上のWindowsホストをドメインという単位でグループ化し、ドメインコントローラ(認証サーバ)を使ってアカウント情報を集中管理する。

ドメインコントローラ

NTドメインを管理するためのサーバであり、ドメイン内のユーザに対してログオン認証を行う。WindowsNTServerを使ってドメインを構築した場合、プライマリドメインコントローラ(PDC)が存在し、それ以外はバックアップドメインコントローラ(BDC)として存在する。

NetBIOS

ネットワーク内のホストにそれぞれ異なる15バイトの以内の名前を付けて識別したものに、1バイトの通信アプリケーション情報を追加したのが、NetBIOS名。
↓NetBIOSについてはここがわかりやすいかも
NETBIOS名とホスト名の違い | WindowsServer管理者への道

SMB(ServerMessageBlock)

Windowsのファイル共有やプリンタ共有を提供するプロトコル。

WINSサーバ

DNSではホスト名とIPアドレスの名前解決を行うが、NetBIOS名とIPアドレスの名前解決を行うサーバがWINSサーバ。WINSに情報が存在しない場合は、LMHOSTSファイルが名前解決に使われる。

Sambaサーバの構築

Sambaとは

Microsoftネットワークで使用されているSMBプロトコルを扱うことでWindowsでのファイル共有の仕組みを実現するオープンソフトウェア。
・ファイルサーバ機能
・プリントサーバ機能
・WINSサーバ機能
・ドメインコントローラ
・ActiveDirectoryメンバーサーバ
・Microsoftネットワーククライアント

Sambaサーバの機能を提供する主要なデーモンはsmbdとnmbd。

Sambaの基本動作

smbd ファイル共有、認証など
nmbd ブラウジング機能、NetBIOS名前解決、WINSサーバなど
winbindd Winbind機能

137/UDP NetBIOS名前解決やブラウジング
138/UDP NetBIOS名前解決やドメインログオン
139/TCP ファイル共有(SMBを利用していない場合)
445/TCP ファイル共有(SMBを利用している場合)

smb.conf

/etc/samba/smb.conf

#全体設定
[grobal]

#共有定義
[homes]
[printers]
[セクション名1]
[セクション名2]

globalセクションの設定

・workgroup = ワークグループ名|ドメイン名
Sambaサーバが所属するワークグループ名もしくはドメイン名を指定する

・netbios name = NetBIOS名
SambaサーバのNetBIOS名を指定する

・server string = コメント
サーバの名前など説明を記述する

・hosts allow = ホスト
接続を許可するホストを記述。このパラメータを使用した場合、記述されなかったホストはdenyになる。

・guest account = ゲストユーザ名
guestアカウントを定義する。アカウントが存在しないユーザにguestとしてアクセスさせる場合に利用する。

・map to guest = Never|Bad User|Bad Password
Sambaユーザとして認証できなかった場合にどうするかを指定する。
つまり、guestログインをどのように処理するか。
Never guest認証を許可しない
Bad User 存在しないユーザを指定された場合はゲスト認証であるとみなし,guest accountを参照する
Bad Password それに加えてパスワード入力ミスの場合もゲスト認証とみなす。

・log file = ログファイル名
ログファイルを指定する。

・max log size = サイズ
ログファイルの最大サイズをKB単位で指定する。値が0の場合はサイズによる制限は行われない。

・encrypt passwords = Yes|No
ハッシュ値を使った暗号化パスワードを利用する。※必ずYesにすること

・smb passwd file = パスワードのファイルパス
パスワードをsmbpasswd方式で行う場合のパスワードファイルを指定する。

・username map = マッピングファイル名
UNIXユーザ名 = Windowsマシンのユーザ名wマッピングさせる。
※/etc/samba/smbusers

・logon script = スクリプトファイル名
ログオン時に実行するスクリプトファイルを指定する。

・wins support = Yes|No
SambaサーバをWINSサーバとして動作させるかどうか。

・wins server = IPアドレス
WINSサーバがあれば、WINSサーバのIPアドレスを指定する。

globalセクション暗記用まとめ

workgroup = ワークグループ名|ドメイン名

netbios name = NetBIOS名

server string = コメント

hosts allow = ホスト

guest account = ゲストユーザ名

map to guest = Never|Bad User|Bad Password

log file = ログファイル名

max log size = サイズ

encrypt passwords = Yes|No

smb passwd file = パスワードのファイルパス

username map = マッピングファイル名

logon script = スクリプトファイル名

wins support = Yes|No

wins server = IPアドレス
globalセクション以降の設定

globalセクション以降は個々の共有設定を行う

・comment = コメント
コメントを指定する

・browseable = Yes|No
ブラウジングした時に表示されるかどうかを指定する。

・writable = Yes|No
・read only = No|Yes
書き込みを許可するかどうか、それぞれ逆の意味になる。

・path = ディレクトリのパス
共有ディレクトリのパスを指定する。

・force user = ユーザ名
・force group = グループ名
共有内に作成するファイルやディレクトリの所有者・所有グループを強制的に指定したユーザやグループにする。

・write list = ユーザ名もしくは@グループ名
writable = No もしくは read only = Yes のとき、書き込みが例外的に許可されるユーザを指定する。

・hide dot files = Yes|No
.で始まる名前のファイルやディレクトリを表示しないようDOSの隠し属性を適用するかどうか。

・hide file = /ファイル名/
任意の名前のファイルやディレクトリを表示させたくない場合指定する。

・veto file = /ファイル名/
表示もアクセスもさせたくないファイルやディレクトリの名前を指定する。

・create mask = mode     ファイルに適用可能なパーミッション
・directory mask = mode    ディレクトリに適用可能なパーミッション
・force create mode = mode  必ずファイルに適用されるパーミッション
・force directory mode = mode 必ずディレクトリに適用されるパーミッション

・valid users = ユーザ名
アクセス可能なユーザを指定する

・guest ok = Yes|No
・public = Yes|No
guestログインを許可するか否か。どちらのパラメータも同じ意味。

homesセクションの設定

homesセクションはUNIXユーザの各ホームディレクトリを一括して共有するためのセクション

printersセクションの設定

共有プリンタに関する設定を行う。

・print ok = Yes|No
・printable = Yes|No

これらのパラメータがYesに設定されていればファイル共有ではなくプリンタ共有として扱われる。

構文チェック

smb.confの構文にミスがないかどうかは、testparmコマンドを使って調べる。

#testparm [オプション] [設定ファイル]
-s 構文チェック後、Enterkeyを押さずともsmb.confを表示する
-v デフォルト値のパラメータについても表示する

設定に関する諸注意

マスターブラウザ

Sambaサーバをマスターブラウザにするかどうかを決定するにはいくつかの項目を設定する必要がある。
・local master = Yes|No
NoとするとLAN内でローカルマスターブラウザに選出されない

・domain master = Yes|No
Yesとするとドメインマスターブラウザに選出される(選出されるのであって必ずではない)

・preferred master = Yes|No|Auto
Yesとするとブラウザ選定を促す

・os level = 数値
ここの数値が高いほどマスターブラウザに優先的に選出される(33)

認証の設定

・security = SHARE
Windows95/98相当のセキュリティレベルで共有単位での認証となる

・security = USER
ユーザレベルのセキュリティを設定。Sambaユーザアカウントとパスワードが必要

・security = SERVER
・passwprd server = 192.168.xx.xx
認証サーバを別に用意し、そちらで行う。

・security = DOMAIN
ドメインコントローラで認証を行う。

・security = ADS
Active DirectoryドメインにKerberos認証を使ってログオンする。

Sambaユーザ管理

security = USER の場合、UNIXユーザとは別にSambaユーザが必要となる。ユーザ情報が格納されるバックエンドデータベースとして以下の種類が利用できる。

・passdb backend = smbpasswd
/etc/samba/smbpasswdにユーザ情報を格納する

・passdb backend = tdbsam:/etc/samba/passdb.tdb
バイナリ形式データベースファイルにユーザ情報を格納する

・passdb backend = ldapsam:ldap://LDAPサーバ名[:ポート番号]
LDAPを使う場合、250名以上が目安

smbpaswd
#smbpasswd [オプション] ユーザ名
-a Sambaユーザを作成する
-d Sambaユーザを無効化する
-e Sambaユーザを有効化する
-x Sambaユーザを削除する

(例)hogehogeユーザを作る

smbpasswd -a hogehoge

→/etc/samba/smbpasswdに格納される

(例)作成したhogehogeユーザを削除する

smbpasswd -x /etc/samba/smbpasswd hogehoge
pdbedit

samba3.0系以降で使えるsmbpasswdコマンド

#pdbedit [オプション] ユーザ名
-L Sambaユーザ一覧を表示する
-a Sambaユーザを追加する
-x Sambaユーザを削除する
その他sambaに関するコマンド
#smbstatus
Sambaサーバに接続されているクライアント、利用中の共有、ロックされているファイルが表示される

#nmblookup
NetBIOS名を問い合わせたり、NetBIOS名からIPアドレスを検索したりすることができる。

#smbclient
FTPクライアントのようにコマンドラインで操作が行える。

NFSサーバの構築(Network File System)

NFSサーバの設定

NFSサーバで特定のディレクトリを公開することをエクスポートという。エクスポートするディレクトリは、/etc/exportsに記述

/etc/exportsには公開するディレクトリ名、クライアント(ホスト名かIP)、オプションを1行で記述。

/etc/exportsの主なオプション

ro 読み込み専用でエクスポートする
rw 読み書き可でエクスポートする
no_root_squash rootでのアクセス時にroot権限で実行する
root_squash rootでのアクセス時に匿名アカウント権限で実行する
all_squash すべてのアクセスを匿名アカウント権限で実行する

その他のコマンド
exportfs [オプション] [ホスト:パス…]
現在のエクスポート状況を表示したり、/etc/exportsの変更を反映させたりする

-a すべてのディレクトリをエクスポート
-r すべてのディレクトリを再エクスポート
-u アンエクスポートする
-v 詳細に表示する

(例)/home/hogehogeをエクスポートする
exportfs /home/hogehoge
showmount [オプション] [ホスト]
NFSサーバでエクスポートしているディレクトリを調べる

-a クライアントのホスト名とマウントしているディレクトリを表示する
-e 指定したホストでエクスポートしているディレクトリを表示する
nfsstat [オプション]
NFSの統計情報を表示する