エアギャップ環境構築
方針
エアギャップ環境としての安全性を確保するため、本マニュアルでは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- Windowsの場合
- Macの場合
1. Etcher for Windows (x86|x64) (Installer)の右側の「Download」を選択します。
2. Windows 64-bit用のインストーラー(balenaEtcher-*.*.*.Setup.exe)をダウンロードします。
3. ダウンロードした.exeファイルを実行し、画面の指示に従ってインストールを完了させます。
- エクスプローラーを開き、左側メニューの「ダウンロード」を選択
balenaEtcher-*.*.*.Setup.exeファイルをダブルクリック
インストーラーの指示に従い進めてください
1. 利用しているMacのアーキテクチャに応じて、対応する Etcher for macOS の「Download」を選択します。
- Apple Silicon (M1/M2/M3 など) →
Etcher for macOS (arm64) - Intel Mac →
Etcher for macOS (x64)
2. ダウンロードした .dmg ファイル(例:
balenaEtcher-*.*.*-arm64.dmgbalenaEtcher-*.*.*-x64.dmg
)を開き、Etcher アイコンを アプリケーションフォルダへドラッグ&ドロップ してインストールします。
3. 初回起動時に警告が表示されても、上記手順で取得したファイルであれば問題ありません。
「開く」を選択して続行してください。
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の起動
- エアギャップマシンとして使用するPCに先ほど書き込んだUSBを挿入します。
- コンピューターを起動します。
- 表示されたメニューから「
Try or Install Ubuntu」を選択し、Enterキーを押下します。
その後は画面の指示に従って通常のUbuntu Desktopのインストールを進めてください。
Ubuntuが起動しない場合は、コンピューターを再起動してください。
その際Windowsでは主にF12、MacだとOptionまたはAltキーを押し続けてください。
3-1. インストーラーのセットアップ
※ 以降の画像は一例であり、環境によって表示が異なる場合があります。
-
言語を選択。
-
アクセシビリティ設定は選択せず、「
次」を選択します。 -
使用しているキーボードレイアウトを選択します。
-
「
今はインターネットに接続しない」を選択します。 -
「
Ubuntuをインストール」を選択します。 -
対話型インストール「
対話式インストール」を選択します。 -
「
規定の選択」を選択します。 -
不要なドライバやバイナリを最小化するため、サードパーティ製ソフトウェアはインストールしません。
3-2. ディスクのセットアップ
-
「
ディスクを削除してUbuntuをインストールする」を選択します。 -
ユーザー名とパスワードを設定します。
コンピューター名の末尾は自動で入力されます。
-
タイムゾーンの選択をします。
-
インストールの準備が完了したので確認し、「
インストール」を選択します。
3-3. インストールの完了
-
インストール完了画面を待機し、完了後「
今すぐ再起動」を選択します。 -
USBを取り外すため「
Enter」を押下してください。
「Enter」を押下後、すぐUSBを抜いてください。 -
ログイン画面でパスワードを入力します。
3-4. 追加設定
-
以下の画面が表示されたら右上の「
次へ」を選択します。 -
「
Skip for now」が選択されていることを確認し、右上の「スキップ」を選択します。 -
「
いいえ、システムデータを共有しません」を選択し、右上の「次へ」を選択します。 -
右上の「
完了」を選択します。 -
追加設定が完了しました。
3-5. ターミナルの設定
-
ターミナルの設定をするため左下のアイコンを選択し、「
端末」アイコンを選択します。 -
ターミナルを右クリックして、「
ダッシュボードにピン留め」を選択します。
3-6. 各種設定
- ブラケットモードの無効化設定をします。
echo 'set enable-bracketed-paste off' >> ~/.inputrc
- ターミナルを終了します。
exit
- ディスプレイ設定(任意)
好みに応じて、画面を右クリックして「Display Settings」を開き、「Scale」を「200%」に設定します。
3-7. 通信機能の完全無効化
エアギャップ・オフラインマシンとして運用するため、Wi-Fi / Bluetooth / 有線通信を含むすべてのネットワーク機能をOSレベルで無効化します。
※ 機内モードは再起動後に解除されるため使用しません。
NetworkManagerの完全停止
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
Bluetoothサービスの完全無効化
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth
sudo systemctl mask bluetooth
rfkillによる無線デバイス遮断
sudo rfkill block all
- 無線デバイス遮断の確認
rfkill list
Soft blocked: yes であることを確認します。
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
- 有効化
sudo systemctl daemon-reload
sudo systemctl enable rfkill-block.service
- システムを再起動します。
sudo reboot
状態確認
NetworkManager
nmcli general status
期待される表示例:
Error: NetworkManager is not running.
Wi-Fi/無線
nmcli radio
期待される表示例:
Error: NetworkManager is not running.
rfkill
rfkill list
Soft blocked: yesであることを確認します。
- Bluetooth サービスの状態確認
systemctl status bluetooth --no-pager
期待される表示例:
○ bluetooth.service Loaded: masked (Reason: Unit bluetooth.service is masked.) Active: inactive (dead)
以上の設定によりエアギャップ環境の構築が完了しました。