MKControllerデバイスの設計図
概要 MKControllerのアドプションスクリプトは、MikroTikデバイス上に8つのコンポーネントをインストールします。具体的には、OpenVPN証明書、VPNプロファイル、MKControllerサーバーへのOpenVPNトンネル、VPNゲートウェイのアクセスを許可するファイアウォールルール、監視スケジューラ、管理用ユーザーアカウント、ファイアウォール優先順位ルール、そしてVPNトンネルに制限された有効化済みサービスポートです。本ページでは、各コンポーネントの役割と、それを削除した場合に何が動作しなくなるのかを解説します。
MKControllerのアドプションスクリプトはMikroTikに何をインストールするのか?
MKControllerのアドプションスクリプトは、MikroTikデバイスとMKControllerクラウドインフラストラクチャとの間に安全かつ暗号化された接続を確立する、短いRouterOSプログラムです。実行すると、デバイス上にちょうど8つのコンポーネントが作成されます。それ以上でも以下でもありません。各コンポーネントを理解することで、接続を維持し、問題のトラブルシューティングを行い、RouterOSの構成について十分な情報に基づいた判断を下すことができます。
要件
RouterOSバージョン6.39以上が必要です。サポートされているバージョンの全リストについては、サポート対象RouterOSバージョンを参照してください。
コンポーネント1: OpenVPN証明書
OpenVPN証明書がMikroTikのファイルシステムにダウンロードおよび保存され、その後デバイスの証明書ストアにインポートされます。
次の場所で確認できます: System → Certificates
/certificate import file-name="[CERTIFICATE_ID]" passphrase=""この証明書は、デバイスをMKController VPNサーバーに対して認証するためのものです。これがなければ、VPN接続を確立することはできません。
コンポーネント2: VPNプロファイル
暗号化を有効にしたPPPプロファイルが作成されます。このプロファイルは、コンポーネント3で作成されるVPNトンネルで使用されます。
/ppp profile add name="[PROFILE_ID]" use-encryption=yes comment="MKController"コンポーネント3: OpenVPNクライアントトンネル
コンポーネント1の証明書とコンポーネント2のプロファイルを使用して、OpenVPNクライアントインターフェースが作成されます。AES-256暗号方式とSHA-1認証を使用し、ポート443でovpn.mkcontroller.comへアウトバウンド接続を行います。
/interface ovpn-client add connect-to="ovpn.mkcontroller.com" user="[USER_ID]" auth=sha1 cipher=aes256 certificate="[CERTIFICATE_ID]" port=443 profile="[PROFILE_ID]" name="MKController" comment="MKController"このトンネルこそが、ルーター側でインバウンドポートを開放することなく、リモートアクセス、バックアップ、監視、API呼び出しといったすべてのクラウド機能を実現するものです。
コンポーネント4: ファイアウォール入力ルール
VPNゲートウェイアドレス(10.8.0.1)からトンネル経由でMikroTikへアクセスすることを許可する、単一のファイアウォールルールが作成されます。
/ip firewall filter add chain=input action=accept src-address="10.8.0.1" priority=0 comment="MKController"アクセスが許可されるのはこのIPアドレス、つまりMKController VPNサーバーのみです。それ以外の外部IPはホワイトリストに登録されません。
コンポーネント5: 監視スケジューラ
90秒ごとに実行されるRouterOSのスケジューラスクリプトが、デバイスの稼働状態データ(CPU使用率、RAM消費量、ディスク容量、対応モデルでは温度)をMKControllerに送信します。
/system scheduler add name="resources-[ID]" interval="90" on-event="[EVENT]" comment="MKController"このデータが、MKControllerダッシュボード上のリアルタイムデバイスカードや可用性レポートの情報源となります。
コンポーネント6: MKControllerユーザーアカウント
MikroTik上に完全アクセス権を持つユーザーが作成されます。このアカウントは、MKControllerとデバイス間のすべてのAPI通信に使用されます。パスワードはブルートフォース攻撃を防ぐため、自動的かつ頻繁にローテーションされます。
/user add name="[USER_ID]" group=full password="[TEMPORARY_PASSWORD]"このユーザーは次の場所で確認できます: System → Users(UUID形式の名前で表示されます)。
コンポーネント7: ファイアウォールルールの優先順位
コンポーネント4のファイアウォールルールが入力チェインの最上位に移動され、後から追加された他のルールによってMKControllerのアクセスがブロックされないようにします。
:do { :local n [/ip firewall filter find where comment="MKController"]; /ip firewall filter move numbers=$n destination=0} on-error {}コンポーネント8: サービスポートの有効化
5つのRouterOSサービスポートが有効化され、それらのアクセスはVPNゲートウェイアドレス10.8.0.1に制限されます。つまり、これらのポートに到達できるのはMKController(VPNトンネル経由)のみです。既にポートが開いている場合は、既存のエントリを削除せずに10.8.0.1が許可アドレスリストへ追加されます。
/ip service enable www; /ip service set www address="10.8.0.1"/ip service enable winbox; /ip service set winbox address="10.8.0.1"/ip service enable ssh; /ip service set ssh address="10.8.0.1"/ip service enable api; /ip service set api address="10.8.0.1"/ip service enable ftp; /ip service set ftp address="10.8.0.1"サービスの状態は次の場所で確認できます: IP → Services
サービスを無効化すると何が動作しなくなるか?
| サービス | 無効化した場合、動作しなくなる機能 |
|---|---|
www (WebFig) | MKControllerのWebおよびモバイルアプリでのリモートWebFigアクセス |
winbox | MKControllerデスクトップアプリでのリモートWinboxアクセス |
ssh | バックアップの作成、ファイルのアップロード/ダウンロード、スクリプト実行 |
api | Walled Garden、Voucher、Public APIを含むすべてのAPI機能 |
ftp | ファイルシステム操作: FTP連携、ファイル一覧表示、ファイルの一括アップロード |
アドプションスクリプトやコンポーネントの動作についてご質問がある方は、MKControllerサポートにWhatsAppでお問い合わせください。