samba

 

sambaとは

WindowsのSMB(Server Message Block)プロトコルにより、ファイル共有、プリンタ共有のサービスを提供するサーバ

プライマリ/バックアップドメインコントローラの機能や、NetBIOS名とIPアドレスの対応情報を提供するWINSサーバの機能もある

UNIX/LinuxとWindowsが混在するネットワークにおいて、ファイルやプリンタの資源を共有ができる

 

smbd ファイル共有、プリンタ共有などのSMBサービスを提供。待機ポート番号は139/tcpと445/tcp
nmbd NetBIOSのネームサービスを提供。待機ポート番号は137/udpと138/udp

 

sambaの設定ファイルは

/etc/samba/smb.conf

にあり、複数のセクションから構成されている。[global]、 [homes]、[printers]のセクション名は予約されている

[global] サーバ全体に関するパラメータを設定するセクション
各セクションのデフォルト値を設定することも可能
[homes] ユーザーのホームディレクトリの共有に関するパラメータを設定するセクション
[printers] プリンタの共有に関するパラメータを設定するセクション

それ以外のセクション名は 自由に付けて、共有サービスの設定が機能

 

smb.confファイルの書式はtestparmコマンドでチェック可能

testparmに-vオプションを付けるとsmb.confに指定していないデフォルト値も表示される

ユーザーアカウントのデータベース
Samba2.2 passdb backend = smbpasswd smbpasswdを利用
Samba3.0以上 passdb backend = tdbsam TDB(Trivial DataBase)を使用
Samba3.0以上 passdb backend = ldapsam LDAPを使用

*TDBは従来のsmbpasswdファイルよりも多くの属性情報を管理できる

ユーザー認証方式

ユーザー認証方式は[global]セクションのパラメータsecurity =で指定

security = user ユーザー名とパスワードでローカル認証を行う設定
security = share パスワードだけで認証を行う設定
security = domain ドメインコントローラにより認証を行う設定
security = server ほかのSMBサーバにより認証を行う設定
security = ads AD(アクティブディレクトリ)ドメインのドメインコントローラで認証を行う設定

なお、security = domain、security = server、security = adsのいずれかの設定の場合はpassword server =で認証を行うサーバを指定する必要がある

ユーザー登録
バージョン コマンド
Samba2.2 smbpasswd smbpasswd -a user01
Samba3.0以上 pdbedit pdbedit -a user01
パスワードの変更

ーザーが自分のパスワードを変更する場合はsmbpasswdコマンドで行う

パスワードの同期

基本SambaのユーザーアカウントとUNIXのアカウントは別々だが、

unix password sync、passwd program、passwd chatの3つのパラメータを適切に設定することにより、Sambaのパスワードの変更に同期して、UNIXアカウントのパスワードも変更されるように設定できる

unix password sync = yes —-①
passwd program = /usr/bin/passwd %u —-②
passwd chat = * %n\n * %n\n * —-③

解説

①パスワードの同期を取る設定

②パスワード設定コマンド(passwdコマンド)に指定(このコマンドをrootが実行)

③passwdコマンドとシステムとの会話(chat)の文字列を指定

ゲストアカウントの設定

Sambaサーバにアカウントを持たないユーザーがアクセスした場合に、それを特定のUNIXアカウント(ゲストアカウント)にマッピングしてアクセスを許可する設定がguest ok、guest account、map to guestの3つのパラメータの値を適切に設定することにより可能になる

guest ok = yes —-①
guest account = nobody —-②
map to guest = Bad User            —-③

解説

①ゲストアカウントでのアクセスを許可(public=yesにしてもと同様)

②この値を特定の UNIXアカウントに指定

③この値を、 Sambaユーザーとして存在しないユーザーがアクセスした場合にゲストアカウントとして扱う設定

map to guestの値

Never 不正なパスワードによるユーザーのログイン要求を拒否
Bad User 不正なパスワードによるユーザーのログイン要求を拒否するが、指定されたユーザーが存在しなかった場合はゲストログインとして扱う。この場合、guest accountで指定したユーザーとなる
Bad Password 不正なパスワードによるユーザーのログイン要求はゲストユーザーとして扱う。この場合、 guest accountで指定したユーザーとなる

共有へのアクセス権
valid users = アクセスを許可するユーザーを指定
nvalid users = アクセスを拒否するユーザーを指定

例:valid users = user01 user02

ファイル/ディレクトリへの読み込み権と書き込み権
writable = yes/no 書き込み許可・禁止設定
read only = yes/no 読み込み許可・禁止設定
write list = xx この値に、書き込み許可を与えるユーザー名を指定
read list = xx この値に、読み込み許可を与えるユーザー名を指定

例:write list = user01 user02

valid users、invalid users、read list、write listの値にグループ名を指定することもできる

@グループ名 NIS グループ、システムに設定してあるグループの順番で指定
&グループ名 NIS グループの指定
+グループ名 システムに設定してあるグループの指定

例:valid users = +staff

共有とファイルの表示/非表示
browseable

この値をyes(表示)あるいはno(非表示)に設定します。

[section$]は、最後に$を付けたセクション名(共有名)にすると同じく非表示になる

vito files この値に/ファイル名/を指定すると、そのファイル名は非表示かつアクセスできなくなる
hide files この値に /ファイル名/ を指定すると、そのファイル名は非表示となる
ファイル/ディレクトリ作成時のパーミッションの設定

ファイル

create mask  
force create mask  

ディレクトリ

directory mask  
force directory mode  

 

 

 

sambaのバージョン確認

[root@negabaro ~]# smbd -V
Version 3.6.9-151.el6_4.1

 

http://www.atmarkit.co.jp/ait/articles/0901/28/news153.html

 

トラブルシューティング

サーバにpingを打って見よう(笑)

sambaの設定後testparmコマンドを打ってエラーが出ないことを確認

smbclientコマンドを利用してlinux上で接続テスト

smbclient -L 157.7.198.205 –u kaka

nmbdの動作確認

nmblookup -B 157.7.198.205 __SAMBA__

nmbd でのブロードキャストへ応答確認

nmblookup -d 2 ‘*’

「 got a positive name query response 」が出ると正常

 

エラー

Server requested LANMAN password (share-level security) but ‘client lanman auth = no’ or ‘client ntlmv2 auth = yes’
tree connect failed: NT_STATUS_ACCESS_DENIED

対策

/etc/samba/smb.conf ファイルにて、
[global]セクション内に、下記を追記する

client lanman auth = Yes
client ntlmv2 auth = No

 

エラー

WARNING: The security=share option is deprecated

対策

=警告: 「seurity = share」というオプション設定は、推奨されていない。)
⇒/etc/samba/smb.conf ファイルにて、
security = user ではなく、
security = share としていると、
自身のPCへのファイル共有に、
パスワードなしで誰でもアクセス可能なため、表示される警告。
注意警告なので、そのままでも、利用には問題なし。(セキュリティ的には、警告の内容のように問題あり)

エラー

open_socket_in(): setsockopt: SO_REUSEPORT = true on port 0 failed with error = プロトコルは利用できません

name_query failed to find name NETBIOS名#1d

 

エラー(nmbログ)

write_browse_list: Wrote browse list into file /var/lib/samba/browse.dat

http://blog.goo.ne.jp/koyusoma5102/e/3a3bbc6327f9b2667a2979877fdb1b46

http://blog.livedoor.jp/hide_system/archives/51886640.html

http://www.samba.gr.jp/doc/diag.html

cifs??!

http://ameblo.jp/lattelatte9/entry-11148131534.html

 

vim /etc/samba/smb.conf

 mkdir /data/samba

chown nobody:nobody /data/samba

 

pdbedit -a centos

Ignoring unknown parameter "smb passwd"

 

/etc/rc.d/init.d/smb start

\\157.7.198.205\centos

smbstatus

しかし、これらのツールでは現在の接続状況を取得することができても、誰がいつ接続したかという接続履歴の情報を取得することはできません。

従来のSambaでこうした情報を取得する場合は、smbstatusコマンドをcronなどで定期的に実行してその結果を加工する必要がありました。

[global]

utmp = yes

utmp directory = /var/log/samba/

これで見えるらしい

SWATの設定

Sambaが提供しているSWAT(Samba Web Access Tool)を利用してWebブラウザ経由でSambaを設定することが可能

 

trobule shotting

cat /var/log/messages | grep smb

Apr 28 06:10:50 negabaro smbd[12251]: [2014/04/28 06:10:50.701467,  0] printing/print_cups.c:151(cups_connect)

Apr 28 06:10:50 negabaro smbd[12251]:   Unable to connect to CUPS server localhost:631 – 接続を拒否されました

解決

CUPSサービスを切っているのが問題の発端だった。

CUPSサービスは必要ないから切っているんだよね。

でも、samba上ではデフォルトではCUPSが有効のため、切っている場合は明示的に無効ということを記述しなければならない。

というわけで。

/etc/samba/smb.conf

の、

globalセクションに、printing = bsd

を追加して、

/etc/rc.d/init.d/smb restart

http://d.hatena.ne.jp/blendsuprise/20110219/1298107650

 

エラー2

Apr 28 06:10:50 negabaro smbd[12248]: [2014/04/28 06:10:50.683785,  0] param/loadparm.c:7969(lp_do_parameter)

Apr 28 06:10:50 negabaro smbd[12248]:   Ignoring unknown parameter "smb passwd"

 

smb passwordをいったんコメントアウト

tail /var/log/samba/samba_log

 

成功

[root@negabaro /]# smbclient //157.7.198.205/tmp -U kaka

WARNING: The "password level" option is deprecated

Enter kaka’s password:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6_4.1]

smb: \>

 

 

http://www.unix-power.net/linux/samba_centos6.html

  http://futurismo.biz/archives/1390

http://jetzt.tistory.com/328

http://wiki.samba.gr.jp/mediawiki/index.php?title=J72

http://www.atmarkit.co.jp/ait/articles/0901/28/news153.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です