見出し画像

Samba 環境構築 1/2

先週より LPIC 202 のために Amazon Linux 2 と Windows Server 2022 を使って、Samba 環境を試しています。
少し長くなってしまったので、2 回に分けて投稿します。本投稿は、前半パートとしてネットワーク環境の構築をまとめました。

Samba の章を勉強していくにあたり、使い勝手も含めて、『Samba サーバーに GUI で接続して確認した方が分かりやすい。』と感じたので、Windows 環境から接続してみることにしました。

考えたのが以下の構成です。Windows Server をローカル PC と見立てています。

構成図

box や Google Drive のようなモダンはファイルストレージは、簡単に外部に共有できるので、少し古風な考えですが『社内ファイルサーバーは外部からアクセスさせない。』という前提の元、Samba サーバーをプライベートサブネットに起動しました。

Samba を yum インストールするためには、インターネット接続が必要です。
そこで、パブリックに起動した Windows サーバーを踏み台にして NAT することにしました。

EC2 インスタンス起動

Samba サーバー

Samba サーバーは Amazon Linux 2 にしました。

AMI 名: Amazon Linux 2 Kernel 5.10 AMI 2.0.20220426.0 x86_64 HVM gp2
AMI ID: ami-02c3627b04781eada
インスタンスタイプ: t3.micro
キーペア: あり
サブネット: プライベートサブネット
セキュリティグループ: 
インバウンド: TPC 22 (SSH) / UDP 137 - 138 / TPC 139 (SMB) / TCP 445 (CIFS)
アウトバウンド: すべてのトラフィック
ストレージ: gp3 / 3000 IOPS / 125Mbps
IAM インスタンスプロフィール
クレジット仕様: スタンダード

こんな感じで VPC をまるっと許可。アウトバウンドは全開放。

踏み台 サーバー

踏み台 サーバーは Windows Server 2022 にしました。

AMI 名: Windows_Server-2022-Japanese-Full-Base-2022.05.11
AMI ID: ami-07a341fa87ab8deab
インスタンスタイプ: t3a.medium
キーペア: あり
サブネット: パブリックサブネット
セキュリティグループ: 画像参照
ストレージ: gp3 / 3000 IOPS / 125Mbps
IAM インスタンスプロフィール: AmazonSSMManagedInstanceCore を含むロール
クレジット仕様: スタンダード

セキュリティグループは予め 2 つ作りました。まず、インスタンス作成時にアタッチするネットワークインターフェイス (こちらをプライマリとします) 用のセキュリティグループは、AWS Systems Manager (SSM) 経由で接続するためインバウンドを閉塞しました。

こちらは、あとでアタッチするセカンダリネットワークインターフェイスにアタッチするセキュリティグループです。インバウンドは、80 と 443 のみを開放しました。

こちらもプライベートサブネットをまるっと許可

パブリック IP アドレスは有効でも無効でもどちらでも大丈夫なのですが、Elastic IP アドレスを付ける必要があります。
これは、この後ネットワークインターフェイスをもう一つアタッチした後、インスタンスを停止/起動するとパブリック IP アドレスが外れてしまうからです。

日本語の Windows イメージは、以下のキーワードあたりを検索ボックスに入力するとコミュニティ AMI に候補が表示されます。

  • microsoft

  • windows

  • japanese

  • full base

毎月パッチが当たったイメージがリリースされるので、できる限り最新のものが良いでしょう。

接続 - Windows Server

Fleet Manager

Windows Server は 2022 以降であれば、AWS Systems Manager (SSM) のフリートマネージャーを使って AWS マネジメントコンソールから RDP 接続できます。

Systems Manager > フリートマネージャーと進み、対象を選択して [ノードアクションから] > [リモートデスクトップ (RDP) との接続] をクリックします。

認証情報を入力して [Connect] ボタンをクリックすればブラウザ上にリモートデスクトップ接続が描画されます。

キーペアを使った接続であれば、パスワード入力せずに接続できます。

Session Manager

別途 AWS CLI が利用できるなら、AWS Systems Manager (SSM) のセッションマネージャーのポート転送でローカルからセキュアに RDP 接続できます。
こちらを利用するには、ローカルにプラグインのインストールが必要です。

プラグインをインストールしたら、こんな感じでインスタンス ID を指定してポート転送します。

~ % aws ssm start-session \
--target i-0ce93a8233acaf59d \
--document-name AWS-StartPortForwardingSession \
--parameters "portNumber=3389,localPortNumber=10000" \
--region ap-northeast-1 \
--profile test-acount-usr1

Starting session with SessionId: xxxxxx
Port 10000 opened for sessionId xxxxxx.
Waiting for connections...

上記の場合だと、10000 ポートを開放しているので、以下のように localhost:10000 で RDP 接続できます。


接続 - Samba

PowerShell から SSH 接続

Windows Server に RDP 接続したら、Samba サーバーに SSH 接続しました。
あらかじめキーペアをサーバー上にコピーしておき、PowerShell を起動して ssh コマンドを投入したら接続できました。

ただ、この状態だとインターネットに接続していないので yum が使えません。curl しても応答が返って来ません。

NAT 設定

セカンダリーネットワークインターフェイスをアタッチ

NAT インスタンス化するため、Windows Server にセカンダリーネットワークインターフェイスをアタッチしました。

EC2 コンソールからネットワークインターフェイスを開き、[ネットワークインターフェイスを作成] ボタンをクリックし、ネットワークインターフェイスを作成しました。

このネットワークインターフェースはプライベートサブネットに作成します。冒頭で構成をこのような形で記載しましたが、正確に描くと

こんな感じでプライマリネットワークインターフェイスを片足突っ込んだ状態にします。

セキュリティグループは、インバウンドルールで、Samba サーバーにアタッチしたルールからの 80 と 443 ポートを許可します。
以下のような形です。

ネットワークインターフェイスができたら、Windows インスタンスを選択して、アクションからネットワーキング > ネットワークインターフェイスをアタッチをクリックして、関連付けます。

OS の設定

ネットワーク接続

ネットワークインターフェイスがアタッチできたら、Windows Server に RDP 接続して、ネットワーク接続を確認します。

ネットワーク接続が開いたら、こんな感じでプライマリネットワークインターフェイス (パブリック IP アドレスがアタッチされている方です。) を 「External」 としておきます。
もう一つのセカンダリネットワークインターフェイスを 「Internal」としておきます。

また、片方の NIC がプライベートサブネットにあるため、インターネットに接続できたり出来なかったりします。これを防ぐため、メトリックで「External」の優先度を上げておきます。

「External」のプロパティからインターネットプロトコルバージョン 4 を選択して「詳細設定」からメトリックを 1 にします。

また、「Internal」のプロパティからインターネットプロトコルバージョン 4 を選択して「詳細設定」からメトリックを 1 より大きな値にしておきます。(ここでは 2)。これで、優先順位が高いプライマリからインターネットに抜けるようになります。

ルーティングとリモートアクセスサービス

NAT するための機能である「ルーティングとリモートアクセスサービス」をインストールしていきます。
サーバーマネージャーを起動して「管理」から「機能と役割の追加」をクリックします。

「次へ」をクリックします。

「次へ」をクリックします。

「次へ」をクリックします。

リモートアクセスのチェックボックスにチェックを入れて、次へをクリックします。

「機能の選択」は何も変更せず「次へ」をクリックします。

「次へ」をクリック

役割サービスの選択は「ルーティング」にチェックを入れると、

メッセージが表示されるので、[機能の追加] をクリックします。

すると、DirectAccess および VPN (RAS) にもチェックが入ります。
「次へ」をクリックします。

「次へ」をクリックします。

「インストール」をクリックします。


インストールが完了したら、WIndows 管理ツールを開くと、

「ルーティングとリモートアクセスサービス」が追加されていました。

赤い停止アイコンがついたアイコンを右クリックして、「ルーティングとリモートアクセスの構成と有効化」を選択しました。

2 つ目のNAT を選択して「次へ」をクリック、

External の方を選択して「次へ」

「完了」をクリックすると、少ししてから有効化されました。

以下のように、IPv4 に NAT が増えていたら成功です。

ネットワーク送信元 / 送信先のチェックを無効

NAT インスタンスと同様、ネットワーク送信元 / 送信先のチェックを無効にする必要があります。
Windows Server のインスタンス を選択して、アクションから「ソース/宛先チェックを変更」を選択します。

「停止」のチェックボックスにチェックを入れて「保存」ボタンをクリックしました。

AWS のルートテーブル

最後にプライベートサブネットのルートテーブルで「0.0.0.0/0」を Windows Server のインスタンスのセカンダリーネットワークインターフェイスに向けました。

curl も返るようになりました。

[ec2-user@ip-172-29-2-230 ~]$ curl http://google.co.jp
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/">here</A>.
</BODY></HTML>
[ec2-user@ip-172-29-2-230 ~]$

次回は、Samba の設定を投稿します。


この記事が気に入ったらサポートをしてみませんか?