「Fedora Core への Samba インストール」の版間の差分
細編集の要約なし |
細編集の要約なし |
||
(同じ利用者による、間の5版が非表示) | |||
431行目: | 431行目: | ||
実際は再起動されなくても反映される設定もありますが、無用の混乱を避ける意味でSambaの再起動を推奨します。 |
実際は再起動されなくても反映される設定もありますが、無用の混乱を避ける意味でSambaの再起動を推奨します。 |
||
---- |
|||
==コラム: smb.confを直接編集する== |
|||
SWATで編集する代わりにsmb.confファイルを直接編集しても構いません。smb.confファイルは以下のように単純な構造ですので、viなどLinux上のエディタを使える人であれば、設定方法でつまづくことはないと思います。 |
|||
[global] |
|||
パラメータ名 = 値 |
|||
パラメータ名 = 値 |
|||
... |
|||
[homes] |
|||
パラメータ名 = 値 |
|||
... |
|||
[share1] |
|||
... |
|||
[share2] |
|||
... |
|||
[ ]で囲まれた文字列(上記ではshare1など、Sambaではセクションと呼びます)は基本的に共有名を示し、次の[ ]で囲まれた文字列の行が現れるまでの各行が、該当の共有に関する設定となります。ただし、global、homes、printersという3つだけは、以下のように特殊な意味を持っています。 |
|||
;global:Samba全体の設定を記述する。特定の共有には関連づけられていない |
|||
;homes: この共有を定義すると、各ユーザのホームディレクトリが一括して共有される |
|||
;printers: この共有を定義すると/etc/printcapファイルで定義されたプリンタが一括して共有される |
|||
SWATでもVIEWメニューを選択することで現時点でのsmb.confの設定を表示させることが可能です。 |
|||
---- |
|||
それでは、実際に設定を行なっていきましょう。ここではSWATの画面で説明を行ないますが、もちろんsmb.confファイルを直接編集しても構いません。なおコラムで説明を行なったように、SWATで設定を行なうと、smb.conf中のコメントがすべて消去されてしまいますので、予めデフォルトのsmb.confファイルは/etc/samba/smb.conf.originalなどの名前でバックアップしておくことを強く推奨します。 |
|||
==Samba全体の設定== |
|||
まずはGLOBALSメニューを選択すると現れるSamba全体の設定(globalセクションの設定)について、最低限設定を行なった方がよいと考えているパラメータの説明を行なっていきます。なおSambaではsmb.confファイルで設定可能なオプションのことをパラメータと呼びます。 |
|||
[[画像:20070614Swat01all.jpeg|thumb|right|SWATでのGLOBALセクションの設定|SWATでのGLOBALセクションの設定]] |
|||
右にSWATで設定を行なった画面を示します。設定を行なったら、「変更を反映」ボタンを押して設定を反映させてください。 |
|||
*workgroup = ''任意のワークグループ名'' |
|||
:「ネットワークコンピュータ」上でSambaマシンのアイコンを表示させる場所(ワークグループ)を指定します。 |
|||
:Fedora Core 3のデフォルトでは「MYGROUP」になっていますが、Windowsマシンに設定したのと同じワークグループ名(ここではSAMBA)にしておけば問題ないでしょう。もちろんWindows側のワークグループ名を変更してSambaと同じにしても構いません。 |
|||
*os level = 1 |
|||
:「ネットワークコンピュータ」関連の無用のトラブルを避けるために、初心者の方は、このように設定することをお勧めします。資料によっては安易にこの値を大きな値にしているものもありますが、その場合Sambaの設定を誤るとネットワーク全体で「ネットワークコンピュータ」の機能がうまく動作しなくなります。従って、特に企業内LANでは上記の設定を強く推奨します。家庭内などで他にサーバが存在しない場合は、デフォルトの値(20)でも良いでしょう。 |
|||
:ただし、Sambaをドメインコントローラにする場合は、この値を32以上にする必要があります。逆にSambaがドメインコントローラでない場合は、絶対にこの値を32以上にしてはいけません。 |
|||
*wins server = ''WINSサーバのIPアドレス'' |
|||
:社内LANなどでネットワーク上にWINSサーバが存在している場合は指定してください。 |
|||
[[画像:20070614Global-jap.jpeg|thumb|right|SWATでの日本語設定|SWATでの日本語設定]] |
|||
以下の3つのパラメータは日本語を使用する上で必須のパラメータですが、標準の状態では設定画面に現れませんので、先ほどのSWATの画面から「詳細表示」を選択すると表示される右の画面で設定を行なってください。 |
|||
*dos charset = CP932 |
|||
:日本語の使用を指定します。 |
|||
*unix charset = UTF-8(デフォルト値) |
|||
:UNIX側で日本語を保存する際の文字コードを指定します。Fedora Core 3の場合、デフォルトがUTF-8ですので、この値を変更する必要は通常ないでしょう。Fedora Core 3自体の文字コードを変更している場合は、それに応じてシフトJISの場合はCP932、EUCの場合はEUCJP-MSなどを指定してください。 |
|||
*display charset = UTF-8 |
|||
:前述したようにFedora Core 3にデフォルトで付属しているSambaでは、 SWATで適切に日本語を表示するためunix charsetというパラメータと同じ値を設定する必要があります。Samba 3.0.8以降では、このパラメータの設定は既に不要になっていますので、デフォルトのままにしておいてください。 |
|||
ここまでの設定を反映したsmb.confを以下に示します。 |
|||
[global] |
|||
dos charset = CP932 |
|||
workgroup = SAMBA |
|||
os level = 1 |
|||
wins server = x.x.x.x |
|||
たったこれだけの設定ですが、Sambaをファイル・サーバーとして使用するだけであれば、これで充分です。 |
|||
==ホームディレクトリの共有== |
|||
[[画像:20070614Share2.jpeg|thumb|right|SWATでのホームディレクトリ共有の設定|SWATでのホームディレクトリ共有の設定]] |
|||
全体の設定が終ったら、共有の設定を幾つか行なっていきましょう。 |
|||
共有の設定はSHARESメニューを選択すると押すと現れる右の画面から行ないます。なお、Fedora Core 3のデフォルトではホームディレクトリの共有のみが行なわれています。これを実現しているのはhomesという特殊な共有になりますが、homes共有の設定を修正する必要はないと思いますので、説明は割愛します。 |
|||
<div style:"margin-bottom=50px"></div> |
|||
==グループでの共有ディレクトリ== |
|||
ファイル・サーバーとしての設定例として、グループ(複数ユーザ)で共有するディレクトリの設定を行なってみましょう。ここでは以下のような共有を作成します。 |
|||
# Linuxマシン上の/home/project1ディレクトリを共有する |
|||
# Linuxマシン上のgroup1グループに所属するユーザのみがアクセス可能 |
|||
# アクセス可能なユーザが書き込んだファイルを別のユーザが自由に編集できる |
|||
# 共有名はshare1 |
|||
===Linuxマシン上の準備=== |
|||
共有の作成にはLinux側でも作業が必要です。必要な作業を以下に示します。 |
|||
# groupadd group1 |
|||
# vigr |
|||
(/etc/group ファイルを編集して、group1グループに必要なユーザを追加) |
|||
# mkdir /home/project1 |
|||
# chgrp group1 /home/project1 |
|||
# chmod 775 /home/project1 |
|||
まずgroupaddコマンドでLinuxマシンにgroup1グループを追加します。ついでvigrコマンドで/etc/groupファイルを編集します。 |
|||
例えばgroup1グループにmonyoとmarieというユーザを所属させたい場合は、group1からはじまる行を以下のように編集してください。なおここまでの作業はGUIツールなどを用いて行なっても構いません。 |
|||
<pre> |
|||
group1:x:1210: monyo,marie |
|||
|~~~ |~~~~~~~~~~~ |
|||
| +-- 所属させるユーザを「,」で区切って列挙する |
|||
| |
|||
+-- 環境によって異なるGID |
|||
</pre> |
|||
更に、/home/project1ディレクトリを作成し、グループをgroup1にした上で、group1に書き込み権を与えます。 |
|||
===Sambaの設定=== |
|||
[[画像:20070614Share4all.jpeg|right|thumb|SWATでの共有の設定|SWATでの共有の設定]] |
|||
ついで、Sambaの設定に移ります。SWATを用いて設定を行なってみましょう。先ほどの画面で「ファイル共有の作成」の横に「share1」と入力の上、「ファイル共有の作成」ボタンを押します。ここで「詳細表示」を押すと現れる右の画面で設定を行ないます。以下設定について簡単に説明しましょう。 |
|||
*read only = no |
|||
:この値がyes(デフォルト値)の場合、共有に書き込むことはできません。 |
|||
*force group = group1 |
|||
:共有内に書き込まれたファイルやディレクトリのグループを強制的にgroup1にします。 |
|||
*force create mode = 764 / force directory mode = 775 |
|||
:共有内のファイルやディレクトリのLinux上でのアクセス権を指定します。764や775に設定することで、グループに書き込み権が与えられます。force groupと合わせることで、group1に所属するユーザであれば、共有内のファイルを編集することが可能になります。 |
|||
*valid users = @group1 |
|||
:共有にアクセスできるユーザをgroup1グループに所属するユーザのみに限定します。この設定がない場合、Sambaにアクセスできるユーザ全員が共有内のファイルの読み書きが可能となります。 |
|||
ここまで設定を行なったら、「変更を反映」ボタンを押して設定を反映させてください。 |
|||
Samba再起動後、Linuxサーバにアクセスすると、share1という共有が追加されており、group1グループに所属する複数のユーザ間でファイルの編集が可能になっている筈です。 |
|||
=まとめ = |
|||
ここまで、Sambaをまったく知らない初心者の方向けに、Fedora Core 3を例に、Sambaのインストールと簡単なファイル・サーバーとしての設定方法について説明しました。Sambaには、これ以外にも多くの機能がありますが、単純なファイル・サーバーとして使いたいというだけであれば、ここで説明した程度の設定でも充分でしょう。 |
|||
本記事がはじめてSambaにチャレンジする方のお役に立てれば幸いです。 |
|||
[[利用者:Monyo|Monyo]] |
2007年6月13日 (水) 16:43時点における最新版
Sambaのインストール
Fedora Core 3にはSambaのパッケージが含まれています。
ただし、デフォルトのインストールを行った状態では、Samba本体はインストールされていませんので別途インストールする必要があります。可能な限り、インターネットから最新版のパッケージを入手、インストールすることをお勧めします。
Sambaのインストール確認
Sambaのインストール状況を確認するには、以下のようにして端末(コマンドライン)上から rpm -qa
コマンドを実行して確認するのが確実です。
[root@filesv01 ~]# rpm -qa | grep samba samba-common-3.0.8-0.pre1.3 samba-client-3.0.8-0.pre1.3 ※samba-commonおよびsamba-clientパッケージがインストールされています
通常の構成では、このように samba-common と samba-client という2行が出力されることが多いはずです。しかし、この状態ではSamba本体はインストールされていません。実は、Sambaは以下のように複数のパッケージ(RPMファイル、以下Samba関連パッケージと呼称します)から構成されています。最低でもsambaパッケージがインストールされていないと、Sambaサーバは機能しません。
パッケージ名 | GUIからの インストール可否 |
説明 |
samba-common | Yes(※) | Sambaの共通プログラム/ファイル(smb.confなど) |
samba | Yes | Sambaのサーバプログラム(smbd/nmbdなど) |
samba-client | Yes | Sambaのクライアントプログラム(smbclientなど) |
samba-swat | No | SWAT関連(swatなど) |
system-config-samba-1.2.21-1 | Yes | Fedora Core 3に付属するSamba設定ツール |
※: 明示的に指定することはできませんが、パッケージ間の依存関係のため、sambaをインストールすると自動的にインストールされます。
以下Samba関連パッケージのインストール方法について説明しましょう。
なお、インストール時に「インストールの種類」画面で「サーバー」を選択した場合はデフォルトでSamba本体(sambaパッケージ)やSambaサーバー設定ツール(system-config-sambaパッケージ)もインストールされていますが、後述するSambaのWeb設定ツールであるSWAT(samba-swatパッケージ)はインストールされていません。SWATで管理を行なわない場合はsamba-swatパッケージはなくても構いませんが、インストールしたい場合は、以下で説明する方法にしたがってインストールを行ってください。
Samba関連パッケージのインストールとアップレード
Samba関連パッケージがインストールされていなかった場合は、Fedora Core 3のCD-ROMやDVD-ROMなどからインストールを行うか、次で説明するように、インターネット上から最新版のインストールを行います。CD-ROMからインストールを行う場合は、以下のように順に操作を行っていきます。これでCD-ROMからSamba関連のパッケージが全てインストールされます。
[root@filesv01 ~]# mount /media/cdrom [root@filesv01 ~]# cd /media/cdrom/Fedora/RPMS [root@filesv01 RPMS]# ls *samba* samba-3.0.8-0.pre1.3.i386.rpm samba-swat-3.0.8-0.pre1.3.i386.rpm samba-client-3.0.8-0.pre1.3.i386.rpm system-config-samba-1.2.21-1.noarch.rpm samba-common-3.0.8-0.pre1.3.i386.rpm [root@filesv01 RPMS]# rpm --replacepkgs(※) -Uvh *samba* Preparing... ########################################### [100%] 1:samba-common ########################################### [ 20%] 2:samba ########################################### [ 40%] 3:samba-client ########################################### [ 60%] 4:samba-swat ########################################### [ 80%] 5:system-config-samba ########################################### [100%] ※: --replacepkgsオプションがない場合、インストールされているパッケージとアップデートしようとしているパッケージのバージョンが同一だと、RPMコマンドが失敗します。
ただし、最近は各種セキュリティホールの発見により頻繁にアプリケーションのバージョンアップが行なわれています。残念ながらSambaも例外ではなく、記事執筆時点でもCD-ROMに収録されているパッケージと最新版のパッケージとには差異があります。このため、すでにSambaがインストールされていた場合も含め、可能であればインターネット上から最新版のパッケージを取得、アップデートすることを推奨します。
これはSambaに限った話ではなく、Apacheやsendmailなどサーバアプリケーションすべてについていえることです。不特定多数からアクセスがあるインターネットサーバーの場合、この作業は「必須」です。Sambaが実行される社内ファイル・サーバーの場合も随時アップデートを行うことが望ましいのですが、敢えて「必須」という表現は外しました。
インターネットから最新版のSamba関連パッケージのインストールやアップデートを行う場合は、yumコマンド、up2dateコマンド、aptコマンドが使えますが、ここではFedora Core 3標準のyumコマンドの場合に付いて説明します。
ファイル・サーバーからHTTPプロキシサーバーを経由せずにインターネット上のWebサイトにアクセスできる場合は、以下のようにyum updateに続いてインストールしたいパッケージ名を指定するだけで、そのパッケージのインストールに必要な依存パッケージをyumコマンド側で自動的に認識して、最終的にインストール対象のパッケージのインストールを行ってくれます。
[root@filesv01 ~]# rpm --import /usr/share/rhn/RPM-GPG-KEY-fedora ←最初にyumコマンドを使用する前に1回だけ行うこと [root@filesv01 ~]# yum update system-config-samba ← system-config-sambaパッケージのアップデート Setting up Update Process Setting up Repo: base repomd.xml 100% |=========================| 1.1 kB 00:00 Setting up Repo: updates-released repomd.xml 100% |=========================| 951 B 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 797 kB 00:01 MD Read : ################################################## 2623/2623 base : ################################################## 2622/2622 primary.xml.gz 100% |=========================| 300 kB 00:00 MD Read : ################################################## 738/738 updates-re: ################################################## 738/738 Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for system-config-samba to pack into transaction set. system-config-samba-1.2.2 100% |=========================| 23 kB 00:00 ---> Package system-config-samba.noarch 0:1.2.28-0.fc3.1 set to be updated --> Running transaction check Dependencies Resolved Transaction Listing: Update: system-config-samba.noarch 0:1.2.28-0.fc3.1 Is this ok [y/N]: y ←パッケージを本当にインストールするかを聞いているので「y」を入力 Downloading Packages: system-config-samba-1.2.2 100% |=========================| 204 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating: system-config-samba 100 % done 1/2 Completing update for system-config-samba - 2/2 Updated: system-config-samba.noarch 0:1.2.28-0.fc3.1 Complete! [root@filesv01 ~]# yum update samba samba-common samba-swat samba-client (以下出力は省略) ※はじめてyumコマンドを使用する場合は初期化に若干時間が掛かりますが異常ではありません。
HTTPプロキシ経由でのアクセスが必要な環境の場合は、環境変数http_proxyにHTTPプロキシのIPアドレスやホスト名とポート番号を設定します。例えば、HTTPプロキシのIPアドレスが192.168.1.1でポート番号が8080の場合は、yumコマンドの実行前に以下のような設定を行ってください。
[root@filesv01 ~]# export http_proxy=http://192.168.1.1:8080/(※) [root@filesv01 ~]# yum update samba-client ※: tcshなどcsh系のシェルを用いている場合は、「setenv http_proxy http://192.168.1.1:8080/」と入力します。
HTTPプロキシを経由してもインターネットにアクセスできない環境においてSambaの最新版をインストールしたい場合は、Fedora Core 3のWebサイトなどから最新版のパッケージをダウンロードした上で、なんらかの方法でFedora Core 3上にパッケージを転送した上で、前述したようにRPMコマンドを用いてインストールを行ってください。
ファイアウォールの設定
Fedora Core 3では、セキュリティ強化のため、デフォルトの設定でインストールを行うと、ファイアウォール機能が有効になっています。この機能はインターネットサーバとしての使用を意識したものとなっていますので、そのままではWindowsマシンからSambaサーバにアクセスすることができません。従って何らかの設定変更が必須です。
設定方法は幾つかありますが、ここではコマンドラインからでもGUI的な設定が可能なlokkitコマンドを使う方法を説明しましょう。コマンドラインから「lokkit」と入力すると、右のような画面が現れます
必要最低限のポートだけをオープンしたいという場合は、「カスタマイズ」ボタンを押すと現れる右の画面で、「その他のポート」欄に以下のように入力してください。
445:tcp,139:tcp,138:udp,137:udp,901:tcp ※SWATを用いない場合、901:tcpは不要
上記のように入力する代わりに「信頼できるデバイス」欄のインタフェース(eth0など)をチェックすることもできますが、この場合、そのLANインタフェースに関してファイアウォール機能が無効になります。LANカードが複数接続されているマシンでない限り、これはセキュリティレベルを無効にしたのと同じ意味になりますので、注意してください。
設定が反映されているかどうかは右のようにiptables --listコマンドで確認できます。
図では、netbios-ssn(139/tcp), netbios-dgm(138/udp), netbios-ns(137/udp)といったポートがACCEPTになっていることが確認できます。
なお、デスクトップの[アプリケーション]-[システム設定]-[セキュリティ レベルの設定]を開くと表示される「セキュリティレベルの設定」画面から同様の設定を行うことも可能です。
SE Linuxの設定
Fedora Core 3ではセキュリティ強化の一貫としてSE Linuxという機能がデフォルトで有効になっています。しかしSE Linuxを有効にした状態で、ファイル・サーバーを適切に運用するには相応の知識が必要となりますので、初心者の方での運用は難しいでしょう。そのため、ここではSE Linux機能を無効にする方法を紹介します。SE Linux機能を無効にしてもFedora Core 2のデフォルト状態と同様になるだけで、それ以上にセキュリティが低下することはありません。
SE Linux機能を無効にするには、/etc/selinux/configファイルのSELINUX行を以下のように設定します。なおインストール時にSE Linux機能を無効にしてインストールした場合、以下の設定は既に行われています。
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled ←disabled以外の場合は、disabledに変更する # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted
SE Linuxの設定も、デスクトップの[アプリケーション]-[システム設定]-[セキュリティ レベルの設定]から行うことが可能です。
SWATのインストールと構成
SWATはSambaの設定や管理をWebから行なうためのツールでSambaに同梱されています。SWATを使用することで、簡単な設定や管理であればLinux上で行なう必要がなくなります。SWATには問題点もありますので、すべての環境での使用を推奨するものではありませんが、初心者やLinuxに不慣れな管理者にとっては便利なツールですので、本稿ではSWATを用いて設定を行なう方法を紹介します。
SWATを使用するには前述したようにsamba-swatパッケージをインストールしておく必要があります。ただし、それだけではSWATが使用可能になりません。Windowsなど別端末のブラウザから接続する際には、前述したファイアウォールの設定でSWATが通常使用するポート(901/tcp)をオープンした上で、/etc/xinetd.d/swatファイルを修正して端末からの接続を許可する設定が必要です。
デフォルトではlocalhostからのアクセスのみが許可されていますので、以下のようにonly_from行を追加してSWATへの接続を許可するIPアドレスを追加します。
# default: off # description: SWAT is the Samba Web Admin Tool. Use swat \ # to configure your Samba server. To use SWAT, \ # connect to port 901 with your favorite web browser. service swat { port = 901 socket_type = stream wait = no only_from = localhost only_from += 192.168.1.0/24 ← この行を追加 user = root server = /usr/sbin/swat log_on_failure += USERID disable = no ← yesをnoに変更 } ※上記は192.168.1.0~192.168.1.255からの接続を許可する場合の例
修正後は以下のようにして設定を反映させます。
[root@filesv01 ~]# chkconfig swat on [root@filesv01 ~]# service xinetd reload Reloading configuration: [ OK ]
まずは、WindowsマシンからWebブラウザで接続してみましょう。認証を求められますので、Fedora Core 3側のrootユーザとそのパスワードを入力してください。右のような画面が表示されればインストールは成功です。
ただし、Samba関連パッケージをCD-ROMからインストールしてからアップデートしていない場合などに用いられる、samba-swat-3.0.8-0.pre1.3という古いSWAT(samba-swatパッケージ)の場合、このままではこれ以外の画面で文字化けが発生してしまいます。
この場合は/etc/samba/smb.confファイルを開いて、以下のように「display charset = UTF-8」という1行をworkgroup行の下などに追加しておくことによりSWATの文字化けを防ぐ必要があります。
# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed (中略) # NOTE: Whenever you modify this file you should run the command "testparm" # to check that you have not made any basic syntactic errors. # #======================= Global Settings ===================================== [global] # workgroup = NT-Domain-Name or Workgroup-Name workgroup = HOME display charset = UTF-8 ←この行を追加 # server string is the equivalent of the NT Description field server string = Samba Server (以下省略)
なお、古いSWATパッケージから新しいSWATパッケージにアップデートした場合は、必ず/var/cache/sambaにあるlang_ja.tdbというファイルを一度削除して、SWATの日本語メッセージのキャッシュを再構築するようにしてください。
SWATの画面上部にある「Globals」、「Shares」といったメニューをクリックすることで、Sambaの設定を行なうことが可能です。各々のメニューの意味については以下を参照してください。詳細については順次説明を行なっていきます。
アイコン名 | 説明 |
HOMES | 各種ドキュメントの閲覧 |
GLOBALS | Samba全体を設定する[global]セクションの設定 |
SHARES | 各ファイル共有の設定 ユーザホーム機能を実現する [homes] セクションの設定 |
PRINTERS | 各プリンタ共有の設定 OSが定義したプリンタを共有する [printers] セクションの設定 |
WIZARD | ウィザード形式によるSambaの設定 残念ながら、日本語環境には対応していません |
STATUS | Sambaデーモンの起動と終了 アクセス状況の表示、セッションの 強制切断も可能 |
VIEW | smb.confファイルの内容表示 |
PASSWORD | Sambaユーザの追加や削除、パスワードの変更 リモートマシンに対する操作も可能 |
コラム:SWATの注意点と使用の指針
Webブラウザによる簡易な設定を実現するSWATですが、実際の使用に当たっては注意が必要です。以下SWATを使用することによる問題点を列挙します。
- 設定ファイルを上書きしてしまう
- SWATで設定を行なうと、設定ファイルが再生成され、コメント行やデフォルト設定のままの行が削除されてしまう他、パラメータの並び順なども「整頓」されてしまいます。
- このため、smb.confファイルを修正して設定を行なっている場合、SWATでの設定は行なわないようにしてください。
- セキュリティが脆弱
- SWATで設定を行なうためには基本的にSambaサーバ上でroot権限を持つアカウント(通常root)でSWATに接続を行なう必要があります。ただし、SWAT自身はパスワードの暗号化処理などは行ないませんので、このままではアカウントのパスワードがネットワーク上に送出されてしまいます。これを防ぐには、以下のような対策を行なう必要があります。
- 必ずSambaサーバ自身から接続し、ネットワーク上にSWATの通信を流さない
- stoneやsshなどを用いてネットワーク上の処理を暗号化する
- やはりSWATを使わず、直接smb.confを編集する
- 今回の記事では、なるべく設定を簡単にするために、WindowsマシンからInternet ExplorerでSambaサーバー上のSWATにアクセスする例を紹介していますが、セキュリティ上はSambaサーバー上のWebブラウザからアクセスすることを強く推奨します。
- includeなどのパラメータに対応していない
- includeやconfig fileといった別のファイルを動的に読み込むパラメータには対応していません。
- また、SWATを使うことで、viなどLinux上の各種ツールが使えなくてもsmb.confファイルの編集が可能となりますが、smb.conf中の各パラメータをどのように設定すべきかについての知識が不要となるわけではありません。
- これらの点を考慮しますと、初心者が簡易に設定を行なう目的であればSWATを使用した設定でよいと思いますが、本格的に使用していく場合はsmb.confの直接編集を行なった方がよいでしょう。
Sambaの起動とWindowsマシンからの接続
Sambaのインストールが完了したところで、とりあえずSambaを起動してWindowsマシンから接続を行なってみましょう。
ここではFedora Core 3上にdamedameというパスワードのmonyoというユーザを作成して、Windowsマシンからは、このmonyoというユーザでアクセスする場合を例にとって説明します。
Sambaユーザの作成
Windowsマシンからアクセスを行なうためには、Fedora Core 3側でアクセス時に使用するSambaユーザを作成しておく必要があります。Sambaユーザを作成する際には必ず対応するユーザがLinux上に存在している必要がありますので、先にLinux上でユーザを作成しておきます。作成方法はいろいろありますが、コマンドラインから行なう場合はrootユーザで
# useradd monyo
のようにuseraddコマンドを使って作成しておけばよいでしょう。もちろんすでに存在しているユーザをそのまま流用することもできます。なおSamba経由でしかLinuxマシンに接続しないのであれば、パスワードを設定する必要はありません。
ついでSambaユーザを作成します。SWATで行なう場合はPASSWORDメニューを選択すると現れる画面で、右のように「ユーザ名」欄に作成したいSambaユーザ(ここではmonyo)、その下の新パスワード欄にパスワードを二度入力した上で、「新規ユーザ追加」ボタンを押します。作成が成功すると、ボタンの下に
Added user monyo.
というメッセージが表示される筈です。なおコマンドラインから行なう場合は
smbpasswd(もしくはpdbedit) -a monyo
と入力した上で、後は指示にしたがってください。
Sambaユーザを作成する際にはSamba本体は停止していても構いません。またSambaユーザの作成は直ちに反映されますので、Sambaを再起動したりする必要はありません。
Sambaの起動と停止
Fedora Core 3では、Sambaのインストール時点で、ディストリビューション標準の方法によるSambaの制御が可能な状態になっています。
インストール時点ではSambaは起動していませんので、まずSambaを起動させましょう。Sambaの起動、停止は以下のようにコマンドラインからserviceコマンドを用いて行うことができます。
[root@filesv01 ~]# service smb start SMB サービスを起動中: [ OK ] NMB サービスを起動中: [ OK ] [root@filesv01 ~]# service smb stop SMB サービスを停止中: [ OK ] NMB サービスを停止中: [ OK ] [root@filesv01 ~]#
この設定はデスクトップの[アプリケーション]-[システム設定]-[サービス]から行うことも可能です。
ただし、単にSambaを起動しただけでは、OSを再起動するとSambaは停止したままになってしまいます。そのため、以下のようにコマンドラインからchkconfigコマンドを用いてLinux起動時にSambaが自動起動するように設定しておくことを忘れないようにしてください。
# chkconfig smb on ← 自動起動させる # chkconfig --list smb ← Sambaの起動状態の確認 smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off ↑ on になっていることが確認できる
Sambaの自動起動を止めたい場合は、以下のように設定、確認を行います。
# chkconfig smb off ← 自動起動させない # chkconfig --list smb smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off ↑ off になっていることが確認できる
この設定は、コマンドラインからntsysvコマンドを起動することにより対話的に行うことも可能です。
Sambaがうまく動作しない場合のトラブルシューティング
ここまでの設定を順番に行なっていけば、Sambaへの接続は問題なくできる筈ですが、どうしてもうまくいかないという方は以下を参考にして、トラブルシューティングを行なってみてください。
- ファイアウォールやセキュリティの設定を確認する
- インターネットからの不正なアクセスを防御してくれるファイアウォールですが、Sambaにとって本来必要な通信も遮断してしまう厄介な機能でもあります。
- メーリングリストなどでもうまくつながらないといった原因のかなりのものがWindows上でパーソナルファイアウォールが実行されていることによるものです。初心者の方の場合、ファイアウォールを無効にして確認を行なったつもりが実は無効になっていなかったという場合もあるので、どうやってもつながらない場合は、一度ファイアウォールをアンインストールして試してみてください。
- なおLinux側でファイアウォールが有効になっている場合も問題が発生します。前述したlokkitコマンドなどによりファイアウォール機能を無効にできますので、Sambaへの接続がうまくいかないときは試してみてください。また、念のため/etc/selinux/config ファイルの内容も今一度確認してみましょう。
- TCP/IPレベルの接続を確認する
- Sambaの設定が適切に行なわれていても、基本となるTCP/IPの設定に誤りがあっては、当然接続できません。DHCPを使用していない場合はIPアドレス、サブネットマスクなどの設定を確認してください。
- 目視確認を行なったら、
- 1) WindowsおよびLinux上で
ping <相手マシンのIPアドレス>
- を実行して互いに反応があることを確認する。
- 2) Windows上で
nbtstat -A <LinuxマシンのIPアドレス>
- を実行して、以下のような出力が得られることを確認する。
C:\>nbtstat -A 192.168.135.13 Node IpAddress: [192.168.135.1] Scope Id: [] NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------- FILESV01 <00> UNIQUE Registered FILESV01 <03> UNIQUE Registered FILESV01 <20> UNIQUE Registered ..__MSBROWSE__.<01> GROUP Registered MYGROUP <00> GROUP Registered MYGROUP <1D> UNIQUE Registered MYGROUP <1E> GROUP Registered MAC Address = 00-00-00-00-00-00
- といった確認を行なってください。1)がうまくいかない場合はTCP/IPレベルの設定に問題があります。2)がうまくいかない場合は、Sambaが起動していない、ファイアウォールが有効になっているといった原因が考えられます。
- なお、ファイアウォールが有効になっていると、pingコマンドに失敗してもSambaでは接続できてしまうといったケースがありますので、トラブルシューティングの観点からは、予めファイアウォール機能を無効にした状態で確認を行なった方が確実です。
本記事では内部ネットワークを想定しています。ルータなしにインターネットにマシンが直結されているような環境では安直にファイアウォールを無効にするのは危険ですので、必ずインターネットとの接続を切断した状態で確認を行ない、最終的にインターネットに再接続する前には、Sambaの通信に不要な通信は元通り遮断する設定を行なう必要があります。
- Sambaユーザ名とパスワードを確認する
右のダイアログボックスが表示される場合は、Samba自体はきちんと動作していますので、Linuxマシン上に作成したSambaユーザのユーザ名やパスワードを確認してください。
Sambaの設定入門
ここまではSambaを動作させることを最優先にして説明を行ってきました。動作確認ができたところで、いよいよSambaの設定を行なっていきましょう。
Sambaの設定方法としては、大きくSWATを使用してsmb.confファイルを修正する方法と/etc/sambaにある以下のようなsmb.confファイルを直接修正する方法とがあります。
本格的に使用する場合は、直接編集による設定変更をお勧めしますが、ここでは簡単に設定が行なえるSWATの使用を前提に設定方法について説明します。いずれの方法で設定を行なった場合も、設定が完了したら基本的にSambaを再起動するようにしてください。
実際は再起動されなくても反映される設定もありますが、無用の混乱を避ける意味でSambaの再起動を推奨します。
コラム: smb.confを直接編集する
SWATで編集する代わりにsmb.confファイルを直接編集しても構いません。smb.confファイルは以下のように単純な構造ですので、viなどLinux上のエディタを使える人であれば、設定方法でつまづくことはないと思います。
[global] パラメータ名 = 値 パラメータ名 = 値 ... [homes] パラメータ名 = 値 ... [share1] ... [share2] ...
[ ]で囲まれた文字列(上記ではshare1など、Sambaではセクションと呼びます)は基本的に共有名を示し、次の[ ]で囲まれた文字列の行が現れるまでの各行が、該当の共有に関する設定となります。ただし、global、homes、printersという3つだけは、以下のように特殊な意味を持っています。
- global
- Samba全体の設定を記述する。特定の共有には関連づけられていない
- homes
- この共有を定義すると、各ユーザのホームディレクトリが一括して共有される
- printers
- この共有を定義すると/etc/printcapファイルで定義されたプリンタが一括して共有される
SWATでもVIEWメニューを選択することで現時点でのsmb.confの設定を表示させることが可能です。
それでは、実際に設定を行なっていきましょう。ここではSWATの画面で説明を行ないますが、もちろんsmb.confファイルを直接編集しても構いません。なおコラムで説明を行なったように、SWATで設定を行なうと、smb.conf中のコメントがすべて消去されてしまいますので、予めデフォルトのsmb.confファイルは/etc/samba/smb.conf.originalなどの名前でバックアップしておくことを強く推奨します。
Samba全体の設定
まずはGLOBALSメニューを選択すると現れるSamba全体の設定(globalセクションの設定)について、最低限設定を行なった方がよいと考えているパラメータの説明を行なっていきます。なおSambaではsmb.confファイルで設定可能なオプションのことをパラメータと呼びます。
右にSWATで設定を行なった画面を示します。設定を行なったら、「変更を反映」ボタンを押して設定を反映させてください。
- workgroup = 任意のワークグループ名
- 「ネットワークコンピュータ」上でSambaマシンのアイコンを表示させる場所(ワークグループ)を指定します。
- Fedora Core 3のデフォルトでは「MYGROUP」になっていますが、Windowsマシンに設定したのと同じワークグループ名(ここではSAMBA)にしておけば問題ないでしょう。もちろんWindows側のワークグループ名を変更してSambaと同じにしても構いません。
- os level = 1
- 「ネットワークコンピュータ」関連の無用のトラブルを避けるために、初心者の方は、このように設定することをお勧めします。資料によっては安易にこの値を大きな値にしているものもありますが、その場合Sambaの設定を誤るとネットワーク全体で「ネットワークコンピュータ」の機能がうまく動作しなくなります。従って、特に企業内LANでは上記の設定を強く推奨します。家庭内などで他にサーバが存在しない場合は、デフォルトの値(20)でも良いでしょう。
- ただし、Sambaをドメインコントローラにする場合は、この値を32以上にする必要があります。逆にSambaがドメインコントローラでない場合は、絶対にこの値を32以上にしてはいけません。
- wins server = WINSサーバのIPアドレス
- 社内LANなどでネットワーク上にWINSサーバが存在している場合は指定してください。
以下の3つのパラメータは日本語を使用する上で必須のパラメータですが、標準の状態では設定画面に現れませんので、先ほどのSWATの画面から「詳細表示」を選択すると表示される右の画面で設定を行なってください。
- dos charset = CP932
- 日本語の使用を指定します。
- unix charset = UTF-8(デフォルト値)
- UNIX側で日本語を保存する際の文字コードを指定します。Fedora Core 3の場合、デフォルトがUTF-8ですので、この値を変更する必要は通常ないでしょう。Fedora Core 3自体の文字コードを変更している場合は、それに応じてシフトJISの場合はCP932、EUCの場合はEUCJP-MSなどを指定してください。
- display charset = UTF-8
- 前述したようにFedora Core 3にデフォルトで付属しているSambaでは、 SWATで適切に日本語を表示するためunix charsetというパラメータと同じ値を設定する必要があります。Samba 3.0.8以降では、このパラメータの設定は既に不要になっていますので、デフォルトのままにしておいてください。
ここまでの設定を反映したsmb.confを以下に示します。
[global] dos charset = CP932 workgroup = SAMBA os level = 1 wins server = x.x.x.x
たったこれだけの設定ですが、Sambaをファイル・サーバーとして使用するだけであれば、これで充分です。
ホームディレクトリの共有
全体の設定が終ったら、共有の設定を幾つか行なっていきましょう。
共有の設定はSHARESメニューを選択すると押すと現れる右の画面から行ないます。なお、Fedora Core 3のデフォルトではホームディレクトリの共有のみが行なわれています。これを実現しているのはhomesという特殊な共有になりますが、homes共有の設定を修正する必要はないと思いますので、説明は割愛します。
グループでの共有ディレクトリ
ファイル・サーバーとしての設定例として、グループ(複数ユーザ)で共有するディレクトリの設定を行なってみましょう。ここでは以下のような共有を作成します。
- Linuxマシン上の/home/project1ディレクトリを共有する
- Linuxマシン上のgroup1グループに所属するユーザのみがアクセス可能
- アクセス可能なユーザが書き込んだファイルを別のユーザが自由に編集できる
- 共有名はshare1
Linuxマシン上の準備
共有の作成にはLinux側でも作業が必要です。必要な作業を以下に示します。
# groupadd group1 # vigr (/etc/group ファイルを編集して、group1グループに必要なユーザを追加) # mkdir /home/project1 # chgrp group1 /home/project1 # chmod 775 /home/project1
まずgroupaddコマンドでLinuxマシンにgroup1グループを追加します。ついでvigrコマンドで/etc/groupファイルを編集します。
例えばgroup1グループにmonyoとmarieというユーザを所属させたい場合は、group1からはじまる行を以下のように編集してください。なおここまでの作業はGUIツールなどを用いて行なっても構いません。
group1:x:1210: monyo,marie |~~~ |~~~~~~~~~~~ | +-- 所属させるユーザを「,」で区切って列挙する | +-- 環境によって異なるGID
更に、/home/project1ディレクトリを作成し、グループをgroup1にした上で、group1に書き込み権を与えます。
Sambaの設定
ついで、Sambaの設定に移ります。SWATを用いて設定を行なってみましょう。先ほどの画面で「ファイル共有の作成」の横に「share1」と入力の上、「ファイル共有の作成」ボタンを押します。ここで「詳細表示」を押すと現れる右の画面で設定を行ないます。以下設定について簡単に説明しましょう。
- read only = no
- この値がyes(デフォルト値)の場合、共有に書き込むことはできません。
- force group = group1
- 共有内に書き込まれたファイルやディレクトリのグループを強制的にgroup1にします。
- force create mode = 764 / force directory mode = 775
- 共有内のファイルやディレクトリのLinux上でのアクセス権を指定します。764や775に設定することで、グループに書き込み権が与えられます。force groupと合わせることで、group1に所属するユーザであれば、共有内のファイルを編集することが可能になります。
- valid users = @group1
- 共有にアクセスできるユーザをgroup1グループに所属するユーザのみに限定します。この設定がない場合、Sambaにアクセスできるユーザ全員が共有内のファイルの読み書きが可能となります。
ここまで設定を行なったら、「変更を反映」ボタンを押して設定を反映させてください。
Samba再起動後、Linuxサーバにアクセスすると、share1という共有が追加されており、group1グループに所属する複数のユーザ間でファイルの編集が可能になっている筈です。
まとめ
ここまで、Sambaをまったく知らない初心者の方向けに、Fedora Core 3を例に、Sambaのインストールと簡単なファイル・サーバーとしての設定方法について説明しました。Sambaには、これ以外にも多くの機能がありますが、単純なファイル・サーバーとして使いたいというだけであれば、ここで説明した程度の設定でも充分でしょう。
本記事がはじめてSambaにチャレンジする方のお役に立てれば幸いです。