CentOS 6 sambaのインストール方法

CentOS 6にsambaをインストールする方法を紹介します。
sambaをインストールすることにより、PCに共有ファイルサーバー機能を持たせることができ、NASと同じように他のPCから共有フォルダにアクセスすることができるようになります。

環境

  • CentOS リリース 6.10 (Final)
  • カーネル Linux 2.6.32-754.el6.x86_64

samba のインストール

下記コマンドを実行しsambaをインストールします。

yum -y install samba

共有するディレクトリの作成

共有するディレクトリを作成し、アクセス権を設定します。
今回は「/home/share」ディレクトリを共有フォルダとして設定します。

mkdir /home/share
chmod 777 /home/share

samba 設定ファイルの編集

sambaの設定情報が記載せれたファイルは /etc/samba/smb.conf に存在します。

以下コマンドでsmb.confを編集します。

vi /etc/samba/smb.conf

設定ファイルを以下のように変更します。

# 58行目あたり
[global]
unix charset = UTF-8    # ← 追記
dos charset = CP932     # ← 追記

# 75行目あたり
workgroup = WORKGROUP   # ← 変更

# 81行目あたり
hosts allow = 127. 10.0.0.  # ← 先頭の ; を削除して、許可するIPアドレスを記載

# 最後の以下を追加
[share]   # ← 任意の名前。smb接続する際のフォルダ名になる
path = /home/share    # 共有フォルダにするパスを設定
writable = yes        # 書き込み可能
guest ok = no         # ゲストユーザー禁止
create mode = 0777    # ファイル作成許可
directory mode = 0777 # フォルダ作成許可
share modes = yes     # SMB 共有モードを UNIX の flock に変換する

sambaでのアクセスを許可するユーザーを設定

samba接続を許可するユーザーを以下のコマンドで設定します。
(ユーザー名「user」をsamba接続許可ユーザーに設定)

pdbedit -a user

上記コマンドを実行すると、samba接続時に入力するパスワードが聞かれます。

new password:
retype new password:
Unix username:        user
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-2667101691-1171742500-400716071-1001
Primary Group SID:    S-1-5-21-2667101691-1171742500-400716071-513
Full Name:            user
Home Directory:       \\localhost\user
HomeDir Drive:
Logon Script:
Profile Path:         \\localhost\user\profile
Domain:               LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    火, 28  7月 2020 16:16:18 JST
Password can change:  火, 28  7月 2020 16:16:18 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ファイアウォールの設定

sambaを利用するためには、tcp 139,445, udp 137,138のポートを解放する必要があります。
以下コマンドで /etc/sysconfig/iptables を編集します。

vi /etc/sysconfig/iptables

iptables に以下を追加します。

-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT

iptablesは上から順番に適用されますのでご注意ください。
例えば、全パケットをREJECTするルールの下に上記の追加分を記述するとアクセスできないようになります。

参考に私の環境のiptablesを以下に記載します。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1784776:2206215390]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5902 -j ACCEPT
-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

iptables の編集が完了したら以下のコマンドでサービスを再起動しましょう。

service iptables restart

SELinux の設定

sambaで/home 以下のディレクトリにアクセスするには下記のSELinuxの設定コマンドを実行する必要があります。

setsebool -P samba_enable_home_dirs on

samba / nmbd サービスの起動

設定が完了したら、sambaとnmbdのサービスを起動する必要があります。

sambaの 起動・終了・再起動・自動起動 方法

sambaの起動コマンド

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

sambaの終了コマンド

/etc/rc.d/init.d/smb stop

sambaの再起動コマンド

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

sambaの自動起動設定コマンド

chkconfig smb on

nmbdの 起動・終了・再起動・自動起動 方法

nmbの起動コマンド

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

nmbの終了コマンド

/etc/rc.d/init.d/nmb stop

nmbの再起動コマンド

/etc/rc.d/init.d/nmb restart

nmbの自動起動設定コマンド

chkconfig nmb on


参考:
http://www.samba.gr.jp/project/translation/current/htmldocs/manpages/smb.conf.5.html

コメント

タイトルとURLをコピーしました