■ 中古Firewallを調教したら最強ルータになった件 ～Fortigate52EのOpenWrt化～

![Network_banner3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/4b9f7070-2e81-48e0-afa7-1c8ed222d30e.png)
<br>


皆さまこんにちは。
OpenWrt沼にハマってます　零壱(ゼロイチ)テクトです。

<img width="200" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/ec08f703-4a5c-46d9-8c78-a7527b229e57.png">

以前から、OpenWrtをインストールしたルータに興味があったのですが
特に近年話題のFortigate 50Eは、ベースのスペックが高く
ゲーミングルータに匹敵する有望性があり、使ってみたいと思っていました。

今回、知人経由でFortigate 52Eを入手したので
そちらをOpenWrt化していきたいと思います。

　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/35194b00-d06b-4a43-bc9e-556ac3017c39.png">

OpenWrtの大御所であらせられる 大破様の手順が完璧すぎて
大差はなく、先人の100番煎じぐらいなのですけど
Fortigate50E以外は、ちょっと癖があるため
経験談を元に備忘として残していきます。

あと純粋にOpenWrtルータに触れて快適さに感動しました。

# １．準備
 　**・Fortigate 52E本体**（以後、FG52E）
 　**・コンソールケーブル**（僕はUSB接続のを使ってます）
 　**・LANケーブル**
　 **・PC [有線LAN付き]**（Win11のノートPCを使いました）
　　　**<font color="#6666FF">● PCでやっておくコト</font>**
　　　**・Windowsファイアウォールの解除**（TFTPブロックしたりするので全解除で）
　　　**・有線LANのIPアドレスを設定**（「192.168.1.168」/サブネット「255.255.255.0」）
　　　　※ 後述にてTFTPサーバのアドレスはFG側で指定のアドレスにする必要があるため

　　　**<font color="#99CC33">● PCにインストールしておくモノ</font>**
　　　**・TeraTerm**（Terminalアプリなら何でもOK）
　　　**・Serva**（TFTPサーバなら何でもOK。このソフトが一番簡単と思われ）
　　　　※Terminal/TFTPサーバの使い方については割愛。
　　　**<font color="#FF3366">● PCにダウンロードしておくモノ</font>**
　　　・KERNEL：　**openwrt-24.10.1-mvebu-cortexa9-fortinet_fg-52e-initramfs-kernel.bin**
　　　・SYSUPGRADE：　**openwrt-24.10.1-mvebu-cortexa9-fortinet_fg-52e-squashfs-sysupgrade.bin**

**▼OpenWrtイメージ：DLサイト**

https://firmware-selector.openwrt.org/?target=mvebu%2Fcortexa9&id=fortinet_fg-52e

:::note info
※必ず使用機種と同じものにしましょう。FG52Eのイメージが見つからず
　FG50Eで代用したところ、ストレージが認識しなかったので揃えた方が良いです。
:::
:::note info
※2025年5月現在。最新の安定版(current stable version)は「**24.10.1**」です。
　「**23.05.x**」などの古い安定版やSnapshotが良い人は、DLサイトで選び直してDLしてください。

※SnapShotは、OpenWrtをブラウザから操作可能にする「Luci」が入っていないため注意。
　この記事では、導入当初からLuciが入っている事前提でお話しています。
:::

# ２．OpenWrt導入作業
　・FG52Eのコンソールポートに、PCをコンソールケーブルで繋ぐ（電源はまだ入れない）!
　・PC側でTeraTermを起動して、接続ポートをシリアルを選択
　・FG52Eの電源を入れる
　・起動画面がCLIで表示されます。
　　起動の途中で
「**`Please wait for OS to boot, or press any key to display configuration menu`**」
　　と表示されるので、次に進む数秒以内に、適当なキー(SpaceでもEnterでも)を押す

<font size="-1" color="grey">
  ※CLIスクショミスのため掲載がFG90Dなのは許してください。表示は同じです※
</font>

　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/47ab2f5e-6fa5-4f7f-b7f1-431307c9ca58.png">

　・ちゃんと反応したら、Fortigateの設定メニューが表示される。
 
　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/6b5f3653-c321-4d10-bc36-e5bbd64bbda5.png">

　・メニューから「R」キーを押して、「**`[R]: Review TFTP parameters.`**」を選択
　・FTP接続に必要な情報が表示される。

　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/418ec6b9-6567-4b16-b416-b9bacc971176.png">
  
　　・「`Image download port`」が、PCと有線で接続するポート
　　・「`TFTP server IP address`」が、TFTPサーバに設定するIPアドレス
　　　（FG50Eシリーズは大体192.168.1.168）
　　・この時、IPアドレスなどが違っていたら、PC側の設定を変更
　　・「`Firmware file name`」は、TFTPに置くイメージファイル名
　　　（Fortigateは、ほぼ「`image.out`」で固定です）
　・FG52EのFTP接続ポート（ここではWAN1）とPCを有線のLANケーブルで接続
　・PCで、カーネルイメージ「**`openwrt～略～fg-52e-initramfs-kernel.bin`**」を
　　「**`image.out`**」にリネームする。
　・PCで、TFTPサーバ（Serva）の設定で「`image.out`」を配置
　・PCで、TFTPサーバ（Serva）を起動
　・PCで、再度TeraTerm画面にて「T」キーを押して
　　「**`[T]: Initiate TFTP firmware transfer.`**」を選択
　・FG52Eが、「接続ポート：WAN1」の「192.168.1.168」のTFTPサーバから
　　「image.out」をダウンロード開始されます。
　　※開始されない場合、PCのTFTPサーバの設定間違いか、FWが解除されているか確認しましょう
　・ダウンロードが完了すると
　　「**`Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?`**」
　　のメッセージが表示される。
　・「R」キーを押す。（イメージから起動する）
　・イメージからOpenWrtが起動。TeraTermにその様子が表示されます。
　・完全に起動すると、Openwrtのロゴ、が表示されます。

　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/5d028b99-0f36-4f18-91b6-a3ba6d81e486.png">


# ３．OpenWrt起動後作業
　・FG52EのWAN1につなげたLANケーブルをLAN1に差し替える。
　・PCで、ブラウザを起動
　・ブラウザのURL欄に「**192.168.1.1**」を入力してEnter
　・OpenWrtのログイン画面が表示される。
　　（LuciというOpenWrtをブラウザで設定できるアプリのおかげで表示されます）

　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/2bf5b7fd-5301-404b-af63-6ce02fa066b8.png">
  
　・初期起動時は、`Username`に「**root**」が入っている事を確認
　　`Password`は**空欄**で、「`Log in`」ボタンを押す
　・メニュー画面から`「System」→「Backup / Flash Firmware」`を選択

　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/24c5eb5b-c3e5-4cd1-a599-01fe76eb8ac1.png">

　・画面下部の「`Flash new firmware image`」項目から
　　「`Flash image...`」ボタンを押す。

　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/1e17b51f-e258-465f-aef9-403a19e860ba.png">

　・「`Uploading file...`」から「Browse」ボタンを押して

　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/29170d5b-0e97-4df4-8efd-df4065ab518e.png">
 
　　「**`openwrt-～略～fg-52e-squashfs-sysupgrade.bin`**」を選ぶ。
　　（Sysupgradeのファイル。Kernelでは無いので注意）
　・「`Upload`」ボタンを押す。アップロード後、再起動されます。
　　（「`Continue`」ボタンが出た場合は、ボタンを押します）
　・無事、ブラウザでLuciにアクセスできたならFG52EのOpenWrt化完了です。

:::note warn
※この後、OpenWrtではなく、Fortigateで起動してしまった場合
　コンソール接続のまま、最初のメニュー画面に移行後、
　「B」キーで「**`[B]: Boot with backup firmware and set as default.`**」
　を選択すると、OpenWrtの方で再起動がかかるようです。
 
※説明を読む限り、デフォルトとバックアップと2つのファームを持っていて
　今起動している方とは別のファームをデフォルトに設定するみたいですね。
:::

**最後まで読んで頂きありがとうございます。**

　Fortigate 52EのOpenWrt化はこれで完了です。
　もう弄りたくてたまらない人や、上級者の方はこれで終わりです。

　以降は、僕含めた初心者や入門者にお勧めの設定やお話です。

# ４．基本設定
　僕はLuciによるブラウザから全て設定しているので、
　以下設定についてはそれを前提でお願いします。
　最低限やった方が良いと思った設定になります。

#### 　▼ パスワード設定
　　初期設定ではパスワードが設定されていないので、必ず設定しましょう。
　　・`メニュー→「System/システム」タブ→「Administration」`を選択

　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/3bf7f9a4-332c-4267-9d31-8406e1f76ea9.png">

　　・「`Router Password`」タブを選択（デフォルト）

　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/7c930237-204a-4f0b-9a34-4167d1fb9529.png">

　　・「`Password`」「`Confirmation`」に設定したいパスワードを入力
　　・右下の「`Save`」ボタンを押す。

#### 　▼ 日本語化
　　メニュー画面のフォントは好みが分かれますが、
　　日本語化するにはソフトウェアのインストールが必要です。
　　・`メニュー→「System」タブ→「Software」`を選択

　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/0f2631b1-ec67-4166-8b5e-05606272457c.png">

　　・「`Software`」画面が表示される
  
　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/30969535-4d87-4e79-b693-1feaae1e781d.png">

　　・「`Actions`」項目の「Update lists」ボタンを押す
　　・一旦、OpenWrt上のアプリリストが全更新されます
　　・その後、「`Filter`」のテキストボックスにて検索ワードを入力
　　・「`luci-i18n-base-ja`」を入れるか、「`Japanaese`」とか入れて
　　　フィルタされたアプリリストから探せます。
　　・入力後、画面下部から「`luci-i18n-base-ja`」を探して
　　　同項目の右側「`Install`」ボタンを押す

　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/d1d1a42d-79a4-4385-a485-b3dfea0d21c9.png">

　　・「`luci-i18n-base-ja`」以外の モジュールやらライブラリやら
　　　インストール候補が表示されるので、再度「Install」ボタンを押す
　　・バージョンによっては、この時点で日本語化されます。
　　・されない場合は、`メニュー→「System」タブ→「System」`を選択

　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/b1b48b4f-f196-458d-8153-833a5b1e03a6.png">
  
　　・「`Language and Style`」タブを選択
　　・「`Language`」項目を、`「Auto」→「日本語」`に変更
  
　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/6be57bbc-e055-466b-a780-d2ad1b02352e.png">

　　・画面右下の「`Save & Apply`」ボタンを押したら反映されます。

:::note info
※この言語変更画面に「Design/デザイン」という項目がありますが
　これはスキンのようなもので、ソフトウェアから
　テーマをインストールする事で変える事が可能です。
:::

#### 　▼ 時間設定/NTP設定
　　OpenWrtのデフォルトでも問題ないですが
　　個人的に日本国内のNTPサーバも入れています。
　　まずはUTCの9時間ズレを直します。
   
　　・`メニュー→「System」タブ→「System」`を選択

　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/b1b48b4f-f196-458d-8153-833a5b1e03a6.png">

　　・「`一般設定/General Settings`」タブを選択
　　・「`Timezone/タイムゾーン`」で「`Asia/Tokyo`」を選択

　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/24857be8-f649-4855-8bbc-9799a1082c96.png">

　　・画面右下の「`保存＆適用 / Save & Apply`」ボタンを押したら反映されます。
　　・同じ画面の「`時刻同期/Time Synchronization`」タブを選択
　　・更に下部の「`NTP servers/NTPサーバー候補`」にて以下2つを追記
　　　「**ntp.nict.jp**」
　　　「**ntp.jst.mfeed.ad.jp**」

　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/21300a1a-00f5-4ca6-9a56-80d24e10ec26.png">
   
　　・画面右下の「`保存＆適用 / Save & Apply`」ボタンを押したら反映されます。

:::note info
※一番上から取得していくので
　僕は、上からこんな感じに設定しました。
　「ntp.nict.jp」
　「ntp.jst.mfeed.ad.jp」 
　「0.openwrt.pool.ntp.org」
　「1.openwrt.pool.ntp.org」
　別に2と3を削る必要はないのですが、
　何個も設定して意味あるものではないので好みです。
:::

# ５．応用設定
　　僕が便利だと思って入れたアプリや、設定についてです。
　　多くはゲーミングルータで出来た事を、再現している形になります。

#### 　● IPアドレス/ホスト名
　　特定のMACアドレスに対して、ルータ側から指定して
  　「**IPアドレス**」「**ホスト名**」を払い出す事ができます。
　　僕はPCやNW機器側の設定ではなく、OpenWrt側からIP/ホスト名を払い出しています。

　　本体側弄らなくても好きなIPアドレスをルータ側だけ操作できる他
　　自身でホスト名が設定できない機器類含めて設定できるので
　　ルータ上のトラフィックグラフやIPの払い出しなど
　　どの機器がどんな通信・ログを出しているかが一目瞭然となり
　　とても便利になります。

　・`メニュー→「DHCPおよびDNS」タブ→「静的リース」タブ`を選択

　　<img width="500" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/4ed3f2a2-1094-4aaf-8469-1e572c62b508.png">

　・静的リース画面です。
 
　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/dc185ca4-ab05-4312-9340-39a7d59b84ee.png">

 ・「`MACアドレス`」
　　　対象の機器のMACアドレスを探します。
　　　対象の機器に掲載の情報やラベルを参照して探します。

 ・「`ホスト名`」
　　　設定したいなら、ホスト名を入力。
　　　空にしたら設定されません。
　　　空の状態で、機器側でホスト名が設定されていたらそちらが表示されます。

 ・「`IPアドレス`」
　　　設定したいなら、IPアドレスを入力。
　　　DHCPの範囲に被らないよう注意。

 ・「`リース期間`」
　　　IPアドレス/ホスト名が1回の払い出される期間
　　　リースが切れると消えますが、再接続すると再度払い出されます。
　　　「12h」(12時間)や「7d」(一週間)といった設定を選択するか
　　　手動で入力できます。選択の中には「`Infinity`」もあります。

#### 　● Terminalソフト「ttyd」
　　このソフトウェアは、Luciからコマンド画面が触れるので
　　Luciで設定できないアプリなどがあった場合
　　コンソールを繋がなくても触れるのでとても便利でした。

　　「`Software`」のFilterから「**ttyd**」で検索→インストール

#### 　● VPNソフトTailscale
　　最新のVPNソフトかつ、超便利で超簡単で超お勧めパッケージ。
　　ルータ間でVPNしても良いし、ルータとスマホ、ルータとPCと
　　VPNを張るのにとにかく便利かつ、設定が簡単過ぎます。
　　今回、OpenWrtルータにして最も良かったと感じたソフトです。

　　「`Software`」のFilterから「**tailscale**」で検索→インストール

  　※容量が50MBくらい必要で、何もしていないOpenWrt機はしんどいです。
  　　以下のExtroot化とセットで必要になるかも

#### 　● Root化/Extroot化
　　USBメモリや外部ストレージをあたかもメインストレージとして
　　マウントし直す事で、本体の使えるストレージを増やす方法
　　結構手間がかかるので、ここでは割愛
　　FG52Eは、内部に32GBのSSDを2枚持っているので
　　このSSDをRoot化したら、USB端子を別の事に使い回せます。

　　コマンドによるストレージ容量確認は以下の通り。
　　<img width="400" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/e612d0a1-2f9a-48eb-94ff-104c11e39f14.png">

　※ 2025/05/20追記　※
　■Wi-Fiマニュアル様：OpenWrtでdockerを動かす！WXR-2533DHPをExtRoot化(容量拡張)しdockerをインストールする
　　https://wifi-manual.net/run-docker-on-openwrt/

　　こちらのサイト様のExtroot化記事が、ほぼ全て同じ事をしており。
　　Extroot化の記事を書いたら、丸被りしそうでしたので
　　こちらをご参照するのをお勧めします。

# 備考/所感
・元々ゲーミングルータを使っていたのですが速度が全然違いました。
　2Gbps回線を契約していますが、元のゲーミングルータでは700Mbpsぐらいだったのに
　OpenWrt FG52Eでは、900Mbpsを超えるようになりました（1Gポートなので上限値）
 
・元々Youtube程度で困った事はありませんでしたが
　キビキビ動いて、レスポンスがとても良くなりました。

・PCとスマホで4台くらいで同時にYoutubeなどを見ても
　OpenWrt FG52Eでは、CPU使用率は2%、メモリは100MBくらいしか使っていません。
　本当に何でもできそうなくらいリソースが空いてます。

・Fortigateをルータとして使った事はありましたが、ルータ/FWとしてであり
　家庭用やゲーミングルータを大きく超えたあらゆる機能がてんこ盛りの
　OpenWrtとそれを最大限に使えるFortigateの組み合わせは最強だと思います。

・Fortigate 52Eは先ほどの通り、mSATAによるSSD32GBが2枚搭載しており
　ストレージが非常に余裕がある機種です。

・このSSDをメインストレージにする事で、
　ソフトウェアも複数好きなだけ入れられて
　また入れたソフトもメモリが2GBあるおかげで気にせず使用できます。

・ストレージがない50Eは、本体の容量が欲しい場合USBメモリをExtroot化して
　メインストレージにする必要がありますが、52Eはそれがないおかげで
　USBポートを他の事に使える上、USBメモリより信頼できるストレージで運用できます。

・大破ログ様にもありますが、sambaをインストールして
　本体ストレージないしは、USB3.0のUSBメモリを、NAS代わりにしようとすると
　最初は書き込み10MB/sぐらいだけど、だんだんCPU使用率があがって
　5分くらいでCPUが1コアが100%になると、50KB/sぐらいになって使い物になりませんでした。
　外付けHDD付けて簡易NASにしたかったので残念！！

・記事ではしれっと説明してますが、OpenWrtを理解するまで
　ここ2か月で70時間くらい実機勉強してます。（＾＾；）
<br>

**以上、ご清聴ありがとうございました。**

　　　　　　　　どこかの誰かの何かの足しになれば幸いです。
        
　　　　　　　　　　　　　　　　　　　　　　　　01000010 01011001 01000101


# 参考
**■ 大破ログ様：Fortinet FortiGate 50E**

https://taiha.hatenablog.jp/entry/2023/03/10/004523

**■ 大破ログ様：Fortinet FortiGate/FortiWiFi 5xE (50E-2R, 51E, 52E)**

https://taiha.hatenablog.jp/entry/2024/06/08/191112

**■ けやっこめも様：FortiGate 52EとFortiWiFi 50E-2RにOpenWRTを焼く**

https://keyakko.hatenablog.jp/entry/2024/07/13/232332

**■ rapport-star様：OpenwrtがFortiGate 50Eに対応したらしいので入れてみた**
https://www.rapport-star.com/blog/2023/05/26/openwrt%E3%81%8Cfortigate-50e%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F/