Linuxサーバー「Samba」の基本とCentoOS7へのインストール方法
はじめに
今回はLinuxサーバーの中でもWindowsから利用が可能なファイルサーバーである「Samba」についてご紹介していきます。「Samba」とは何か、どういった理由で必要とされ、利用されているのかを追いながら確認していきます。
「Samba」の基本事項
Windows環境にてネットワーク上でフォルダを共有したい場合、共有したいフォルダを右クリックし、表示されるメニューから「共有」ボタンをクリックするだけで比較的簡単に共有化を行うことが出来ます。しかし、Linuxサーバーでは基本的に左クリックの「共有」ボタンや、ワンクリックで共有することは出来ません。それはWindowsとLinux上ではファイルやディレクトリの共有を行うプロセスが異なることが原因です。ではLinuxでファイル・ディレクトリを共有化は行えないのでしょうか。そこで使用するのが「Samba」です。これは端的に説明すると「Linux上でネットワーク機能を実装するソフトウェア」になります。
Sambaには大きく分けて4つの機能があります。
・ファイルサーバー機能:Linux上のフォルダやディレクトリをWindowsのファイルサーバーへ共有化することが出来ます。さらにWindowsの他にもCIFS:(Common Internet File System)やNBT(NetBIOS over TCP/IP)もサポートしています。ただしNetBEUIやSPX/IPXはサポートしていません。
・プリンターサーバー機能:Linux上に接続されたプリンターをWindowsファイルサーバーへ共有化することが出来ます。Linuxとプリンターの接続方法として「シリアルポート」「パラレルポート」「USB接続」「LPR接続、SMB接続(ネットワーク接続)」などを利用することが出来ます。さらに今回の「Samba」の場合、Windows側にプリンタードライバをインストールして使用するため、Linux用のプリンタードライバをサーバー側に準備する必要がなく、LinuxがWindows側へ接続した時点でサーバーにあらかじめ準備されているWindows用のプリンタードライバをLinux側に自動インストールする機能があります。
・ドメインコントローラー機能(PDC、BDC):ドメインコントローラー機能を使用することでドメインに登録されているユーザーはドメイン内にある共有フォルダや共有プリンターにパスワードなどの認証なしでアクセスが可能になります。
・ドメインリンパ機能(認証プロキシ機能):この機能を使用することでLinuxのユーザー管理・認証をWindowsのドメインに統合させることが可能になります。
ネットワーク理解を深める事前知識
Windowsネットワーク上での用語や概念について基本的な部分だけ抑えるためにも確認しておきましょう。
・ワークグループ:ネットワーク上でWindowsPCをまとめたグループの単位を表します。WindowsPCはいずれかのワークグループに必ず所属しており、同じワークグループ内に所属しているPCは「ネットワーク」上でアイコンとして表示され、アクセスが容易になります。しかし環境やタイミングによってはネットワーク上に反映されない場合もあるので注意です。
・共有:フォルダやディレクトリ、プリンターをネットワークで公開・共有しネットワーク上で利用出来るようにすることを指します。共有化されたリソース(フォルダやプリンター)は「共有資源」あるいは「共有リソース」と呼び、それらに付けられた名前のことを「共有名」と表します。
・Active Directory:ユーザーやグループ、ネットワーク上の共有リソースを一括して管理しています。Active Directoryを管理しているサーバーのことを「ドメインコントローラー」といい、アカウント情報を集中的に管理しています。「ドメイン」という単位でグループ化、そして認証されたグループごとドメインにログオンすることでドメイン内のリソースに認証なしでアクセスする事ができます。ユーザーを個々に追加していく手間が省けるため、管理コストを下げることが出来ます。
・NetBIOS名:パソコンに付与されているコンピューター名に1バイトのアプリケーション情報を追加したものです。
・WINS:上記のNetBIOS名とIPアドレスの名前解決を行う仕組みのことを指します。
・SMB:Windowsのネットワークサービスを提供するプロトコルを指します。
・CIFS:SMBの拡張と標準化したプロトコルを指します。
Sambaのインストール
それでは早速CentoOS7環境下にSambaをインストールしていきます。まずは必要となるパッケージをインストールするために以下のコマンドを実行します。
[yum install samba samba-client samba-common -y]
Sambaの初期設定
「Samba」がインストール完了したら次にSambaの設定ファイルである「smb.conf」のバックアップを作成してから編集を行います。
mv /etc/samba/smb.conf /etc/samba/smb.conf.bk
vi /etc/samba/smb.conf
以下に「smb.conf」の一例を載せておきますので特に指定がなければ以下のように設定ください。
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos7
security = user
map to guest = bad user
dns proxy = no
[Share]
path = /samba/share/(共有させるフォルダ)
browsable =yes(マイネットワークへの表示の有無)
writable = yes(書き込みの可否)
guest ok = yes(ゲストユーザのログイン可否)
read only = no(読みとり専用にするかの選択)
「smb.conf」の入力後に共有するフォルダを作成します。
mkdir -p /samba/share
chmod -R 0777 /samba/share
chown -R nobody:nobody /samba/share
以下のコマンドを実行してsambaの起動設定を行います。
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
firewallの設定を変更してLinux側でsambaの通信が行えるよう許可します。
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload
最後に「SELinux」の設定を変更してsambaの利用を許可します。
chcon -t samba_share_t /samba/share
動作確認を行う
以上の手順で設定を行い、エラー等がなければ設定が完了したLinuxへWindows側からSambaを通じてアクセスが可能になりました。「ネットワーク」から「centos7」ディレクトリに「Share」フォルダが確認出来ると思います。
Sambaにパスワードを設定
ファイルサーバーとしては利用できるようになったため、特定のユーザーのみ編集出来るようにフォルダを作成します。ユーザーはあらかじめ設定したパスワードでログインします。
まずはパスワードを設定するグループやユーザーを以下のコマンドで作成します。(※ユーザー名やグループ名は任意で変更ください)
useradd test
groupadd testgroup
usermod -a -G testgroup test
次に設定したユーザーに対してSamba用のパスワードを設定します。
$ smbpasswd -a test
New SMB password: 【任意のパスワード】
Retype new SMB password: 【任意のパスワード】
そして作成した「ユーザーグループ」がSambaで使用するためのフォルダを以下のコマンドで作成します。
mkdir /home/sectest
chown -R test:testgroup /home/sectest/
chmod -R 0777 /home/sectest/
chcon -t samba_share_t /home/sectest/
作成し終わったら再度「smb.conf」を編集するために「viエディタ」を起動させます。
[SecTest]
path = /home/sectest
valid users = @【作成したグループ名】
guest ok = no
writable = yes
browsable = yes
最後にSambaのサービスを再起動させます。
systemctl restart smb.service
systemctl restart nmb.service
以上でパスワードが設定されたフォルダが新たに追加されています。ちなみにアクセス時には当然ですが上記で設定したユーザー名とパスワードが求められるため注意してください。
最後に
ここまで、CentoOS7環境にSambaのインストールとユーザーの作成、パスワード設定を行ったフォルダの作成方法を確認してきました。環境によって手順は異なりますし、上記の方法はあくまで一例です。今回はCentoOS7環境下にインストールしましたが、他にもCentoOS5やUbuntuなどの他環境によってインストール方法も様々です。自身の環境にあった方法でSambaをインストールし、快適なファイルサーバーを活用してください。ここまで読んでくださりありがとうございました。