coiai Logo

Ubuntu Samba ファイルサーバーを外からアクセスできるようにする

❓ これは何?

前回の記事 では内部ネットワークからファイルサーバーにアクセスする方法を記事にしました。

今回は外出先で外部のネットワークからファイルサーバーにアクセスするまでの手順をメモにします✍️


🪴 環境

サーバー側

  • Distributor ID: Ubuntu
  • Description: Ubuntu 24.04 LTS
  • Release: 24.04
  • Codename: noble
  • samba

クライアント側 MacBook Air

  • sonoma 14.5(23F79)
  • Apple M1
  • 16GB

🖐️ 手順

Samba の IPv6 設定

ネットワークの確認

ネットワークインターフェース名を確認します。
通常、eth0、ens33などの名前が使われます。

ip addr

/etc/netplan/01-network-manager-all.yaml の中身は標準では次のとおりです。

# Let NetworkMnager manage all devices on this system
network:
  version: 1
  renderer: NetworkManager

後述の理由で IPv4 ではなく、IPv6 での公開を目指します。
これであればルーター側の設定がDS-Liteでも問題なくできるはずです。

smb.conf の設定


SambaがIPv6でリスンするように設定します。
/etc/samba/smb.confの[global]セクションに次の行を追加します

interface = "lo" "enp3s0" "wlpws0"
   bind interfaces only = yes
   smb ports = 445

🔥 ファイヤウォールの設定

Sambaが利用する必要なポートをファイアウォールルールに追加します。

samba用ポートを全開放したい場合
sudo ufw allow samba

Sambaでは(137, 138, 139, 445)のポートを使用します。

外部のネットワークに接続する場合は 445 のみの解放の方がセキュリティリスクが低くなるかと思います。

sudo ufw reload
ファイアウォールの設定を再読み込みして、追加したルールを適用します。

sudo ufw allow from any to any port 445 proto tcp
sudo ufw reload

↑のように書くとTCP用の445のみの開放になります。

🐏 ufw とは?


udo ufw reload は、Ubuntuのファイアウォール(UFW: Uncomplicated Firewall)に関連するコマンドです。

ufw allow では

  • TCP/UDP 137 (NetBIOS Name Service)
  • TCP/UDP 138 (NetBIOS Datagram Service)
  • TCP 139 (NetBIOS Session Service)
  • \TCP 445 (Microsoft-DS Active Directory, Windows shares)

が解放されます。

ファイヤウォールの確認

ufw status で解放されているポートの確認ができます。

sudo ufw status

間違って開放した場合は次のコマンドで削除しておきましょう。

sudo ufw delete allow HOGE

動的DNSの利用

サーバー側のIPアドレスが変更されても、接続を確立するために、
https://noip.com を使ってDDNSを使用することにしました。

  • noip.com でのドメインの作成(sample.ddns.net など)
  • apt install ddclient と設定

が出来ていることを前提に次に進みます。
出来ているかは以下のコマンドで確認してみてください。

sudo systemctl status ddclient

出来ていない方は、次の記事を参照してください。

https://coiai.boy.jp/1661/

VPN の利用

Easy-RSA の設定が古い情報だとうまくいかないので、以下を参考にしました。https://community.openvpn.net/openvpn/wiki/EasyRSA3-OpenVPN-Howto

L2TP/IPsecやOpenVPNを設定し、VPN経由で内部ネットワークにアクセスします。
これにより、DS-Liteの制約を回避できます。

sudo apt intall openvpn easy-rsa -y

PIK ディレクトリの作成と初期化

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki

make-cadir は easy-rsa の機能でOpneVPNの設定を含んだディレクトリを作成できるコマンドです。

CAのビルド
このコマンドを実行すると、
Common Name(eg: your user, host, or server name)[server]:
と聞かれるので、名前の入力をしましょう。

./easyrsa build-ca nopass

サーバーの証明書の作成

./easyrsa gen-req server nopass

サーバーの鍵の作成

./easyrsa sign-req server server

DHパラメータの作成

./easyrsa gen-dh

クライアント用の証明書と鍵を作成します。
クライアント名は任意の名前を指定します(例:client1)。

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

生成した証明書と鍵をOpenVPNのディレクトリにコピーします。

sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/
sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/
sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/
sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/
sudo cp ~/openvpn-ca/pki/issued/client1.crt /etc/openvpn/
sudo cp ~/openvpn-ca/pki/private/client1.key /etc/openvpn/


/etc/openvpn/server.confファイルを作成し、
以下の内容を追加します。

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3

OpenVPNサービスを起動し、システム起動時に自動的に開始するように設定します。

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

クライアント用の設定ファイル(.ovpn)を作成します。例えば、client1.ovpnファイルを以下の内容で作成します。

remote の hoge.ddns.net は動的IPの https://noip.com で作成したDNSです。

クライアント設定ファイルと共に、
ca.crt、client1.crt、client1.key
をUSBメモリなどを使ってクライアントデバイス(私の場合はMacBook)にコピーします。

client
dev tun
proto udp
remote hoge.ddns.net 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
verb 3


ファイアウォール設定でOpenVPNのポートを開放します。

sudo ufw allow 1194/udp

クライアント側でやること

私はMacBook Air を使っているので tunnelblick を使用しました。

brew install --cask tunnelblick

Tunnnelblick は先ほどクライアント側(MacBook)に移してきた hoge.ovpn ファイルをドラッグ&ドロップしたらOKです。

そうすると、個人用かユーザー全体かを聞かれると思うのですが、
今回の用途では個人用でOKです。


試したけどやらなかったこと

ルーター側の設定

私が使っているルーターは TP-Link Archer AX10 です。
このルーターでの設定を紹介します。

私と同様TP-Linkをお使いの場合は https://tplinkwifi.net/ にアクセスして管理画面に入りましょう。

まず、DS-Lite, MAP-E, V6 プラス の設定ではポートの設定ができないので、
これ以外を選択する必要があります。(ソース:https://www.tp-link.com/jp/support/faq/2799/
そのためPPPoE方式にする必要があります。
それぞれの方式の違いについての記事はこちら

しかし、普段使いしているルーターと同じ場合 PPPoE に切り替えるとDS-Liteに比べ遅く感じてしまいます。
結局IPv4 での接続はやめることにしました。


🥦 まとめ

そしてブロッコリーも食べた方がいい

投稿日: 2024年7月22日
カテゴリ: Linux
タグ: mac os, NAS, Ubuntu, サーバー
coiai

coiai

この記事もおすすめ

ポッドキャストを取った後Audiotionですべきこと

ポッドキャストを取った後Audiotionですべきこと

この記事はポッドキャストなどの音声コンテンツを取った後にAuditionで編集する方法について解説しています。 環境 やること 基本的に以下の4つの工程をすると、かなりクオリティアップにつながります! ノイズリダクション 無音部分を選択します。開始地点をi, 終わりをo キーを押すと選択できます。選択できたらエフェクト→ノイズリダクション/リストア→ノイズプリントをキャプチャを押します。 続いて、全体を選択します。cmd, a で全選択になります。エフェクト→ノイズリダクション/リストア→ノイズリダクションを選択します。 以下のようなパネルが表示されうので、ノイズのみをきたりして、削減ちを調整して、良い感じになったら適応ボタンを押します。 シングルバンドコンプレッサ 左のパネルのエフェクトトラックから▶️ボタンを押し、振幅と圧縮→シングルバンドコンプレッッサを選択します。 選択すると下記のようなパネルが開きます。それぞれ、 といった意味があります。設定値は下記画像のようにしています。 設定がめんどくさい場合はプリセットからラジオレベラーを選択してください。 EQ(声をクリアにする) パラメトリックイコライザーを使用します。エフェクト→フィルターとイコライザ→パラメトリックイコライザーを選択します。 私の場合は下記のように設定しています。 無音カット エフェクト→診断→無音をカットをすると左パネルに診断が表示されます。 効果を無音を削除、プリセットをポッドキャストにするとちょうどよくなると思います。設定したら、スキャンボタンを教えて、全て削除で無音がカットされます。 かなりカットされてしまうので、短いCM等に使うのはありかなという感じです。 参考 Adobe 無音カット https://helpx.adobe.com/jp/audition/using/strip-silence.html

MetaStore コンテンツ型のアプリ内課金を実装する

MetaStore コンテンツ型のアプリ内課金を実装する

MetaStoreのコンテンツ型のアプリ内課金を実装する方法についてです。 コンテンツを追加する 右上のアドオンを作成ボタンを押す。 アドオンタイプ 一度購入したら、それ以降は購入しない設定は耐久型を選びます。アプリ内のコインや石など、消耗品は消耗品を選びます。 価格設定 価格設定タブに進むとコンテンツの価格を設定できます。有料のコンテンツをまだ登録したことない場合は支払い情報の設定が住んでいないはずなので、支払い情報の設定が先に必要になります。 DUC データユーズチェックアップ 左メニューの必要条件の中のデータ使用状況の確認を開きます。 例えばIAPでユーザー認識が必要な場合は User ID, ユーザー名が必要な場合は User Profile の追加ボタンを押します。 何に使うかの用途と説明が求められるのでそこに使用用途を記述してください。 ここまで出来たらリクエストを送信ボタンを押します。 このようにデータの取り扱いについて質問されるので答えてください。英語で書いてあるので、なんとなく何が書いてあるか順番にさらっと説明します。 データの使用状況の確認 左サイドバーから必要条件⇒データ使用状況の確認をクリックします。 これが設定されていないと以下の文言のポップアップが表示されます。 読んでくださった方へ 株式会社coiaiでは、Quest向け、PCVR、Vision OS向けの開発も得意としています。新規開発ももちろん、開発途中でメンバーが必要といった場合でも請け負えますので、ご相談ください!

この記事を書いた会社

株式会社coiaiは、「想像できることを美しく実現」を掲げ、XR・Web・アプリ・システム開発およびDX支援を行う会社です。 創業2022年、東京都練馬区に本社を置き、要件のヒアリングからPoC(概念実証)、本番運用まで一貫して伴走します。 まずはお気軽にご相談ください。

商号株式会社 coiai創業2022年1月設立2025年1月23日資本金1,500,000円(設立時点)本社所在地東京都練馬区関町北 3-6-9代表者代表取締役 竹村 啓佑 / 代表取締役 服部 陽良

主なご相談内容

会社概要・役員紹介を見る

詳しい会社情報は会社概要ページでご覧いただけます。

資料請求・無料相談

導入要件のヒアリングからPoC、本番運用まで伴走します。まずはお気軽にご相談ください。

お問い合わせの前に 個人情報保護方針 をご確認ください。