2016年2月2日火曜日

smb.conf の設定 ・・・がうまくいかないのでインストールやり直しから

ここでの設定の概要については、

server-world.infoさんの「フルアクセスの共有フォルダ作成」から
http://www.server-world.info/query?os=CentOS_6&p=samba&f=1

charsetの設定から記述されているが、セクションが不明。であるのでもうひとつ引用を。

UnixPower on Networking さん
http://www.unix-power.net/linux/samba_centos6.html

        unix charset = UTF-8
        dos charset = CP932

charsetの次は、Windowsワークグループ。

        workgroup = WORKGROUP


SambaにアクセスするIPアドレスレンジ。

        hosts allow = 127. 192.168.12. 192.168.13.

実際には、テスト環境とここの本番環境それからセキュリティを考慮して例外や禁止も含めて、メンドクサイ設定にしてある。それから、MIRACLEさんも含め先人のWebコンテンツ中は指定が無いが、気になったのでNETBIOS名も変更。どうでもいい点なのだろうか。

        netbios name = CentOS-Samba


続いてセキュリティ/認証は、初めての設定なのでとりあえず無し。

;       security = user
        security = share
        passdb backend = tdbsam

passdb backend の ところは、近くない将来にLDAPに・・・だいぶ遠い先の話になりそうだが。


次に、設定ファイルの最終行に7項目の指定とのことだが、

path (S) : ユーザがアクセスした際のディレクトリ指定

writable : writeable (S)  の別名らしく、また、 read only (S) の反意語とのこと。

[share]
    path = /home/share
    writable = yes
    guest ok = yes
    guest lonly = yes
    create mode = 0777
    directory mode = 0777
    share modes = yes

ひとまず最終行にこれらを追加したが、writableは途中のセクションに重複もある。ここではとりあえず次へ進んでしまうが。


そして、samba の開始。


/etc/rc.d/init.d/samba start
 /etc/rc.d/init.d/nmb start

ここで nmb なるものが出てくるが、どうも SMB/CIFS クライアント向けの名前解決機能らしい。

nmbd(8)
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/nmbd.8.html


続いて、この2つについてchkconfig。

chkconfig smb on
chkconfig nmb on

sshdのリモート経由で実施したら、

[root@localhost ~]# chkconfig smb om
chkconfig バージョン 1.3.49.3 - Copyright (C) 1997-2000 Red Hat, Inc.
このソフトウェアは GNU 一般公共使用許諾契約書に従って無償で再配布することができます。

使用法:   chkconfig [--list] [--type <タイプ>] [名前]
         chkconfig --add <名前>
         chkconfig --del <名前>
         chkconfig --override <名前>
         chkconfig [--level <レベル>] [--type <タイプ>] <名前> <on|off|reset|resetpriorities>
[root@localhost ~]#

なるほど。。


で、クライアント側でMicrosoft関連のサービスを有効にして、NetBIOS over TCP/IPもチェックと。が、これでエクスプローラから"ネットワーク" をダブルクリックしても、

「ネットワーク探索とファイル共有が有効になっていません。変更にするには・・・」

とのメッセージであるので、Windows側から問題つぶし。

まず、当該Windows PCが接続しているネットワークを、マイクロソフトなプライベートネットワーク扱いにする。プライベート/パブリック、Windowsにおいて何をどのように設定していることやらだが、一般の人ならともかく、嘆いている場合ではない。

次に、ワークグループ名の確認だがどうも誤っていないようだ。NetBIOS名指定でもIPアドレス指定でもNG。

しかたがないのでパケットをキャプチャしてみると、名前解決のリクエストは送信しているが、応答がない。そこで、IPアドレス\共有名指定で投げてみると、

IPv4-ICMPタイプ3なアンリーちゃぶる、コード10なあdみにstれいぶりいぷろひぃびっと。さては、デスクトップインストールではこの辺りが開いていないか。とはいえ、デスクトップだからこそファイアウォール設定の確認や変更も容易。設定項目はプロトコル単位でなく機能単位であるのでわかりやす。また、Sambaクライアントも別になっているので混乱することもない。


尚、当初は適用ボタンが目に入っておらず、チェックしたのみでつながらない!? と誤認した。NetBIOS名でのアクセス可否はこれで解決。

次に、ファイルを書き込みはNG、Windows側がログインユーザと全く異なるので当たり前…ではなくて、そもそもユーザ認証不要のはずだったが!? 設定内容の確認。 guest only の項目でタイプミス&タイプミス見逃し。

ここはひとつ、手順は手順通りに、解説のまま謙虚にやってみようと今さらながらに再インストール&lessの復習


つまるところ、学びの足を引っ張るのはジコチューと傲慢。


Minimalでインストールし直して、ユーザの追加、eth0のIPアドレス設定、ここでもタイプミス、さらに確認ミスをやらかすのだが、目で文字をひとつひとつ読んでいないということ。グラッスィズをかけろという話でもあるが、10インチモニタに小文字ディスプレイでいつまでもいられないということもあるか。

さておき、IPアドレスでローカルセグメントの通信OKになったら次は、iptablesの無効化。

[root@localhost ~]# /etc/rc.d/init.d/iptables stop
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig ip6tables off
[root@localhost ~]#
[root@localhost ~]#

解説では、ご丁寧にv6のiptablesも止めているので今回から忠実に。


続いて、Security-Enhanced Linux な設定の確認。

SELinux
https://ja.wikipedia.org/wiki/SELinux


 [root@localhost ~]# more /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@localhost ~]#


デフォルトはenforcingだった。
http://ejje.weblio.jp/content/enforce

前回のSambaのアクセス問題に際しても同様だったか? そもそもここが原因かどうかもわからないが。

そして、ここで手順は前後して、IPv6の無効化。

[root@localhost ~]# more /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435465

# IPv6 Disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

[root@localhost ~]#
[root@localhost ~]#[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435465
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# ifconfig

出力の中で、IPv6のリンクローカルアドレスについての記述も消えていた。


ここで、サービス一覧の照合。引用の先人と完全に同一手順では実施していないので念のため。

 [root@localhost ~]# chkconfig --list
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
blk-availability        0:off   1:on    2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
[root@localhost ~]#

先人の方が記述している内容と、ずいぶん違う。やれやれ、とりあえず先に進む。ここで再び server-world.infoさんのWebコンテンツを参照して。
http://www.server-world.info/query?os=CentOS_6&p=samba&f=1

これでようやく、「フルアクセスの共有フォルダ作成」が完了。なぜかCentOSなNetBIOS名が見えず、IPアドレスでパスを叩いている状態だが。

続いてSWATの設定を行い、

# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{
        port            = 901
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1 172.19.19.0/24
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no
}

Webアクセスをテストし、OK。


尚、設定要素について検索、参照、一部は拝読する中で、testparm なる概念を初めて知ったので。きっかけのblogさんを次に。

主に言語とシステム開発に関して
Linux上にSambaで共有フォルダを作り,Windowsから開発環境として利用しよう (環境構成のわかりやすい図解付き)
http://language-and-engineering.hatenablog.jp/entry/20110820/p1#SetupSambaOnLinux


こちら様も、iptablesをOFFにすることを推奨とのこと。CIFS/SMB、iptablesではそんなに制御が厄介なのだろうか。

どうもCIFS/SMBだけでもたいへん厄介そうだ。

ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?
http://www.atmarkit.co.jp/ait/articles/1501/19/news092.html





0 件のコメント:

コメントを投稿