Skip to main content

エアギャップ環境構築

方針

"前提"

エアギャップ環境としての安全性を確保するため、本マニュアルではUSBブートにより Ubuntu 24.04 を起動し、既存OSを削除した単一OS構成でインストールする運用を前提とします。
Liveブート、デュアルブート、および仮想環境(VirtualBox等)は、永続性やホストOSへの依存が残るため、本マニュアルでは採用しません。

エアギャップマシンの構築手順

"注意点"

USBメディアの作成環境と、作成したUSBで実際にUbuntuを起動する環境は、まったく別の作業です。
これらを混同しないよう、次のように区別してください。

  • USB作成用PC
    Windows/macOS/Intel Mac/Apple Silicon Mac いずれでも可(ISOファイルの書き込み専用)
  • USB起動対象PC
    UbuntuをインストールするPC(既存OSが消去されても問題ないPC / x86_64)

1. Ubuntu Desktopイメージの取得

Ubuntu Desktop イメージファイルをダウンロードします。

*Ubuntu 24.04. (Noble Numbat)**
※ ダウンロード完了まで少しかかるのでしばらくお待ちください。

2. USBブートディスク作成(balenaEtcher)

前提条件

"ヒント"
  • 初期化しても問題ない容量**12GB**以上のUSBメモリデバイス
  • WindowsまたはmacOSが動作するPC
  • 「1. Ubuntu Desktopイメージの取得」で取得したISOイメージファイル

balenaEtcherの使用概要

balenaEtcherは、無料かつオープンソースのUSB書き込みツールであり、Ubuntuインストールに使用するブート可能なUSBメディアを安全かつ簡単に作成できます。

2-1. Etcherのインストール

balenaEtcherの公式サイトにアクセスし、インストーラーをダウンロードしてインストールします。

https://etcher.balena.io
"各OSでのインストール手順"

1. Etcher for Windows (x86|x64) (Installer)の右側の「Download」を選択します。
2. Windows 64-bit用のインストーラー(balenaEtcher-*.*.*.Setup.exe)をダウンロードします。
3. ダウンロードした.exeファイルを実行し、画面の指示に従ってインストールを完了させます。

  • エクスプローラーを開き、左側メニューの「ダウンロード」を選択
  • balenaEtcher-*.*.*.Setup.exeファイルをダブルクリック

インストーラーの指示に従い進めてください

2-2. USBメディアの作成

USBブートディスクを作成します。

"手順"

1. USBメモリをPCに挿入します。

USBポートに正しく接続されていることを確認してください。

2. Etcherを起動します。

3. Ubuntu ISO イメージを選択します。

Flash from file」を選択し、事前にダウンロードしたUbuntu ISO イメージファイルを選択します。

4. USBメモリを選択します。

Select target」を選択し、書き込み先となるUSBメモリを選択後、「Select 1」を選択します。

"誤ったディスクを選ばないよう注意してください。"

USB以外のストレージを選択するとデータが消去されます。

5. 「Flash」を実行します。
Flash!」を選択すると書き込み権限の付与が求められるのでPC(Windows/macOS)の管理者パスワードを入力し、「Ok」を選択します。

「“balenaEtcher.app” がリムーバブルボリューム上のファイルにアクセスしようとしています。」というダイアログが表示された場合は、「許可」を選択してください。
USBメモリの書き込み速度に依存しますが、処理の完了まで数分から15分程度を要します。

6. 書き込み完了後の確認

書き込みが完了するとEtcher上で「Flash Completed!」と表示されますので画面を閉じて終了し、USBを抜いてください。

"ヒント"

macOS環境では、USBメディアが「読み取れません」といった警告が表示される場合がありますが、これは正常ですのでUSBを取り外して問題ありません。

3. USBブートによるUbuntuの起動

  1. エアギャップマシンとして使用するPCに先ほど書き込んだUSBを挿入します。
  2. コンピューターを起動します。
  3. 表示されたメニューから「Try or Install Ubuntu」を選択し、Enterキーを押下します。
    その後は画面の指示に従って通常のUbuntu Desktopのインストールを進めてください。

Ubuntuが起動しない場合は、コンピューターを再起動してください。
その際Windowsでは主にF12、MacだとOptionまたはAltキーを押し続けてください。

3-1. インストーラーのセットアップ

※ 以降の画像は一例であり、環境によって表示が異なる場合があります。

  1. 言語を選択。

  2. アクセシビリティ設定は選択せず、「」を選択します。

  3. 使用しているキーボードレイアウトを選択します。

  4. 今はインターネットに接続しない」を選択します。

  5. Ubuntuをインストール」を選択します。

  6. 対話型インストール「対話式インストール」を選択します。

  7. 規定の選択」を選択します。

  8. 不要なドライバやバイナリを最小化するため、サードパーティ製ソフトウェアはインストールしません。

3-2. ディスクのセットアップ

  1. ディスクを削除してUbuntuをインストールする」を選択します。

  2. ユーザー名とパスワードを設定します。

コンピューター名の末尾は自動で入力されます。

  1. タイムゾーンの選択をします。

  2. インストールの準備が完了したので確認し、「インストール」を選択します。

3-3. インストールの完了

  1. インストール完了画面を待機し、完了後「今すぐ再起動」を選択します。

  2. USBを取り外すため「Enter」を押下してください。
    Enter」を押下後、すぐUSBを抜いてください。

  3. ログイン画面でパスワードを入力します。

3-4. 追加設定

  1. 以下の画面が表示されたら右上の「次へ」を選択します。

  2. Skip for now」が選択されていることを確認し、右上の「スキップ」を選択します。

  3. いいえ、システムデータを共有しません」を選択し、右上の「次へ」を選択します。

  4. 右上の「完了」を選択します。

  5. 追加設定が完了しました。

3-5. ターミナルの設定

  1. ターミナルの設定をするため左下のアイコンを選択し、「端末」アイコンを選択します。

  2. ターミナルを右クリックして、「ダッシュボードにピン留め」を選択します。

3-6. 各種設定

  1. ブラケットモードの無効化設定をします。
echo 'set enable-bracketed-paste off' >> ~/.inputrc
  1. ターミナルを終了します。
exit
  1. ディスプレイ設定(任意)
    好みに応じて、画面を右クリックして「Display Settings」を開き、「Scale」を「200%」に設定します。

3-7. 通信機能の完全無効化

エアギャップ・オフラインマシンとして運用するため、Wi-Fi / Bluetooth / 有線通信を含むすべてのネットワーク機能をOSレベルで無効化します。
※ 機内モードは再起動後に解除されるため使用しません。

  1. NetworkManagerの完全停止
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
  1. Bluetooth サービスの完全無効化
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth
sudo systemctl mask bluetooth
  1. rfkill による無線デバイス遮断
sudo rfkill block all
  1. 無線デバイス遮断の確認
rfkill list

Soft blocked: yes であることを確認します。  

  1. rfkill の永続化
sudo tee /etc/systemd/system/rfkill-block.service > /dev/null << 'EOF'
[Unit]
Description=Block all radios (air-gapped)
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill block all

[Install]
WantedBy=multi-user.target
EOF
  1. 有効化
sudo systemctl daemon-reload
sudo systemctl enable rfkill-block.service
  1. システムを再起動します。
sudo reboot

状態確認

  1. NetworkManager
nmcli general status

期待される表示例:

Error: NetworkManager is not running.

  1. Wi-Fi / 無線
nmcli radio

期待される表示例:

Error: NetworkManager is not running.

  1. rfkill
rfkill list

Soft blocked: yes であることを確認します。

  1. Bluetooth サービスの状態確認
systemctl status bluetooth --no-pager

期待される表示例:

○ bluetooth.service Loaded: masked (Reason: Unit bluetooth.service is masked.) Active: inactive (dead)

以上の設定によりエアギャップ環境の構築が完了しました。