II-7-6. Sambaの設定と運用

LinuxとWindowsでデータを共有するためのSambaについて説明する。Sambaとは何か、Sambaのインストール方法、Sambaサーバの設定方法、Sambaクライアントの利用法など、Sambaの導入から運用に至るまでに必要な知識を紹介する。

【学習の要点】

* SambaはLinux と Microsoft Windows との間でファイルやプリンタといった資源を共有するためのソフトウェアである。

* SambaはLinuxのサービスとして起動され、smbdおよびnmbdの2つのプログラムで構成される。

* Sambaサーバでは設定ファイル(smb.conf)により参加するワークグループ、共有するディレクトリやアクセスするユーザおよびコンピュータの設定等を行う。

* Microsoft Windowsからはネットワークコンピュータとしてアクセスすることが可能であり、Linuxからはsamba-clientを使用してアクセスを行う。

* LinuxとMicrosoft Windows が混在しているネットワーク環境では、NFSと共存させることも可能であるが、ファイル名に日本語を使用する場合には注意が必要となる。

* Sambaではサービスの起動状態を出力するログファイルと、Sambaサーバへ接続したクライアントの状況を出力するログファイルを作成する。

図II-7-6. Sambaの概要

【解説】

1) Sambaとは

SambaはWindowsのNetBEUI(NetBIOS Extended User Interface)をLinux上で実現するもので、LinuxとWindowsとの間でファイル共有や印刷などの機能を提供するものである。

Sambaはファイル共有だけでなく、Windowsドメインコントローラの仕組みも提供しているため、LinuxサーバでWindowsサーバと同様のサービスを提供することができる。

SambaはTCP/IP上でネットワークの処理を行うNetBIOSと、ファイルや印刷を共有するサービスを提供するSMB(Server Message Block)の2つのプロトコルを使用している。

Sambaサーバの共有ファイルへアクセスする際の認証としては大きく分けてWindowsワークグループで実装されている「共有レベルのセキュリティ認証」とWindowsドメインネットワークで実装されている「ユーザレベルのセキュリティ認証」の2つがあるが、現在では「ユーザレベルのセキュリティ認証」が標準となっている。

日本語ファイル名については、LinuxとWindowsでは使用している文字コードの違いがあるため、各々の環境で使用する文字コードの設定をする必要がある。また、Windowsでは大文字と小文字の区別をしていないため、大文字と小文字が混在しているファイル名の扱いについても予め設定する必要がある。

2) Sambaサーバの設定

SambaはSMBの機能を提供するsmbdと、NetBIOSの通信を行うnmbdで構成されている。

Sambaの設定は「/etc/samba/smb.conf」、「/etc/lmhosts」によって行い、主な設定項目は以下の通りである。

・ ワークグループ名の設定

・ アクセスを許可するIPアドレスの設定

・ パスワードファイルの設定

・ プリンタ共有の設定

・ 文字コードの設定

・ 共有するディレクトリの設定

・ NetBIOS名とIPアドレスの関係情報の設定

WindowsクライアントからSambaサーバへアクセスする際に使用するユーザIDやパスワードはsmbpasswdコマンドを使用してパスワードファイルを作成し管理を行う。

3) クライアントからの利用方法

WindowsクライアントからSambaサーバへ接続する場合は、Windowsファイル共有機能を利用し、「マイネットワーク」で共有ディレクトリを検索して共有を行う。

LinuxからWindows環境のファイル共有へ接続する場合はsmbclientコマンド(samba-client)を使用し、コンピュータ名と共有名を指定してファイルの共有を行う。

4) Sambaのセキュリティ

「ネットワークインタフェースによるアクセス制限」、「IPアドレスによるアクセス制限」および「ユーザ名によるアクセス制限」を設定することにより、セキュリティを確保することができる。

Sambaでは、smbdおよびnmbdの動作状態に関するログの他、接続したクライアント毎にアクセルログを出力する。これらから不正なアクセスが無いか、定期的に確認する必要がある。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。