Mikrotikルーター(MikroTik)とは何ですか?今日では、ネットワークテクノロジーに興味を持っているほとんどすべての人が、単なるユーザー以上に知られています。 信頼性の高いハードウェアと低コストにより、これらのルーターは、大規模ネットワークの管理者の専門的な環境だけでなく、オフィスや家庭での使用でも人気が高まっています。 専門家やアマチュアの間でこの機器が成功するための重要な要素は、すべてのMikrotikデバイスに共通する専用のRouterOS、ROSです。これは、ルーターを柔軟かつ普遍的に設定できる便利なグラフィカルWINBOXシェルを備えた強力なオペレーティングシステムです。 時々、RouterOSの機能はこれに限定されません...
この記事では、ROS MikroTik機能を使用して、特別なマイクロプログラム(ROSスクリプト関数)を作成することにより、ネットワーク上のこれらのデバイスの統合を通じて直接httpリクエストを受け入れるKernelChipのLaurentインターネットモジュールにコマンドを発行する可能性について説明します。

Laurent2モジュール
Laurent2モジュールには「ボード上」にかなり豊富な「スナップイン」があり、ボードの端にある端子ブロックパッドで使用できます。 モジュールに含まれるもの:
- 光絶縁ディスクリート入力ライン(6個)
- 強力な出力ディスクリートライン(12個)
- アナログ-デジタルコンバーター(電圧の測定と各種センサーの接続用)-2
- パルスカウンター(4個)
- さまざまな負荷を切り替えるための高電圧電磁リレー(4個)
- PWM出力
- 温度センサーKTS-18B20を接続するための入力
- RS-232シリアルポート
ローラン112
Laurent112はより控えめに見え、前述のLaurent2のさまざまな機能を備えていませんが、家庭用電化製品の標準負荷を切り替えることができる「補償」12リレーを搭載しています。
Mikrotik Routerでこれらのモジュールをサポートするために、次のスクリプト関数を作成しました。
FuncLaurent2REL -Laurent2モジュールリレー機能
FuncLaurent2OUT-モジュールの
アウトラインを操作する機能
FuncLaurent2PWM -PWM信号の電力設定
FuncLaurent2Status -Laurent2ステータスリクエスト
FuncLaurent112REL -Laurent112モジュールのリレーを操作する機能
FuncLaurent112Status -Laurent112ステータスリクエスト
FuncPing-すべての機能で使用される、pingへのIPアドレス応答を要求するサービス機能
FuncMail-ランダムメッセージを電子メールに送信する追加機能
使いやすくするために、リストされた関数は、それらの呼び出しのユーティリティおよびスクリプトの例と共に、単一のファイルLaurent.rscに結合され、ターミナルコマンドでルーターOSにインポートできます。
/import file=Laurent.rsc
(インポート時間は、Mikrotikルーターモデルのパフォーマンスによって20〜30秒から1分かかる場合があります)。
Laurentスクリプトライブラリファイルが破損しておらず、リポジトリへのスクリプトのインポートが正しく完了している場合、WINBOXユーティリティのコンソールに「スクリプトファイルがロードされ、正常に実行されました」というメッセージが表示されます。

同時に、既存のスクリプトに加えて、ルーターのリポジトリに次のように表示されます。

これらは、「Laurent」がマークされる所有者-作成者(所有者)のラベルで簡単に区別できます。
Laurent関数は、次のように他のスクリプトから呼び出すことができます。
最初に、必要な機能をグローバル変数の形式でルーターリポジトリ変数の環境に配置するスクリプトを実行する必要があります。 Laurent2モジュールの場合、これらは
Func_Laurent2_library 、
Func_Pingおよび
Func_Mailスクリプトです (オプションですが、便利な「メール」機能)。 Laurent112の場合、これらは
Func_Laurent112_REL 、
Func_Laurent112_Status 、
Func_Ping、および
Func_Mailスクリプトです。
これらのスクリプトは、これらの機能が必要なときに1回実行できます。 一定の作業で使用される場合、ルーターがルーターOSスケジューラー(
/システムスケジューラー )から起動したときに、すぐにスクリプトを起動すると便利です。 または、両方のモジュールのすべての機能を一度にインストールするために必要なすべてを行う特別なスクリプト
Laurent_START.rscの起動を使用できます。 このスクリプトをWINBOXまたはコンソールからコマンドで実行した後
/system script run Laurent_START.rsc
ライブラリー関数は、リポジトリー変数とJagaメロディー音の一部に囲まれています。
ライブラリの正常な起動に関するメッセージがルーターのログに送信されます。

後で、インストールファイルを編集して、必要な機能のみが環境(それぞれ、Laurentボードのモデル)に配置されるようにするか、Laurent_START.rscファイルのテキストの例に従って、自分で呼び出すことができます。
これで、変数に囲まれた状態で、RouterOSでグローバル変数(:global)として定義された関数が表示され、すぐに使用できます:

関数を定義したら、スクリプト、ルーターのスケジューラー(スケジュールされた実行用)、または呼び出しスクリプトでそれらのグローバル名を宣言する特別な場合(DHCPサーバーアラート、PPPプロファイルスクリプトなど)で関数を呼び出すことができます。
両方のモジュールのリレーを操作し、Laurent2の出力ラインとPWM信号電力を設定する機能は、モジュールの「保護されていない」モードでのみ機能することに注意してください。 モジュールで「保護」モードが有効になっている場合、これらのhttpコマンドは、対応するエラーメッセージとともに実行されません(以下を参照)。 モジュールのステータス要求機能は、保護モードと非保護モードの両方で機能します。
Laurent2モジュールの機能を検討してください
FuncLaurent2REL-Laurent2リレーのオン/オフ/逆関数この機能により、指定されたリレーをオンにし、リレーをオフにし、指定された時間だけリレーをリセットすることができます。
関数の構文は次のとおりです。
[$FuncLaurent2REL Ladr="IP-address" Lport="http-port" Rele="nRele" Action="m" Time="time s"]
ここで:
Ladr-一般に受け入れられている形式のネットワーク上のLaurent2モジュールのIPアドレス。
Lport -http-portモジュール。 すべてのLaurentモジュールの現在のバージョンでは、標準のhttpポート80のみが使用され、任意のポートは構成されていません。 したがって、Lportパラメーターは省略できます。
Rele -
1〜4の範囲で関数が参照するリレーの番号。
アクション -リレーで実行されるアクション。 値(m)は1になります。これは、リレーをオン(オン)または0(オフ)にするのと同じです。
時間 -モジュールファームウェア[1-255]で許可されている範囲内のリレーのアクション時間(秒単位)。 指定しない場合、アクションは1回実行されます。 時間の値が指定されている場合、リレーは「再起動」されます-リレーのステータスは、アクションの時間秒で指定された時間に変更され、反対の状態に戻ります。
関数実行の結果は、Lanswer文字列変数に返すことができます(これは単純なコマンドとは対照的な関数の値です)。
結果を返すには、定義の構成(:localまたは:global)を使用するか、以前に定義した変数に値を割り当てる(:set)必要があります。次に例を示します。
:local Lanswer [$FuncLaurent2REL Ladr="IP-address" Lport="http-port" Rele="nRele" Action="m" Time="time s"]
関数が成功すると、Lanswerは「
DONE 」を返すか、エラーメッセージを返します。 機能が成功した場合、
Action =“ 1”の場合、ビープ音を装備したルーターは短いビープ音を1回鳴らします。 リレーがオフになるか、反転が反転すると、短いビープ音が2回連続して鳴ります。
この関数は、次のエラーメッセージを返す場合があります。
「>エラー:範囲の誤算」-無効なリレー番号がRele変数に指定されている場合。
「>エラー:releレジームセットの不一致」-指定されていない、または誤って指定されたアクションの場合。
「>エラー:時間の不一致」-誤った時間値の場合(範囲[1-255]以外)。
「>エラー:デバイスが応答しません」-Laurentのpingに対する応答がない場合。
">エラー:コマンドROS"-URLコマンドRouterOs /ツールフェッチの実行時にエラーが発生した場合(Ladrが誤って設定されているが、pingされている場合、サービス/ツールフェッチは特定のユーザーMrotikなどに到達できません...);
「>エラー:デバイス保護」-「デバイス保護モード」が設定されていて、コマンドを実行できない場合。
"> ERROR:command syntax"-コマンドの構文エラー(*すべてのエラーオプションを除外できるわけではありません。関数の構文が正しくない場合、たとえばLadrおよびLport形式が正しく指定されているかまったくない場合、スクリプトがフリーズします)
FuncLaurent2REL関数の例IPアドレス192.168.0.101のLaurent2モジュールのリレー1をオンにして、関数の応答を変数に返します。 :global FuncLaurent2REL; :local Lanswer [$FuncLaurent2REL Ladr="192.168.0.101" Lport="80" Rele="1" Action="1"]; :if ([:find $Lanswer "DONE"]=0) do={:log warning $Lanswer}
もちろん、引用符で示された関数パラメーターの直接値の代わりに、ルーターOS変数を任意の名前で使用できます。
関数の応答を返さずに、リレー番号4を20秒間反転します。 :local LaurentIPadr "192.168.10.5" :local LaurentRele 4 :local LTime 20 [$FuncLaurent2REL Ladr=$LaurentIPadr Lport="8021" Rele=$LaurentRele Action="1" Time=$Ltime]
Laurent2およびLaurent112関数は、Lua ROS言語で許可されている任意の構造(ループ、ネスト、分岐など)に適用できます。
つまり、サイクルを使用して、
たとえば、ボードのすべてのリレーをオンにでき
ます。 :for i from=1 to=4 do={[$FuncLaurent2REL Ladr="192.168.0.101" Lport="80" Rele=$i Action="1"];}
または、同様の方法でI / Oラインでグループ操作を行います。
FuncLaurent2OUT-Laurent2出力回線ステータス設定機能機能は前のものとまったく同じです。 ReleパラメーターをLineパラメーターに置き換えることを除き、同じパラメーターがあります。1〜12の範囲の値を取ることができます(Laurent2には12の出力行があることに注意してください)。 Action = "1"を指定すると、ラインに高論理レベルが設定され、Action = "0"を指定すると、低に設定されます。 所定の時間のライン反転も、時間を設定するときにFuncLaurent2REL関数と同様に機能します。
出力行番号12を「高レベル」に設定した関数呼び出しの例: [$FuncLaurent2OUT Ladr=1"92.168.0.1" Line="12" Action="1"]
FuncLaurent2OUT関数は、成功すると「DONE」応答を送信します。
エラーメッセージはFuncLaurent2RELに似ていますが、出力行を報告します。
「>エラー:行範囲の誤算」-無効な行番号がLine変数で指定されている場合。
「>エラー:回線レジームセットの不一致」-指定されていないか、誤って指定されたアクションの場合。
「>エラー:時間の不一致」-誤った時間値の場合(範囲[1-255]以外)。
「>エラー:デバイスが応答しません」-Laurentのpingに対する応答がない場合。
「>エラー:コマンドROS」-URLコマンドRouterOs /ツールフェッチの実行時にエラーが発生した場合。
「>エラー:デバイス保護」-「デバイス保護モード」が設定されていて、コマンドを実行できない場合。
「>エラー:コマンド構文」-コマンドレコードの構文エラー。
FuncLaurent2PWM-PWM信号電力調整機能この関数は、PWM出力の信号電力を設定します。これを使用して、たとえば、照明の明るさ、またはこの出力に接続されているファンの速度を調整できます。
関数の構文は次のとおりです。
[$FuncLaurent2PWM Ladr="IP-address" Lport="http-port" PW="n(%)"]
PWパラメーターでは、PWM信号の電力をパーセントで(%記号を指定せずに)それぞれ0〜100の範囲で指定する必要があります。
PWパラメーターが正しく指定されていない場合、エラー「> ERROR:PWM range mismath」が生成され、残りのエラーメッセージはFuncLaurent2RELおよびFuncLaurent2OUTのメッセージと同様です。
FuncLaurent2Status-Laurent2モジュールステータスリクエスト関数この関数は、各パラメーター(すべてのリレー、すべての入力ライン、すべての出力ライン、温度センサーの読み取り値、PWM出力電力、パルスカウンターなど)ごとに別々に、さまざまな形式でモジュールの完全なステータスを要求できます。多要素パラメーターの要素から(特定のリレーまたは個別のライン)。 Laurentモジュールを使用すると、保護モードがオフかオンかに関係なく、ボードのステータスを要求できます。
関数エントリの形式は次のとおりです。
[$FuncLaurent2Status Ladr="IP-address" Lport="http-port" Type="all, xml or name" N="el. number"]
この場合:
Ladrおよび
Lport-ネットワーク上のIPアドレスとhttpポート(ポートは省略可能)Laurent2デバイス。
タイプ -Laurent2ボードの技術的な説明に従って値(systime、rele、in、out、adc1、adc2、count1、count2、count2、count4、temp、pwm)をとることができる必須パラメーター。 Type = "all"またはType = "xml"を設定することもできますが、Typeをまったく指定しないでください-受け入れられません。
Nはオプションの関数パラメーターです。 複数要素タイプ(rele、in、out)にのみ使用され、Typeパラメーターの要求されたステータス要素の数を決定します(rele N = [1-4]、out N = [1-12]、in N = [1) -6]);
正常に実行されると(エラーなし)、関数の応答がLanswer変数または同じ次元の1次元キー配列で返されます(モジュールのステータス全体がType =“ all”で要求された場合(以下を参照)。
Type =“ xml”を設定する
と、関数は、ボードによって指定されたxml形式を変更せずにモジュールステータスを返します。 Mikrotik RouterOSでは、このような形式はほとんど便利ではありませんが、この機能は保持されます。
Type =“ all”の場合、関数は完全なモジュールステータスを1次元のLanswerキー配列で返します。 個々の要素のステータスは、要素のキー名によって抽出できます。 要素キーには、モジュールステータスパラメータの技術的な説明(systime、rele、in、out、adc1、adc2、count1、count2、count2、count4、temp、pwm)に従って名前が付けられます。
systime-電源供給の瞬間から計算されたモジュールの現在のシステム時間(秒単位)。
rele-要約データ行の形式のモジュールリレーの状態。 行の最初の文字は、リレー番号1、リレー番号2の2番目の文字などに対応します。 対応する位置の1は「リレーオン」、0-オフに対応します。
in-要約データ文字列としての6つの個別入力行すべての状態。 行の最初の文字は、行番号1、2番目の文字の行番号2などに対応します。 「0」-低論理レベルが回線に設定され、「1」-それぞれ高論理レベル。
out -12の出力行についても同様です。
adc1-ボルト単位のADC-1モジュールのチャネル測定値の読み取り値。
adc2-ボルト単位のADC-2モジュールのチャネル測定値の読み取り。
temp-温度センサーの読み取り値(摂氏)。
count1-パルスカウンター番号1の値、範囲
0〜32766の整数。
count2-他の3つのパルスカウンターについても同様です...;
count3-count4-...pwmは、PWM出力での信号の出力電力です。 0から100までの値を取ることができ、
パーセントで
例として、デバイスの完全なステータスを取得し、ルーターログの個々のパラメーターのみを表示します-温度センサーの温度(temp)とすべてのリレーのステータス(rele):FuncLaurent2Status関数を操作するスクリプト例1 :global FuncLaurent2Status; ; # Lanswer ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="all"]; # ; :log info " Laurent2 -:"; :log info $Lanswer; :log info ""; ; # : :local termokey "temp"; :local relekey "rele"; :local Tsend ""; :set Tsend ($Lanswer->$termokey); :log info (" : "."$Tsend"); :log info ""; :set Tsend ($Lanswer->$relekey); :log info ("- : "."$Tsend"); :log info ""; ; # : :log info (" :"."\n"); :local rezult; local Saction; :local Reletext; :for i from=1 to 4 do {:set rezult [:pick $Tsend ($i-1) $i]; :if (rezult="0") do={:set Saction "< >"} else={:set Saction "< >"} :log info (" №"."$i"." "."$Saction"); :set Reletext ("$Reletext"." №"."$i"." "."$Saction"."\n")} :log info "";
上記のスクリプトのルーターログへの出力:

*注:
-RouterOSでは、キー配列の要素はキーの名前に従ってアルファベット順に並べられます。 これは、選択的な出力には一切影響しません;名前またはランダムな順序で配列の必要な要素を要求できます。
-この場合の温度センサーは-273°C(未接続)を示します。
-4つのすべての組み込みモジュールリレー(オン/オフ)のステータスが明確に表示されます。
位置番号に対応するすべての対応する要素のステータスを行に含むマルチ要素パラメーター(rele、inまたはoutなど)の場合、特定の要素のみを表示できます(特定のリレー、入力回線または出力回線のステータス)。 これは、ループ内のNパラメーターを使用して特定の要素のステータスを要求する機能を呼び出さないように、個別の異種パラメーターおよび要素のステータスまたは要素グループのステータスを取得する必要がある場合に便利です。
たとえば、すでに受信したモジュールの完全なステータスから、入力行番号6のみの状態を導き出します。 # ; :local numelem 6; # ; :local Par ($Lanswer->"in") :local elem [:pick $Par ($numelem-1) $numelem] :log info $elem
ボードの完全な状態ではなく、目的のパラメーターの状態のみを直接要求することもできます。たとえば、すべての出力行(out): :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="out"]; :set Lanswer (" : "."$Lanswer"); :log info $Lanswer;
または、複数要素パラメーターの1つの要素のみ(リレー番号7にします): :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="rele" N="7"]; :log info $Lanswer;
1つの要素(temp、cont2、adc1、systimeなど)を持つパラメーターの場合、Nは指定されず、指定されても無視されます。
Nは可能(in、out、rele)であるが、指定されていないTypeの場合、Typeで指定されたフィールド全体のステータスは文字列として返されます。たとえば、「0100011000」(このTypeの要素の数を考慮して) 1またはログ0。
複数要素のパラメーターが要求され、Nが関数で指定され、正しく設定されていない場合(このTypeに対してN <1またはN>が可能)、Typeパラメーター全体も返されます(誤った範囲Nのエラーは生成されません)。
ログイン/実行に失敗した場合、関数は以下のエラーメッセージをログに記録し、Lansswser変数に返すことができます。
>エラー:デバイスが応答しません-pingに対するLaurentモジュールの応答がない場合。
>エラー:コマンドROS-RouterOs /ツールフェッチURLコマンドの実行時にエラーが発生した場合。
>エラー:タイプミスマッチ-リクエストでステータスパラメータが正しく指定されていない場合(rele、out、in、allなど)
以下は、Laurentデバイスのステータスを完全または選択的に操作できるようにするスクリプトコードの例です。 彼の作品のロジックを分析した後、モジュールステータスを要求する独自のスクリプトを作成できることを願っています。
FuncLaurent2Status関数を操作するスクリプト例2 :global FuncLaurent2Status; ; :local Ltype "out"; # all – (rele, out, temp ...); :local Npar ""; # - (""); :local PR "all"; #- "all" № Npar; ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Lport="80" Type=$Ltype]; :if ($Lanswer=">ERROR: device protect") do={:log error " . "}; :if ([:find $Lanswer "ERROR"]=1) do={:log error $Lanswer;} else={ :local keytype [:toarray "systime, rele, in, out, adc1, adc2, count1, count2, count3, count4, temp, pwm"]; :local typepar {"systime"="1"; "rele"="4"; "in"="6"; "out"="12"; "adc1"="1"; "adc2"="1"; "count1"="1"; "count2"="1"; "count3"="1"; "count4"="1"; "temp"="1"; "pwm"="1"}; :local T; :local row; :local rezult; :if ($Ltype="all") do={ :foreach i in=$keytype do={ :set row ($Lanswer->$i); log info ("$i"." = "."$row");} } else={:set T ($typepar->"$Ltype"); :if ($PR="all") do={:set rezult $Lanswer} else={:set rezult (". . ". "$[:pick $Lanswer ($Npar-1) $Npar]")} :log info ("$Ltype"." "."$T"."; "."$Ltype "."$Npar".": "."$rezult");}}; :log info "";
Laurent112モジュールの機能
Laurent112モジュールは負荷の接続のみを目的としていますが、組み込みリレーの数は12です。したがって、その機能をサポートするために、
FuncLaurent112RELリレーのインストールと
FuncLaurent112Statusモジュールのステータスの要求という2つの機能のみが作成されました。
FuncLaurent112REL -Laurent112モジュールのリレーを操作する機能は、上記の
Laurent2の機能と完全に類似しています。 この関数のReleパラメーターは、[1-12]の範囲で変化します。
FuncLaurent112Status -Laurent112ステータスリクエスト機能は、電源からモジュールへのシステム時間経過(systime)とリレーステータス(rele)の2つのステータスパラメータのみの発行に制限されています。
Laurent2ステータスリクエスト関数と同様に、FuncLaurent112Status関数はLaurent112の完全なステータスをxmlモジュール形式(Type =“ xml”を指定する場合)、Lanswerに配置されたキー配列として(Type =“ all”)またはsystimeに対して個別に表示できます。レレ。 Type =“ rele”の場合、リクエストのパラメータNはリクエストに示され、ステータスをリクエストする必要があるリレー番号を示します。 Nが指定されていない場合、または可能な値の間違った範囲(1から12)に設定されている場合、関数はすべてのリレーのステータスを含む文字列を返します。リレーステータスは、リレーの対応するリレー番号に0 。
これらの関数にアクセスするための形式と返されるエラーメッセージは、対応するLaurent2関数に似ています(上記を参照)。
MikrotikルーターとLaurentインターネットモジュールの実装された統合を実際に使用する方法は?
Mikrotikルーターと指定されたLaurentインターネットモジュールの統合の結果の重要なポイントの1つは自律性です。つまり、2つのネットワークデバイス間で存在する可能性があります.2つのネットワークデバイスはいずれもPCではなく、人(ユーザー、管理者)の参加なしで動作できます。 この場合、ルーターはローカルネットワークのメインデバイスであり、原則としてインターネットへのゲートウェイです。 Router OSの機能とRouterBoardの幅広いハードウェア範囲を考えると、この統合のすべての可能なアプリケーションを想像するのは困難です。すべては技術的なタスクとアプリケーターの想像力に依存します。
CATシステムを含む適切な構成後のLaurentボードのバッテリー寿命のほとんどは、一般に独立して実行できます。
Mikrotikルーターとの統合におけるLaurentの主な用途は次のとおりです。- - , .
- / (, , )
- «» .
- « » Laurent, /, ) .
- / (, …), , SMS.
次に、それらのいくつかの実装例を検討します。1.重要なネットワークリソースへのアクセスの「物理的保護」。ローカルネットワークに、外部からのアクセスからさらに保護したい重要なデバイスがあるとします。ご存知のように、たとえば、ポートノッキング方式、さまざまなVPNトンネルの整理など、多くのネットワーク保護があります。それらはすべて悪くはありませんが、ほとんどすべてが長い間開かれています。もちろん、あなたが銀行家でなければ、専門家はあなたのネットワークをハッキングせず、通常のユーザーは原則として光防御を破ることさえできません。それにもかかわらず、リモートデスクトップ、ファイルサーバーなどをハッキングする多くの事実がありますが、これはあまり快適ではありません。この意味で統合は何を提供できますか?主に-長期にわたるリソースへのアクセスの物理的制限。これは、外部からネットワークをハッキングする可能性に影響を与える最も重要な要因の1つです。したがって、ネットワーク保護のプログラムによるすべての方法(たとえば、ルーター自体のNATおよびファイアウォール)は、ネットワーク上で常に動作しているネットワークリソースへのアクセスを保護することに注意してください。Mikrotikネットワークリレー(この場合はLaurentモジュール)を統合することにより、これらの保護方法に加えて、ネットワーク上で必要なデバイスへのアクセスの「物理的なブロック」を簡単かつ便利に作成できます。これを実装する方法は?
保護されたデバイス(たとえば、会社に関するデータの個人アーカイブを持つ秘密ファイルサーバー)の電源は、Laurentモジュールリレーの1つ、たとえばリレー1に接続されます。たとえば、OS MikrotikaルーターでVPNサーバーを構成します。 。 Router Ocを使用すると、各VPNクライアントまたはクライアントグループごとに、サーバークライアントユーザーの個別のPPPプロファイル(PPPプロファイル)を柔軟に構成できます。たとえば、D_Ivanovという名前のVPNクライアント用に構成されたPPPプロファイルがあります。クライアント入力のログインとパスワード、および各PPPプロファイルのその他の可能なネットワーク設定のホストの設定に加えて、ルーターOSでは、実行可能スクリプトコードを直接配置できるPPPスクリプトの「on Up」および「on Down」オプションを設定できます。これらのフィールドに次のコードを入力します。
次に、ユーザー名とパスワード(第1レベルの保護)でVPNクライアントD_Ivanovのルーターに接続すると、5秒後に「on Up」に設定されたスクリプトが実行されます。 1「物理的保護」の2番目の段階である「秘密」ファイルサーバーのパワーが接続されています。サーバーの電源がオンになり、起動し、クライアントはVPNを介して「外部」にアクセスします。 VPNクライアントがトンネルを切断すると(セッションを終了するか、インターネットトラフィック違反によりセッションが切断されると)、「on Down」フィールドにある2番目のスクリプトがファイルサーバーの電源をオフにし、サーバーに物理的にアクセスできなくなります。これにより、サーバー(または他のデバイス、あなたが望むものは何でも)は常に稼働状態にあり(そして1日24時間パスワードクラッカーの潜在的に脆弱なターゲットになるため)、VPNクライアントアクセスの期間中のみ物理的にオンになります。この二重保護方法は非常に効果的ですすでに保護されたルーターの背後にあるアイドルデバイスに「近づいて」、そのモデルを見つけ、ポートにpingを送信することは単に不可能であり、動作する短時間でこれを行うことは非常に困難ですルーターへ)。もちろん、PPPプロファイルスクリプトの同じフィールドに、VPNクライアントの入り口に関するメッセージをメールまたは携帯電話に送信するコードを追加できます(特に、管理者にルーターのVPNサーバーをハッキングすることを通知しますが、秘密のファイルサーバーはまだ通知しません!)すぐに保護されます)。2.個々のネットワークセグメントのオン/オフを切り替えます。リレーまたは出力ラインを操作する機能を操作するとき(リレーまたはリレーブロックをそれらに接続できることを忘れないでください)、たとえば、ルーターの背後にあるドーターネットワークとサブネットを物理的にオン/オフにすることができます。 Laurent2モジュールには4つの内蔵リレーと12の出力ラインがあり、それらすべてを使用する(また、リレーまたはリレーブロックを出力ラインに接続する)と、16の出力が得られます。 Laurent112には、12個の既製の内蔵リレーが搭載されています。つまり、これらのLaurentモジュールの1つを使用すると、16個または12個のWi-Fiアクセスポイント、スイッチ、または同様のネットワークデバイスを個別に含めることができます。したがって、大規模なオフィスまたは企業全体のネットワークの動作を調整したり、オン/オフしたり、「ゲスト」ネットワーク、「ストリート」アクセスポイント、ネットワークブリッジポイントなどを物理的にリセットしたりできます。また、これはネットワークオペレーター/管理者ではなく、スケジュールまたは任意の条件下での自動モードのMikrotikルーターによって実行できます。たとえば、関数を使用してwifiアクセスポイントを有効にします。オンにならない、つまりpingに応答せず、クライアントを接続しない(これもスクリプトをチェックします)-電源をオフにして別のバックアップポイントなどをオンにします...これにより、トラフィック消費が制限され、特定のネットワークセグメントのセキュリティがさらに確保されます(例:通り)。3. Laurentモジュールの監視とMikrotikとのスケジュールされた統合Laurentモジュール自体は正確なタイムサーバーから時間を「読み取れない」ため、モジュール内のスケジュールされた作業は非常に限られています。モジュールは、自分自身のシステム時間にのみ依存できます。これにより、ボード自体への電力供給からカウントダウンが開始されます。ルーターMikrotikは、日付ごとに「実際の」毎日の時間で動作し、スクリプトまたは独自の「スケジューラー」でこの時間を追跡することにより、正確なスケジュールに従ってRouterOSで任意のアクションを実行できます(WINBOXでは/システムスケジューラータブで使用可能)。そこで、Laurentモジュールのサポート関数を使用するスクリプトを配置することができます(それらのロジックを設定することで、ルーターの起動時、希望する遅延での起動時、特定の時刻、1回または定期的な繰り返しで「起動」できます)。これらの機能を使用すると、LaurentモジュールのCATシステムに加えて、負荷と回線を管理できるだけでなく、RouterOS Mikrotikaでモジュールまたはその個々の要素のステータスを読み取ることもできます。次に、CATシステムの条件と同様の決定を行い、SMSを介してルーターの管理者とユーザーにメールアドレスや携帯電話番号へのイベントについて通知します。同時に、無料の機能を使用して、メールアドレスから携帯電話番号(sms.ruリソースなど)にメッセージを転送できます。 MikrotikからTelegramボットにデータを送信することもできます。インターネット上でこれを構成する方法に関する特別な指示があります。例として、以下はLaurentモジュールから完全なステータスを取得して便利な視覚的レポートを作成し、このレポートをユーザーのメールアドレスに転送するスクリプトです(Smail変数でユーザーアドレスを自分のものに置き換えることを忘れないでください)。メールレポート付きのLaurent2ステータスリクエストスクリプト # # Laurent2 c E-mail # ; # ; :global FuncMail; # - ; :local Smail "user@mail.ru"; # - ; ; :global FuncLaurent2Status; # - Laurent2; :local Sadr "192.168.1.101"; # - IP- ; :local Sport "80"; # - http-, :local Stype "all"; # - :local keytype [:toarray "systime, rele, in, out, adc1, adc2, count1, count2, count3, count4, temp, pwm"]; :local Tsend ""; ; # Laurent; ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Lport=$Sport Type=$Stype]; ; # Mtext ; :local Mtext; :local Stext; :local row; :foreach i in=$keytype do={ :set row ($Lanswer->$i); :set Stext ("$i"." = "."$row"."\n"); :set Mtext ("$Mtext"."$Stext")} ; # - Reletext ; :set Tsend ($Lanswer->"rele"); :local rezult; local Saction; :local Reletext; :for i from=1 to 4 do {:set rezult [:pick $Tsend ($i-1) $i]; :if (rezult="0") do={:set Saction "< >"} else={:set Saction "< >"} :set Reletext ("$Reletext"." №"."$i"." "."$Saction"."\n")} ; # ; :log info ("STATUS Laurent2 module IP "."$Sadr"."\n"); :log info $Mtext; :log info ""; :log info $Reletext; :set Mtext ("Router "."$[/system identity get name]"." about STATUS Laurent2 module IP "."$Sadr"."\n"."\n"."$Mtext"."\n"."$Reletext"); [$FuncMail Email=$Smail Mailtext=$Mtext]
上記の例のスクリプトコードを実行すると、次の種類と内容のメールがmail.ruメールサーバーに到着
します。スクリプトコードの特定の例を改善して、自由に拡張できます。MikrotikおよびLaurent注入を実装する可能性は、上記の例に限定されません。ユーザーの特定のタスクに応じて、ほとんどすべてのソリューションを作成することは非常に現実的です。おわりに
Laurent2およびLaurent112モジュールをサポートするスクリプトライブラリの最初のバージョンの操作中に、エラーが検出されたり、ユーザーがコメントや提案を受け取ったりする可能性があります。ライブラリスクリプトを改善するために、このことについて彼に知らせてくれれば、著者は喜んでいるでしょう。また、基本的に、JEROMEインターネットモジュールなど、ネットワークRJ45インターフェイスを持つ他のKernelChipモジュールのサポートを作成することもできます。インターネットモジュールLaurent2およびLaurent112を管理するためのスクリプトライブラリのダウンロードMikrotik Router OSからのインターネットモジュールの管理に関するブログ
02/01/2018 Serkov Sergey Vladimirovichserkov1375@mail.ru