
Sambaは、混在プラットフォームネットワークにとって不可欠なコンポーネントです。Linux、Mac、Windowsをシームレスに相互通信させたいと考えているなら、このオープンソースサービスを検討したことがあるかもしれません。その場合、ユーザーセキュリティについても真剣に検討したことがあるはずです。ユーザーセキュリティを考慮せずにSamba共有を開くと、ユーザーがアクセスすべきでないデータにアクセスしてしまうリスクがあります。
では、どこから始めればいいのでしょうか?Samba共有をロックダウンするにはどうすればいいのでしょうか?すべてはユーザーから始まります。
ユーザーとSambaに関するセキュリティのベストプラクティスをいくつかご紹介します。これらのベストプラクティスを(必要に応じて)実践すれば、Sambaサーバーのセキュリティは新たなレベルに到達します。
参照:ハッカーへのインタビュー:Ghost Squad HackersのS1ege
ユーザーまたはグループによるセキュリティ
Samba共有を作成する際、個々のユーザーまたはグループに対して共有を設定できます。これは、特定の共有を特定のユーザーまたはグループに限定するのに最適な方法です。どのように設定するのでしょうか?簡単です。例えば、サーバー上にOliviaだけが閲覧できるフォルダがあるとします。smb.conf設定ファイル内では、その共有は以下のようになります。
[Olivia]
â path = /data/olivia
â read only = no
â writeable = yes
â browseable = yes
â valid users = Olivia
â create mask = 0640
â directory mask = 0750
force user = Olivia
この場合、ユーザー Olivia が/data/oliviaフォルダにアクセスする権限を持っていることを確認する必要があります。これは、以下のコマンドで実行できます。
chown -R Olivia.Olivia /data/olivia
valid users オプションは、Samba に共有を許可するユーザーを指定します。force user オプションは、すべてのファイルがそのユーザーのみで書き込まれることを保証します。複数のユーザーを指定するには、以下のようにします。
valid users = Olivia, Nathan, Bethany, Jamal
しかし、「editorial」というグループがあり、そのグループとディレクトリ「/data/editorial」を共有したい場合はどうすればよいでしょうか?そのグループの共有は次のようになります。
[Editorial]
â path = /data/editorial
â read only = no
â writeable = yes
â browseable = yes
â valid users = @editorial
â create mask = 0660
â directory mask = 0770
重要なのは@文字です。これは、editorial がユーザーではなくグループであることをSambaに伝えます。グループの場合は、以下のコマンドですべてのメンバーがグループに追加されていることを確認する必要があります。
usermod -a -G GROUPNAME USERNAME
GROUPNAMEはグループの名前、USERNAME は追加するユーザーの名前です。
共有へのアクセスを制御する
特定のユーザーがサーバー上のSamba共有にアクセスできないようにする必要があります。対象となるユーザーは、root、bin、daemon、adm、sync、shutdown、halt、mail、news、uucp、operatorです。これらのユーザーへのアクセスは、[global]定義で以下のようにブロックします。
invalid users = root bin daemon adm sync shutdown halt mail news uucp operator
[global] 定義内の特定のグループをブロックするには、無効なグループ オプションを次のように使用する必要があります。
invalid groups = root sudo
root がユーザーとグループの両方として追加されていることに注意してください。これにより、root グループに追加されたユーザー (権限が強化されます) が共有にアクセスできなくなる可能性があります。
Sambaパスワードの設定
Sambaの設定で最も見落とされがちな手順の一つは、ユーザーのパスワード追加です。Sambaユーザーのパスワードを設定しないと、ユーザーは共有にアクセスできなくなります。ユーザーのSambaパスワードを追加するコマンドは次のとおりです(USERは実際のユーザー名です)。
smbpasswd -a USER
これで、ユーザーは新しく作成された Samba ユーザー パスワードを使用して Samba 共有にアクセスできるようになります。
Sambaのセキュリティを簡単に
Sambaとユーザー/グループの最適な使い方を理解すれば、セキュリティ対策は大幅に容易になります。共有をロックダウンするためにできることは他にもたくさんありますが、上記の手順を実行すれば、誰もが憧れるベストプラクティスの領域へと一歩を踏み出すことができるでしょう。