ubuntu-serverによる自宅サーバーの作成2(Sambaサーバーの設定)

前回の記事で作成したサーバーをNASとして機能させるために、Sambaの設定を行ないます。
まず、Sambaのパッケージをインストールします。

sudo apt-get install samba

次に/etc/samba/smb.confを編集します。
sambaで共有フォルダを追加するための記述のフォーマットは以下のようになります。

["共有名"]
	path = "共有するディレクトリのパス"
	writeable = yes  # 書き込み可能とするならyes
	browseable = yes # 可視とするならyes
	valid users = "" # アクセス可能なユーザーのリスト
	guest ok = yes   # ゲストユーザを許可するならyes

具体例には次のように記述をsmb.confに追加します。

[public]
	path = /mnt/raid/public
	writeable = yes
	browseable = yes
	guest ok = yes
[admin_only]
	path = /mnt/raid/admin_only
	writeable = yes
	browseable = yes
	valid users = admin

最後に,sambaで使用するポートへのアクセスを許可するために、iptablesの設定を変更します。
iptablesの設定方法は以下の記事を参考にしました。
http://d.hatena.ne.jp/Ubuntu/20080128/1201462048
自宅サーバーで外部にサービスを公開する予定が無ければ、以下の設定で十分だと思います。

#!/bin/sh
IPTABLES=/sbin/iptables

# 初期化
$IPTABLES -F

# デフォルトルール
$IPTABLES -P INPUT   DROP
$IPTABLES -P OUTPUT  ACCEPT
$IPTABLES -P FORWARD 

# ローカルホストからのアクセスを全て許可
$IPTABLES -A INPUT -i lo -j ACCEPT

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Sambaサーバー
$IPTABLES -A INPUT -p udp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 138 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 139 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 445 -j ACCEPT

# SSHサーバーを公開する場合のみ
# $IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

# Webサーバーを公開する場合のみ
# $IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

このスクリプトを/etc/network/if-pre-up.d/iptablesとして実行権限つきで保存します。
これで、次回再起動時にこの設定が反映されます。