Sambaサーバ構築、5つのべからず:2008年版
− 若葉マーク管理者に捧げる −オープンソース・ソリューション・テクノロジ株式会社
代表取締役 チーフアーキテクト 小田切 耕司
2008/4/22
smbpasswdファイルは使うべからず
WindowsとLinux/UNIXとでは認証方式が異なるため、Sambaは内部で独自のパスワードを格納しています。この情報はSamba 2.2まで「smbpasswd」というテキストファイルに格納されてきましたが、Winbind機能をはじめ、Samba 3.0で拡張された機能のいくつかをサポートできません。
特に、Sambaをドメインコントローラにするときは、パスワードポリシーなどの機能がsmbpasswdファイルには格納できないため、「TDB」というSamba独自の内部データベース、もしくはLDAPのような汎用的なディレクトリサービスを利用する形が推奨となります。
Sambaのパスワードデータベースの形式を簡単に分類すると、以下のようになります(smb.confの[global]セクションに「passdb backend=」で指定します)。
■smbpasswdファイル:passdb backend=smbpasswd
- Samba 2.2から移行するための一時利用に限定。今後利用は推奨されません。
- pdbeditコマンドでTDBやLDAPに移行できます。
■TDBファイル:passdb backend=tdbsam
- スタンドアロンサーバやドメインメンバにするときに利用します。
- TDBファイルは複数のサーバで共有不可能、複製不可能なうえに、スケーラビリティがないためです。
■LDAP:passdb backend=ldapsam
- Sambaをドメインコントローラにする場合やユーザー数が多いシステムで利用します。
- 初心者には敷居が高く感じられるのが難点ですが、業務で利用するなら拡張性を考えて、LDAPを使うようにしましょう。
smbpasswdコマンドは使うべからず
前項で「smbpasswdファイルは使うべからず」と書きましたが、同様にsmbpasswdコマンドも、Samba 2.2のころとは用途が変わってきています。
Samba 2.2のころは、smbpasswdコマンドがユーザーの追加・削除などの機能も持っていました。しかし現在は、以前と同じ機能を持っているものの、パスワード管理専用コマンドとして使うことが推奨になります。
■Samba 2.2のころのユーザー追加方法
# smbpasswd -a user01 |
■Samba 3.0のユーザー追加方法
# pdbedit -a user01 |
これは、先ほど触れたように、smbpasswdコマンドではパスワードポリシーなどの新しい機能が利用できないからです。
そしてこのpdbeditも、もしかしたらSamba 3.2では時代遅れになってしまうかもしれません。Samba 3.2からはnetコマンドが充実してきており、Sambaサーバに対してもWindowsサーバに対しても実行できるnetコマンドが推奨になりそうだからです。
なおSamba 3.0では現在でも、ユーザーや管理者がパスワードを変更する場合は、このsmbpasswdコマンドを使います。Samba 3.0においてsmbpasswdコマンドは、ユーザーが自身のパスワードを変更するためのコマンドであって、管理者がユーザーの管理(追加/削除など)をするためのコマンドではないということです。
security=share/server/domainは使うべからず
Samba 3.0には、security=user/ads/share/server/domainという5つの認証方式(セキュリティモデル)が用意されています。
| security=user | ユーザー単位でパスワード認証を行う |
| security=ads | Active Directoryドメインで認証を行う |
| security=share | 共有単位で認証を行う |
| security=server | Windows NTもしくはSambaで認証を行う |
| security=domain | Windowsドメインで認証を行う |
| 表1 Samba 3.0のセキュリティモデル | |
Windows XPまでは上記のどれを使っても問題は出なかったのだと思います。しかしながらWindows 2003 R2やVista、Windows 2008、XP 64ビットエディションでは、security=share/server/domainを使うと、うまく接続できない場合が増えてきました。Kerberos認証やNTLMv2認証などの新しい認証方式では、セキュリティ強化のために、代理認証やパスワードのリダイレクトを許さないためです。
これらには、Windowsクライアント側のレジストリを変更したり、netコマンドで接続するといった回避方法があります。しかし今後は、管理者やユーザーの手間を考えると、Samba側でsecurity=share/server/domainは使わないようにするのが賢明です。
推奨される2つの方式について説明しておきましょう。
- security=userを使うケース
Sambaをスタンドアロンサーバやドメインコントローラとして使う場合。ただし、スタンドアロンサーバでもsecurity=shareは使わない方がいいでしょう。
- security=adsを使うケース
SambaをWindows Active Directoryドメインのメンバとして使うケース。ただし、この場合にsecurity=server/domainを使うと、Windows Vistaなどから利用できないことがあります。
Sambaがドメインコントローラとなっている場合に、別のSambaサーバをsecurity=serverやdomainで利用するケースも考えられますが、可能ならばsecurity=userとして、同じLDAPサーバを認証データベースとして利用する方が効率がいいでしょう。
一方、security=serverやdomainで利用する場合、認証サーバ(password serverで指定)はドメインコントローラであることが前提になります(古いSambaではスタンドアロンサーバも認証サーバにできましたが、現在はスタンドアロンサーバを認証サーバにすると認証に時間がかかる場合があります)。
ほかのサーバに認証を依頼するユーザーとローカル認証ユーザーを混在させたい、というニーズがある場合も、security=domainで動かす特殊なケースになりますが、今後は、security=serverやdomainはできる限り利用しない方がいいでしょう。
smb.confを編集して共有の作成をするべからず
Sambaで共有を作成する場合は、通常、設定ファイルの「smb.conf」を修正する必要があります。
しかしながら多数の共有があり、管理者が複数人いる場合、皆で同時にsmb.confを編集してしまうと問題が生じる可能性があります。セキュリティの面からも、smb.confを多数の管理者が編集できるようになっているのは問題といえるでしょう。
そこで現在のSambaには、smb.confを編集しなくても共有の追加や削除ができる機能が備わっているのです。これは「usershare」機能と呼ばれるもので、smb.confの[global]セクションに
usershare path = /var/samba/shares |
というように、共有設定ファイルを置くディレクトリを指定するだけで利用できます。これを使うと、共有の作成、削除、変更のたびにsmb.confを編集する必要がなくなります。
例えば、「/home/sales」というディレクトリを「営業資料」という共有として公開する場合は、以下のようなコマンドを実行します。
net usershare add "営業資料" /home/sales |
上記のコマンドは、usershare pathで指定したディレクトリ(/var/samba/shares)に更新権限のあるユーザー(グループ)ならば、rootユーザーでなくても実行できます。設定情報は、usershare pathで指定したディレクトリ(/var/samba/shares)に、共有名(営業資料)と同じファイル名(/var/samba/shares/営業資料)で作成されます。
このファイルを編集したり削除したりすれば、共有の設定を変更したり削除することができますし、
net usershare delete "共有名" |
で共有を削除することもできます。
この機能はすでにアップルのMac OS X Leopardで採用されており、「Mac OSは操作が簡単!」という評判を裏で支えているSambaの新機能になります。
当然のことながら、いま現在もsmb.confを編集して共有を作成することができますが、今後はこの新機能の利用を検討してみてください。共有の管理が安全に、しかも簡単にできるようになるでしょう。
オープンソースの情報はソースや日付に注意
繰り返しになりますが、OSSは誰でも無償で利用でき、情報もインターネットで簡単に得られるため大変有用なものです。しかし一方で、多過ぎる情報と進化の速さが初心者泣かせ(上級者も大変ですが)でもあります。OSSを利用する際は、情報ソースの出所や日付に注意し、古い情報や間違った情報に振り回されないようにしましょう。
|
2/2 |
|
|
||||
|
||||
| Linux Square全記事インデックス |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






