EC2にSambaを構築してWindowsからファイル共有してみた

渡邊です。

Amazon LinuxのEC2インスタンス上に、ローカルのWindows PCとファイル共有するSambaを構築する機会がありましたので、レシピとして紹介致します。

EC2インスタンスの作成

まずはEC2インスタンスを作成します。

AMIは「Amazon Linux」を選択します。

今回は「t2.micro」で十分です。

今回はデフォルト設定で次の設定へ進みます。

今回は「8GB」で十分です。

必要なタグを設定します。今回は「Name」のみ設定します。

Samba用の設定を追加します。後から設定してもOKです。

外部からSambaにアクセス出来るように、次のポートのinboundを開放しておきます。

・UDP 137番ポート:NetBIOS ネーム・サービス(名前登録など)用

・UDP 138番ポート:NetBIOS データグラム・サービス(ブラウジングなど)用

・TCP 139番ポート:NetBIOS over TCP(ファイル / 印刷サービスなど )用

・UDP 137番ポート:NetBIOS ネーム・サービス(名前登録など)用

・UDP 138番ポート:NetBIOS データグラム・サービス(ブラウジングなど)用

・TCP 139番ポート:NetBIOS over TCP(ファイル / 印刷サービスなど )用

・TCP 445番ポート:ダイレクト・ホスティング SMB(ファイル / 印刷サービスなど)用

「作成」ボタンを押下します。

キーペアを設定します。ここでは既存のキーペアを使用します。

「インスタンスの表示」ボタンを押下して、EC2インスタンスの起動を待ちます。

Elastic IPの割り当て

利便性のため、作成したEC2インスタンスにElastic IPを割り当てます。

EC2の画面の左ペインから「Elastic IP」を選択し、「新しいアドレスの割り当て」ボタンを押下します。

「割り当て」ボタンを押下します。

Elastic IPを取得出来ました。

取得したElastic IPはメモ等で控えておき、「閉じる」ボタンを押下します。

取得したElastic IPを選択し、「アクション」を押下します。

リストの中から「アドレスの関連付け」を選択します。

インスタンスに先程作成したEC2インスタンスを指定して、

「関連付け」ボタンを押下します。

「閉じる」ボタンを押下します。

Sambaインストール

Sambaをインストールします。

作成したEC2インスタンスにSSHでログインし、yumでSambaをインストールします。

1$ sudo yum install samba

Samba設定

Sambaを設定します。

まずSamba用にユーザを作成し、Sambaユーザとします。

1$ sudo useradd kcsamba2$ sudo passwd kcsamba3Changing password for user kcsamba4New Password:5Retype new password:6passwd: all authentication tokens updated successfully.7$ sudo smbpasswd -a kcsamba8New SMB password:9Retype new SMB password:10Added user kcsamba.

Windows PCとファイル共有するためのフォルダを作成します。

今回はSambaユーザのホームディレクトリ配下にフォルダを作成して、これを共有することにします。

1$ su kcsamba2Password:3$ cd4$ mkdir samba

Sambaの設定ファイルを編集します。

編集前のファイルをバックアップとしてコピーしておきます。

1$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original2$ sudo vi /etc/samba/smb.conf

今回は下記のように設定しました。

・「load printers」の値を「no」に変更して、プリンタ共有を無効化します。

・「encrypt passwords = yes」を追記して、パスワードの暗号化を有効にします。

1・23[global]4       workgroup = SAMBA5       security = user67       passdb backend = tdbsam89       printing = cups10       printcap name = cups11       load printers = no12       cups options = raw13       encrypt passwords = yes

シェア名を「kcsamba」として、共有フォルダなどを設定します。

今回はユーザ名とシェア名を同一にしましたが、同一である必要はありません。

1[kcsamba]2        comment = knowledgecommunication3        path = /home/kcsamba/samba4        writable = yes

Sambaを起動させます。

1$ sudo service smb start

自動起動設定もしておきます。

1$ sudo chkconfig smb on2$ sudo chkconfig | grep smb

動作確認

動作を確認します。

ローカルのWindows PCから、エクスプローラのアドレスバーに

「\\(EC2インスタンスのElastic IP)\(シェア名)」を入力します。

ユーザ名とパスワードを要求されるので、

Sambaユーザのユーザ名とパスワードを入力します。

接続出来ました。フォルダはまだ空です。

まず、EC2インスタンスから共有フォルダ配下にファイルを作成します。

1$ touch /home/kcsamba/samba/kcsamba-test1.txt

ローカルのWindows PCから共有フォルダ配下を見ると、ファイルが作成されたことを確認出来ます。

次は、ローカルのWindows PCから共有フォルダへファイルをコピーします。

ファイルをコピー出来ました。

ファイルをコピー出来ました。

EC2インスタンスから共有フォルダ配下を見ると、

ローカルからコピーされたファイルを確認出来ます。

1$ ls -lh /home/kcsamba/samba

MS Officeファイルの保護ビューと信頼済みサイトの設定

最後にTipsを1つご紹介します。

リモートホスト上のMS Officeファイルを開くと、保護ビューの表示になって、

編集するには「編集を有効にする」ボタンを押下する必要があります。

ファイルを開く度に「編集を有効にする」ボタンを押下するのが煩わしい場合は、リモートホスト(今回の場合はSambaサーバ)を信頼済みサイトとして設定することで、

ファイルを開くとともに編集が有効になります。

おわりに

以上、EC2インスタンス上にSambaを構築する手順をまとめました。

AWSでのファイルを共有も、今回のようにSambaを構築することで簡単に実現出来ます。AWSでのファイル共有方法には、他にもs3fsでS3のバケットをマウントするなどの方法があります。

最後までお読み頂きありがとうございました。

この記事を書いた人

aws-recipe-user