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
コメント