📶

GL.inetルーター GL-MT6000 #1: 紹介〜初期設定〜OpenSSH 化

に公開

目的

  • GL.inet 社製ルーター GL-MT6000 (Flint2) を WiFi ルーター兼 NFS サーバーにしたい。
    • このルーター、国産 WiFi ルーターにはありえない高機能&カスタマイズ性があり、
    • とっても使いやすく/設定できてよいのだが、ハマりポイントも多数のため記録。
    • まずは基礎となる OpenSSH を入れたい。

発端は次期 WiFi ルーター探しで困っていた...

自宅の WiFi ルーターはこれまで国産を使っており、安定性などには不安はなかったのだが、一応 Linux 関連の仕事をしていて、プライベートでも FreeBSD や Linux ユーザー環境だと以下のお悩みがありずっと困ってた。

  • 国産一般向けはいかんせん機能が少ない (まぁ、初心者利用も考慮しているので当然なのだが)
    • ログ見れない... (見れても情報がしょぼい)
    • Web UI からしか設定できない...
      • しかも多くのケースでその反応が遅い
    • メーカーや機種によるが価格.comやamazonレビューで安定性や接続性をコテンパンに言われているものも多い...(ルーターとしては致命的)
    • VLAN などを構築したくても当然できない。
  • 海外製は、ちょっと不安
    • 真偽はワカラナイが、メーカーによっては経済安保とかいろいろ騒がれている...
    • 国産比較では高機能だが高価なものも多い
    • とはいえ、やはり Web UI の範囲でしか機能拡張できない。
    • 自宅回線の DS-Lite には未対応だったりするものもある。
  • 業務用ルーターは高い+でかい
    • 当然、自宅に置けないし。。。
    • WiFi がないことが多い。(AP別におくお金も場所もコンセントもない)
  • この用途だと国産 Y 社製が鉄板?だが、何せ高価+これもWiFiがない...
  • BSD や Linux で自作してもいいが、
    • 省電力かつ多ポートのまともなベース機がない...
    • ちょっと腕やセキュリティが不安。
  • OpenWRT や DD-WRT (というルーター向け Linux ディストリビューション) で市販家庭用ルーター改造の手もあるが
    • 技適(電波の法律)の適合性があちらこちらで言われており、少なくとも完全に「白」とは言い切れない。
  • できればファイルサーバーやらにも使いたい。

GL.inet 製 GL-MT6000 (Flint2) を簡単に紹介

そんなこんなでなんか良いのないかなぁ〜とずっと探していたところ
GL.inet 社製 GL-MT6000 (Flint2) (https://www.gl-inet.com/products/gl-mt6000/) というトンデモルーターを見つけてしまった!

このルーター、国産/国内向け WiFi ルーターではアリエナイめちゃくちゃ機能てんこ盛りで、

  • OpenWRT を「ほぼそのまま」使っている。
    • SSH で中に乗り込んで改造カスタマイズし放題。
    • OpenWRT採用=ソフトレイヤーについてはブラックボックスがほとんどない
      • 香港メーカーだが OpenSource ベースなので、経済安保って意味でもそこまで不安はない。
  • その上に GL.inet独自の Web UI や管理機能を乗っけている
    • 日本語もバッチリ対応 (この手の機器に多いブロークンジャパニーズもほぼなし)
    • 意外?なまでに UI の反応が早く、使いやすい。
  • 独自の Web UI から、なんと多数のパッケージを導入できる!
    • 公式に機能拡張を許可している。
      (さすがに勝手に入れたもののメーカーサポートまではないようだがこれはさすがに当然)
    • DS-Lite もパッケージを入れて設定することで対応可能。
  • 独自 Web UI から OpenWRT の標準 Web UI (LuCI) に入って詳細な設定をすることもできる
  • なんと、この状態で 技適認証取得済み!
    • 本体裏シールに明記あり+総務省技適検索サイトでもきちんと出てくる。
    • この点が最大のウリで、国産ルーター改造して OpenWRT 化したときの法律不安が皆無。
    • ACアダプタもきちんと PSEマークがある!
  • USB ポートがある
    • 標準で Samba / DLNA のファイルサーバーをサポート
    • LTE ドングルによるフェイルオーバーもサポート
  • VPN ルーターを標榜?している
    • OpenVPN (client/server), WireGuard などもデフォルトサポート
  • 2.5GbE port 2本搭載
    • 1つはWAN/LAN切り替え
    • しかもWANにするとフェイルオーバーポートとしても標準で利用可能。
  • ファンレス
  • この機能にしては価格も妥当 (約2万円)
    • ARMv8 (64bit) Quad Core + Mem 1GByte + eMMC 8GByte + 2.5GbE x 2port + 1GbE x 4port ファンレスマシンでこの価格なら組み込みボードの価格としてもまぁまぁ安いかもな感じです。

書き出すとキリがないほど特徴が多く、技適ありの 一般逸般のご家庭向けルーターではワタクシが知る限り最強?で、ワタクシの用途にはぴったり、ということで飛びつきました。

とりあえず初期設定

本題ではないので詳細は割愛するが、まずは以下の設定や作業を実施してつかえるようにした。
まぁ当然ではあるが、国産ルーターよりは当然手数は多い。

  • まず http で 192.168.8.1 (初期IP) にブラウザアクセス
  • GL.inet 独自 (標準) Web UI から以下を設定
    • root パスワードを設定
    • ファームウェアアップデート
    • 自宅ネットワークセグメントに合わせた IP アドレス、DHCP サーバー設定
    • プラグイン画面から luci-i18n-base-ja, ds-lite パッケージをインストール
      • 最初は既存ルーターから本ルーターのWANポートに接続して一時的にインターネット利用可能として設定することでインストールを実施。
      • luci-i18n-base-ja パッケージを入れることで OpenWRT 標準 UI (LuCI) が日本語になります。
    • WiFi の WPA まわり (SSID, Keyなど) を設定
      • もちろん WPA3 まで対応。
    • MACアドレスフィルタリングを設定
      • これがちょっと分かりにくい。
      • 「クライアント」メニュー上部の「ブロックリスト」をクリックして表示される「アクセス制御」ダイアログ内で、”許可リスト”への切り替えが可能。
      • 下の編集欄に、1行1 MACアドレスで許可するMACを列挙する。
      • ★WiFiだけでなく、有線LAN経由のクライアントも全部列挙する必要がある
      • 登録後、初回アクセスすると「クライアント」メニューに表示される対象マシンの右側の「…」ボタンから、対象のクライアントに名称設定ができるのが便利。
  • 一旦再起動
  • 次に LuCI 設定画面から以下を設定
    • ホスト名
    • DS-lite の設定
      • 設定手順は、https://zenn.dev/honomin3/articles/b02f54c164952f がとてもわかりやすい。
      • ★WAN ファイルオーバーを利用する場合DS-LITE AFTR アドレスを gw.transix.jp の FQDN 名ではなく、このアドレスの V6 IP アドレスで記載する必要がある。
        • 少なくともワタクシの transix 利用の DS-LITE 環境ではこれをやらないと、WAN #2 を接続しフェイルオーバー構成を組んだ時点で IPv4 通信だけが一切できなくなる怪現象が発生。(おそらくは AFTR FQDNの名前解決に失敗していると想定。)

あと、注意点としては以下。

  • 「セキュリティ」メニューにある SSH リモートアクセスは、外部ネットワーク (WAN 側) から 22/tcp へのアクセスを許可するか否かの設定。
    • SSH 自体の有効無効ではない。
    • LAN 側からの SSH はこの設定に関わらずデフォルトでも利用可能。
      (よって間違って有効にすると危険!)

ひとまずこの程度で、いわゆる「普通の国産 WiFi ルーター」なみの挙動はする。
なお、使い始めて1週間ほどだが、落ちた or ハングはなく、安定性も充分なのかなと思ってます。

ユーザーの作成

で、ここからがこのルーターの本領発揮。
こいつは WiFi ルーターであるとともに、いわゆる「Linux ボックス」にもなるので、これを使っていきます。

で、毎回 root で作業するのもどうかと思うのでまずは作業用の自分ユーザーを作成します。

じゃ useradd や passwd でとっととつくろうとするが。。。
デフォルトでインストールされていない。うげ。
ということで、以下手順。

  1. 標準 Web UI の「プラグイン」から以下のパッケージをインストールする
  • shadow-useradd : useradd コマンド
  • shadow-su: su コマンド
  • shadow-usermod: usermod コマンド
  • sudo: sudo コマンド
  1. ssh でログイン
    標準でも dropbear という簡易版?軽量?なSSHデーモンがいるので、rootログインは可能。
    $ ssh root@<IPアドレス> でログイン可能。
    パスワードは設定した root パスワードで OK
  2. /home ディレクトリの作成
    初期では /home 自体がないので、# mkdir /home しておく。
  3. ユーザーの作成
    flint2# useradd -m -d /home/<ユーザー名> -U <ユーザー名>
  4. パスワードの設定
    flint2# passwd <ユーザー名>

ひとまず 1 のパッケージだけ分かれば、あとは普通の Linux と同じ。

OpenSSH への入れ替え

OpenWRT ではデフォルトで dropbear という SSH デーモンが入っているので、ひとまず SSH の利用自体は可能。ただ、設定方法が FreeBSD や debian などと色々違って面倒なほか、hostbased 認証がうまくできない。。。

が、せっかくいろいろ弄れるルーターなので、OpenSSH に入れ替えちゃえばいい、ということで入れ替え敢行。
ただ、 厄介なのは標準の dropbear の停止と、22/tcp が dropbear にひもづけられているのでまずもってこれを処理する必要がある。 ということで手順。

  1. まず標準 Web UI の「プラグイン」画面から、openssh-server パッケージをインストール
  2. ssh でログイン
  3. 現在の dropbear SSH サーバーのポートを 22/tcp から一時的に 2222/tcp に変更する。
    flint2# uci set dropbear.@dropbear[0].Port=2222
    flint2# uci commit dropbear
    flint2# /etc/init.d/dropbear restart
    なお、次に 2222/tcp で再度ログインするが、この時点では万が一の失敗に備えて、上記3コマンドを実行し、SSH 接続されたままの terminal は、以下4の接続確認がとれるまで、そのままにしておくことをおすすめ。
  4. 2222/tcp で再度ログイン
    別の terminal から、
    $ ssh root@<IP アドレス> -p 2222
    root パスワードで SSH ログインできうことを一旦確認する。
  5. 上記手順3の terminal を exit とする。
    これで、22/tcp を一旦開放してしまう。
  6. OpenSSH の設定ファイル /etc/ssh/sshd_config を好みの設定に変更する。
    これはもう好みで自由だが、ワタクシは
    PasswordAuthentication no
    PermitRootLogin no
    PubkeyAuthentication yes
    
    でパスワードログイン禁止、公開鍵認証の有効化、root ログイン禁止程度にしています。
  7. /home/<ユーザー名>/.ssh/authorized_keys ファイルに作業マシンの公開鍵を書き込み
  8. OpenSSH サーバーの起動
    flint2# service sshd start
  9. OpenSSH へのテストログイン
    操作マシンから $ ssh <ユーザー名>@<IP アドレス> でログインできることを確認。
    なお、ログイン後、flint2# su - で root ユーザーになれることも確認。
  10. OpenSSH サーバーの有効化
    次回起動時に備えて、有効化を設定
    flint2# service sshd enable
    一応、ここでルーターを再起動しておくことをおすすめ。再起動は標準 Web UI 右上の電源マークから実行する。再起動後も SSH でログインできることを確認できればバッチリ。
  11. dropbear サーバーの停止&無効化
    最後に、もう使わなくなった dropbear 君を止めてしまう。
    flint2# service dropbear stop
    flint2# servcie dropbear disable

なお、この手順は OpenWRT 公式ドキュメント https://openwrt.org/docs/guide-user/services/ssh/openssh_instead_dropbear の手順ですがこれが正解っぽいです。

これでひとまず、WiFiルーター 兼 最低限の Linux ボックスとしてつかえるようにはなった。
が、同時にこれで広い Linux 大海原の沖に出たので、さて次は目的の NFS サーバー化をやってみる。
https://zenn.dev/koinec/articles/42abf37207c43c

Discussion