2014年4月23日水曜日

CentOS初期設定: ファイル共有




対象OS:CentOS6.5/samba Version 4.0.0rc4


ある程度限られたネットワーク環境でサーバを構築する場合、
昔はFTPやCD、DVDなどの媒体で資材をやり取りしていたが、
最近はFTPが主流ではないのか、FFFTPなどのフリーソフトの普及のせいか、
コマンドや使い方をわざわざ教える手間などを考え、今ではsambaを使っている。

但し、構築時の作業用としてインストール/設定しているので
実際に運用する必要がある場合、設定見直しが必要である。

sambaとは


Windowsとファイル、プリンタなどの共有に使うソフトウェア。
最近は色んな機能がついていてWindowsのActiveDirectory機能が使えそうだが、それはまた別の機会に。


sambaのインストール


既にsambaがインストールされている場合、一旦削除し、samba4をインストールする。
samba4のパッケージは、DVDからインストールを行う。


# yum --disablerepo=\* --enablerepo=c6-media -y remove samba-*
# yum --disablerepo=\* --enablerepo=c6-media -y install samba4-*


sambaの設定


1.共有フォルダ作成
 Linux上で公開するフォルダを作成する。
 今回使用するフォルダは「/home/pub」とする。

フォルダ作成
# mkdir /home/pub
# chmod -R 777 /home/pub
# chown -R nobody. /home/pub

SELinux コンテキストを変更
# chcon -R -t samba_share_t /home/pub

 ※SELinuxが無効、もしくは今後無効にする場合、設定不要

# sestatus -v
SELinux status: disabled

 もしくは

# setenforce 0


フォルダの確認
# ls -Z /home
drwxrwxrwx. nobody    nobody   unconfined_u:object_r: samba_share_t:s0 pub



2.ファイアウォールの設定

 ファイアウォールが有効な場合、以下を追加する。


iptablesの設定変更
# iptables -I INPUT -p udp --dport 137:138 -j ACCEPT
# iptables -I INPUT -p tcp --dport 139 -j ACCEPT
# iptables -I INPUT -p tcp --dport 445 -j ACCEPT

iptablesの設定保存
# service iptables save

iptablesの設定確認
# /etc/init.d/iptables status
テーブル: filter
Chain INPUT (policy ACCEPT)

num target port opt source destination

1 ACCEPT tcp -- anywhere anywhere tcp dpt:445
2 ACCEPT tcp -- anywhere anywhere tcp dpt:139
3 ACCEPT udp -- anywhere anywhere udp dpts:137:138



3.サービス設定
サービスの自動起動の設定を行う

サービス起動設定
# chkconfig smb on
# chkconfig nmb on

サービス起動設定確認
# chkconfig | grep "mb"
nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off



4.smb.confの設定変更
 とりあえず、接続できることを目標としているため以下設定だけを実施する。


118,119行目のコメントアウトと認証設定の変更
    118 | ;;  security = user
    119 | ;;  passdb backend = tdbsam
    120 |
    121 |   guest account = nobody
    122 |   map to guest = Bad User

guest account ゲストアカウントの設定
map to guest Bad User
存在するユーザーに対する不正なパスワードによるログイン要求は拒否する。
指定されたユーザーが存在しなかった場合はゲストログインとして扱い、
guest accountで指定されたアカウントにマッピングする。


共有フォルダの設定追加
smb.confの最終行に以下を追加する。
[pub]
  comment = Work Directories
  path = /home/pub
  public = yes
  writable = yes
  create mode = 0777
  directory mask = 0777
  guest ok = yes
  read only = no


 ※設定完了後「testparm」コマンドでエラーやワーニングが出てないことを確認する。


変更前の設定(有効行のみ)
# cat /etc/samba/smb.conf | grep -v -e '^\s*#' -e '^\s*;' -e '^\s*$'
[global]
  workgroup = MYGROUP
  server string = Samba Server Version %v
  log file = /var/log/samba/log.%m
  max log size = 50
  security = user
  passdb backend = tdbsam

  load printers = yes
  cups options = raw
[homes]
  comment = Home Directories
  browseable = no
  writable = yes
[printers]
  comment = All Printers
  path = /var/spool/samba
  browseable = no
  guest ok = no
  writable = no
  printable = yes

変更後の設定(有効行のみ)

# cat smb.conf | grep -v -e '^\s*#' -e '^\s*;' -e '^\s*$'
[global]
  workgroup = MYGROUP
  server string = Samba Server Version %v
  log file = /var/log/samba/log.%m
  max log size = 50
  guest account = nobody
  map to guest = Bad User

  load printers = yes
  cups options = raw
[homes]
  comment = Home Directories
  browseable = no
  writable = yes
[printers]
  comment = All Printers
  path = /var/spool/samba
  browseable = no
  guest ok = no
  writable = no
  printable = yes
[pub]
  comment = Work Directories
  path = /home/pub
  public = yes
  writable = yes
  create mode = 0777
  directory mask = 0777
  guest ok = yes
  read only = no



5.サービス起動
 設定が完了したら、sambaのサービスを起動する。

# /etc/init.d/smb start
SMBサービスを起動中: [OK]


6.設定確認

# smbclient -L localhost -N
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.0.0rc4]

 Sharename       Type      Comment
 ---------       ----      -------
  pub             Disk      Work Directories
  IPC$            IPC       IPC Service (Samba Server Version 4.0.0rc4)

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.0.0rc4]

 Server            Comment
  ---------       -------

  Workgroup        Master
  ---------       -------


ここまで確認できたら、クライアントPCのエクスプローラをひらき、
アドレスバーに「\\<ホスト名>」もしくは、「\\<IPアドレス>」を入力して
対象フォルダにアクセスできるか確認する。



補足


・エクスプローラへの表示が更新されない
 SELinuxの設定が完了する前にクライアントPCからアクセスした後に、
 SELinuxの設定変更を行うと、
 更新ボタンやF5ボタンを押さないとフォルダが表示されない現象が発生する場合がある。
 その場合、クライアントPCの再起動を行うことで正常になる場合がある





0 件のコメント:

コメントを投稿