まずはファイルの共有をしよう。
samba と samba-swat をインストールしたい。
※2014/12/31 IP固定の記述等を追加。
と思ったが、samba-swatのパッケージファイル名がわからない。
■apt-fileの導入とsamba-swatの検索
パッケージを探したりするのに使えるらしいので入れる。
$ sudo apt-get install apt-file $ sudo apt-file update $ sudo apt-file search swat
うわ、大量に検索結果が・・・じわっと読んでみるとswatというパッケージみたい。
■sambaとswatのインストール
$ sudo apt-get install samba swat
■ufwでポートを開ける
ファイル共有サービス139tcpと、WINSサービス42tcp/udp, 137udpを開ける。
さらにSWATを使うのでVMwareのホストマシンからの901へのアクセスを解放。
※赤文字は後から追記
■swatでsamba設定
GUIでログインしてFirefoxを起動。
アドレスとして localhost:901 を入力して接続する。
ログインユーザーとパスワードを聞かれるので、
user: root
pass: rootのパスワード
を入力すると swat の画面が表示される。ここで色々と設定していく。
なお、swatにはタイムアウト?があるらしく、色々調べて時間がかかった後に更新ボタンを押したら値が反映されないことがあったので注意。
今回、実際にはかなり紆余曲折してごちゃごちゃ弄ったので、結果としてできあがったsmb.confをメモ代わりに残してみる。
[global] dos charset = SJIS ←日本語文字セット store dos attributes = Yes ←読み取り専用とかの属性が使えるようになる 2021/01/03追記 workgroup = HOGEGROUP server string = %h server obey pam restrictions = Yes ←PAM認証を使う(後述) syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 local master = Yes 2014/12/31追記 os level = 65 ブラウズマスターになる preferred master = Yes ブラウズマスターになる domain master = Yes ブラウズマスターになる wins support = Yes ←後々、dhcpdでクライアントに撒き散らす予定 panic action = /usr/share/samba/panic-action %d idmap config * : backend = tdb bind interfaces only = yes 2014/12/31追記 IP固定 interfaces = 172.16.nnn.1/16 2014/12/31追記 IP固定 [homes] path = /home/%U/samba create mask = 0700 directory mask = 0700 read only = No browseable = No ←homesは自動的にユーザー名に書き換わる [share] comment = 共有領域 path = /home/samba read only = No directory mask = 04777 ディレクトリ作成時の権限 force directory mode = 04777 ディレクトリ作成時の権限 guest ok = Yes [print$] comment = Printer Drivers path = /var/lib/samba/printers available = No ←使わない [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes print ok = Yes browseable = No available = No ←使わない
■sambaのユーザー認証にPAMを使う
サーバーにログインできるユーザーをそのままsambaのユーザーにしたいと思っていたら、方法があった。セキュリティ的には良くないのかもしれないが、ずぼらな管理者なので二重管理はやめたい。
$ sudo apt-get install libpam-smbpass
インストールした後、Ubuntuのパスワードを変更してアクセスしなおしてみた。
$ passwd
→ パスワード変更
Windows7からアクセスして試す。
なお、一度アクセスしたユーザー・パスワードの情報が残ってしまっているので、これを削除してからエクスプローラーを立ち上げなおして接続してみる。
別のユーザーで接続し直す、というやつ。
実際の手順は、以下の通り。
- hogeserver上でpasswdコマンドにてパスワード変更。これによってログイン&sambaパスワードが一緒に変更される。
- Windows7でエクスプローラーを閉じる。
- Windows7のコマンドプロンプトを開き接続先サーバーの情報を削除する。
DOS> net use \\172.16.nnn.nnn /delete
→ まだ、名前解決のポートを解放していないのでIPアドレスで接続しているはず。なのでIPアドレス指定で削除。なお、
DOS> net use
で利用しているネットワーク共有がわかる。 - Windows7でエクスプローラーを開いてhogeserverにアクセスする。
※この操作方法は以下のページに記載されていた。VMwareで環境作っているのでログオフするわけにも行かず・・・助かりましたー。
http://kanrininta.blog38.fc2.com/blog-entry-161.html
■ここで、トラブル発生
- swatに接続すると、ページの表示途中でエラーが発生するようになった。(エラー 324 (net::ERR_EMPTY_RESPONSE): サーバーはデータを送信せずに接続を切断しました。)
- ログインしてしばらくすると、システムプログラムの問題が見つかりました 今すぐこの問題を報告しますか? というメッセージが表示されるようになった。
どうやら、クラッシュダンプが吐き出されているらしい。swatだ。
$ ll /var/crash
合計 3888
drwxrwsrwt 2 root whoopsie 4096 5月 25 08:23 ./
drwxr-xr-x 13 root root 4096 5月 25 08:16 ../
-rw-rw---- 1 root whoopsie 0 5月 25 08:16 .lock
-rw-r----- 1 hogeuser whoopsie 3706625 5月 22 23:03 _usr_bin_nm-connection-editor.1000.crash
-rw-rw-r-- 1 hogeuser whoopsie 0 5月 22 23:06 _usr_bin_nm-connection-editor.1000.upload
-rw------- 1 whoopsie whoopsie 0 5月 25 08:17 _usr_bin_nm-connection-editor.1000.uploaded
-rw-r----- 1 root whoopsie 263567 5月 23 23:34 _usr_sbin_swat.0.crash
/var/log/samba/log.にエラーが出力されていた。
[2013/05/23 23:34:34.063295, 0] lib/fault.c:47(fault_report) =============================================================== [2013/05/23 23:34:34.063378, 0] lib/fault.c:48(fault_report) INTERNAL ERROR: Signal 11 in pid 8491 (3.6.3) Please read the Trouble-Shooting section of the Samba3-HOWTO [2013/05/23 23:34:34.063424, 0] lib/fault.c:50(fault_report) From: http://www.samba.org/samba/docs/Samba3-HOWTO.pdf [2013/05/23 23:34:34.063463, 0] lib/fault.c:51(fault_report) =============================================================== [2013/05/23 23:34:34.063491, 0] lib/util.c:1117(smb_panic) PANIC (pid 8491): internal error [2013/05/23 23:34:59.320173, 0] lib/fault.c:47(fault_report) =============================================================== [2013/05/23 23:34:59.320218, 0] lib/fault.c:48(fault_report) INTERNAL ERROR: Signal 11 in pid 8500 (3.6.3) Please read the Trouble-Shooting section of the Samba3-HOWTO [2013/05/23 23:34:59.320258, 0] lib/fault.c:50(fault_report)
PAM認証を追加した途端にこうなった。
削除すればswatがちゃんと動くところまで確認。
$ sudo apt-get remove libpam-smbpass
でも、二重管理は嫌だー。
■対策・・・になっていないけど、ユーザーによるパスワード変更はできそう。
というか、これはかなり危険。
ファイルを消しちゃったりしないように注意。
仮に common-auth が消えると、その後、sudo なんかもできなくなるし、シャットダウンすらもできなくなる。・・・っていうかやっちゃいました。
$ sudo vi common-auth
こちらも中身を以下の通り変える。
# # /etc/pam.d/common-auth - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) auth [success=1 default=ignore] pam_unix.so nullok_secure # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) #auth optional pam_smbpass.so migrate #auth optional pam_cap.so # end of pam-auth-update config
この状態で一度swatに接続することで、VMwareのホストからアクセスが可能になったが、smb.confの内容を編集することはできない。
編集したファイルは元に戻して運用する。元に戻さないとWindowsからの接続でおかしな問題が発生する(rootで接続した後にhogeuserで接続すると、share, hogeuser, rootにアクセスができてしまう)。
ここ(https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1015935)の情報を見るとバグっぽいので、将来ファイルが修正されるのに期待して待つことにする。
■その他
swatが動かなくなってかなり困って色々とやったので、その過程で触ったファイルやコマンドをメモ。
testparm
設定内容をチェックしてくれる。-vパラメータをつけると、デフォルトで設定される値も含めて全てが表示される。
smbpasswd -D 10 -a hogeyuser
smbpasswdコマンドを実行した時に起こることを事細かに表示してくれる。パスワードファイルがどれか、なんてのもわかる。
smbd -b
どんなパラメータでビルドされたかわかる。
/etc/samba/smbpasswd
パスワードの管理方法が変わって/var/lib/samba/passdb.tdbになっている。
/var/log/samba
sambaの各種ログが出力されるディレクトリ。
/etc/pam.d/
PAM認証の手続が書かれているディレクトリ。
/etc/inetd.conf
swatはinetdから起動される。起動条件を記載。
/etc/services
各種サービスと使用ポートが書かれている。
2014/12/31 追記
新規購入したWindowsタブレットがLAN内のホストを認識できないので調べてみると、WINSが上手く動いていないことが判明。色々と調べてみたところ、SambaによるWINS及びマスタブラウザ設定に調べ方が書いてあった。
鯖が立った、クララがたtt(ry http://ry.tl:27888/ さんから引用---
◆マスタブラウザを調査
[root@Server ~]# nmblookup -M WORKGROUP
querying WORKGROUP on 192.168.0.255
192.168.0.3 WORKGROUP<1d>
「WORKGROUP」は環境によって変更する事。
自身のIPアドレスである事を確認
「name_query failed to find name WORKGROUP#1d」と出た場合は選出中の可能性があるので数分待ちましょう。
-----
◆マスタブラウザを調査2
[root@Server ~]# nmblookup -S WORKGROUP
Looking up status of 192.168.0.3
..__MSBROWSE__. <01> - H
「MSBROWSE」表記があるシステムがマスタブラウザです。
-----
◆マスタブラウザを調査3(Windowsコマンドプロンプトにて実行)
C:\Users\ad>nbtstat -a 192.168.0.3
..__MSBROWSE__.<01> グループ 登録済
これも同じように「MSBROWSE」となっているシステムがマスタブラウザになります。
--- 引用終了
おかげさまで、2つ目に割り当てたIPアドレスがマスタプラウザとして動作していたため、Firewallがブロックしているところまで想定ができ、1つ目のIPアドレスを固定する設定で問題解消することができた。
なお、固定設定にあたっては、日本 Samba ユーザー会 Web サイトさんのManページを参考にさせていただいた。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他