SMBとは
windowsのファイル共有で用いられるプロトコル。CIFSと呼ばれることもある。
SMBは本来NetBIOS上で動作するプロトコル。over TCP/IP で利用することも可能(NBT)。さらにTCP上に直接SMBを実装したものをDirect Hosting of SMBと呼ぶ。
- SMBのポート番号
- NBTではTCP139 と UDP137,138 を使用する
- Direct Hosting of SMBではTCP445を使用する
Sambaとは
SMBプロトコルを用いるWindows互換サービスをLinux上で実装したもの。
SMB=Sambaではない!!
Sambaの機能
- ファイル・プリンタ共有サービス
- 名前解決(NetBIOS名の解決。WINSサーバ機能)
- ブラウジング(windowsの「ネットワーク」にコンピュータ一覧を表示)
- ドメインクライアント(ドメインに基づく認証・認可)
- ドメインコントローラ(NTドメイン、ADドメインの情報管理)
Sambaサーバのプロセス
- smbd: ファイル共有などのSambaサーバのメイン機能部
- nmbd: NBT名前解決、WINSサーバ、ブラウジングの提供
- winbindd: Winbind機能
- samba: ADドメインコントローラ機能(Samba4にのみ存在)
smb.conf
Sambaの設定を行うためのファイル
- bind interface only = yes
- unix charset / dos charset
- log level (debug level) 3程度までがおすすめ
クラス毎のカスタマイズもできる log level =3 auth:10
関連コマンド
- testparm コンフィグのチェック
- smbcontrol
- nmbd reload-config
- smbd shutdown
- smbd debug 5 ログレベルの動的変更
- smbstatus
認証
- sambaの認証はsambaユーザとしての認証とLinuxユーザとしての認証の両方が行われる
- linuxユーザがあることがsambaユーザ作成の前提になる
- ただしlinuxユーザはシェルやホームディレクトリ、linuxパスワードがなくても問題ない
- encrypt password no とするとlinuxパスワードで認証を行う(windowsから平文パスワードを送る必要)
SambaユーザのDB
- Sambaのパスワードの保存場所は下記の通り指定する
passdb backend smbpasswd / tbdsam / ldapsam
- TDBはsamba独自の簡易DB バイナリ形式
- tdbbackup -v でDBの正常性チェック
- tdbdump 画面に内容を表示する
- tdbtool DBの編集 ? でヘルプ
sambaユーザの作成
- pdbedit or smbpasswd
- -a ユーザ作成
- -x ユーザ削除
- smbpaswd ユーザ名 パスワード変更
ユーザーマッピング
- 基本はwindowsユーザ名=Linuxユーザ名
- username map パラメータに指定したファイルでユーザのマッピングができる
- username map scrip を使うとwindowsユーザ名を引数としたスクリプトでLinuxユーザ名を決定できる
sambaとLinuxの認証情報同期
samba → Linuxの同期
unix password sync = yes
-
pamを使わない場合
passwd program
passwd chat -
pamを使って変更する場合
pam pssword change = yes
Linux → Samba の同期
pam_smbpassモジュールを設定
password suffiicient pam_smbpass.so use_authtok
認証DB
- passdb backend で設定
- pdbedit -i xxxx -e yyyy でパスワード保存形式の変更
ゲスト認証
- map to guest
- guest account