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 ベースなので、経済安保って意味でもそこまで不安はない。
- SSH で中に乗り込んで
- その上に 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 でとっととつくろうとするが。。。
デフォルトでインストールされていない。うげ。
ということで、以下手順。
- 標準 Web UI の「プラグイン」から以下のパッケージをインストールする
- shadow-useradd : useradd コマンド
- shadow-su: su コマンド
- shadow-usermod: usermod コマンド
- sudo: sudo コマンド
- ssh でログイン
標準でも dropbear という簡易版?軽量?なSSHデーモンがいるので、rootログインは可能。
$ ssh root@<IPアドレス>
でログイン可能。
パスワードは設定した root パスワードで OK - /home ディレクトリの作成
初期では /home 自体がないので、# mkdir /home
しておく。 - ユーザーの作成
flint2# useradd -m -d /home/<ユーザー名> -U <ユーザー名>
- パスワードの設定
flint2# passwd <ユーザー名>
ひとまず 1 のパッケージだけ分かれば、あとは普通の Linux と同じ。
OpenSSH への入れ替え
OpenWRT ではデフォルトで dropbear という SSH デーモンが入っているので、ひとまず SSH の利用自体は可能。ただ、設定方法が FreeBSD や debian などと色々違って面倒なほか、hostbased 認証がうまくできない。。。
が、せっかくいろいろ弄れるルーターなので、OpenSSH に入れ替えちゃえばいい、ということで入れ替え敢行。
ただ、 厄介なのは標準の dropbear の停止と、22/tcp が dropbear にひもづけられているのでまずもってこれを処理する必要がある。 ということで手順。
- まず標準 Web UI の「プラグイン」画面から、
openssh-server
パッケージをインストール - ssh でログイン
- 現在の 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の接続確認がとれるまで、そのままにしておくことをおすすめ。 - 2222/tcp で再度ログイン
別の terminal から、
$ ssh root@<IP アドレス> -p 2222
root パスワードで SSH ログインできうことを一旦確認する。 - 上記手順3の terminal を exit とする。
これで、22/tcp を一旦開放してしまう。 - OpenSSH の設定ファイル
/etc/ssh/sshd_config
を好みの設定に変更する。
これはもう好みで自由だが、ワタクシはでパスワードログイン禁止、公開鍵認証の有効化、root ログイン禁止程度にしています。PasswordAuthentication no PermitRootLogin no PubkeyAuthentication yes
-
/home/<ユーザー名>/.ssh/authorized_keys
ファイルに作業マシンの公開鍵を書き込み - OpenSSH サーバーの起動
flint2# service sshd start
- OpenSSH へのテストログイン
操作マシンから$ ssh <ユーザー名>@<IP アドレス>
でログインできることを確認。
なお、ログイン後、flint2# su -
で root ユーザーになれることも確認。 - OpenSSH サーバーの有効化
次回起動時に備えて、有効化を設定
flint2# service sshd enable
一応、ここでルーターを再起動しておくことをおすすめ。再起動は標準 Web UI 右上の電源マークから実行する。再起動後も SSH でログインできることを確認できればバッチリ。 - 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 サーバー化をやってみる。
Discussion