Mikrotik:小さなユーティリティ。 パート2

これは、RouterOSの小さな機能/実装の次のバッチです。



注目画像


今日は次のことについてお話します:

1) 1つ/複数を除くすべてのサイトを閉じる方法

2) 「人間」のVPN接続通知を受信する方法

3) v6.36の重要な革新、その後はL7を忘れることができる



面白い? それから猫をお願いします。






1つ/複数を除くすべてのサイトを閉じる方法



L7プロトコルを使用する必要があることをすぐに言わなければなりません。 難しいように思われます。「すべて」以外のルールを適用するだけです。



しかし、いや、それは動作しません。 必要に応じて、自分でチェックしてください。 どうする 必要なリソースを許可する1つのフィルターと、他のすべてを禁止するフィルター。

L7の許可には、 ^。+(Some_site | another some_site)という形式があります。

禁止はより困難です。 ^。+ $ですべてをフィルタリングできます。 ただし、HTTPプロトコルをURIでフィルタリングすることをお勧めしますつまり、- ^。+(HTTP \ / [0-2])。+ $です。

残念ながら、ターミナルを通じて、必要なL7フィルターが空の正規表現フィールドに追加されます。 代わりにWinboxを使用してください。

/ip firewall layer7-protocol add name=Allow regexp="^.+(-_|_-_).*$" /ip firewall layer7-protocol add name=Deny regexp="^.+(HTTP\/[0-2]).+$"
      
      





Mikrotik wikiによると、フィルター自体を2つ、「許可」と「拒否」で追加します。

 /ip firewall filter add chain=forward protocol=tcp out-interface=_ layer7-protocol=Allow action=accept /ip firewall filter add chain=forward protocol=tcp in-interface=_ layer7-protocol=Allow action=accept /ip firewall filter add chain=forward protocol=tcp out-interface=_ layer7-protocol=Deny action=reject reject-with=tcp-reset /ip firewall filter add chain=forward protocol=tcp in-interface=_ layer7-protocol=Deny action=reject reject-with=tcp-reset
      
      





厳密に定義されたサイトを許可する必要がある場合の小さな説明:サイトに関係する他のリソースを確認します。 たとえば、カードをロードできます。 Operaを使用してネットをサーフィンし、それに含まれるDevTools、エラーを検出するための「コンソール」タブを使用します。



重要な説明 :バージョン6.36以降では、記事の3番目の段落を使用してこれを実装できます。




VPN接続に関する人間の通知を受け取る方法



「ロギング」セクションでMikrotik通知に遭遇した人は誰でも、通知が不十分であり、非常に単純な場合にのみ適していることを知っています。 私は、通知ができるだけ多くの有用な情報を伝えることを望んでいました。 これは実装が非常に簡単であることが判明しました。PPPプロファイルの接続/切断にはスクリプトが必要です。 以下に、 On UpおよびOn Downのスクリプトを示しますが、最初にいくつかの落とし穴があります。

1)両方のスクリプトに事前定義された変数があります- それらについての詳細

2)ハイフンを含む変数は引用符で囲む必要があります。 たとえば、 $ "caller-id"です。 それ以外の場合は機能しません!

3)Mikrotikはテキストで電子メールメッセージを送信するため、タグはなく、ハイパーリンクは明示的にのみ挿入します。

4)メッセージ本文で 、キャリッジを新しい行の先頭に移動するために\ r \ nが使用されます。

5)この段階(バージョン6.33.2)では、一部のメールクライアントおよびWebベースのインターフェースでメッセージのエンコードに問題があります。



スクリプトコードは最大限に簡素化されています。 「すぐに」使用できるように、「 ツール」→「メール 」ブランチを構成しておく必要があります。

スクリプトオンアップ
 :local email "__" #####   /tool e-mail send to=$email subject=" $user   VPN" body=" $user   $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service]  $[/system clock get time].\r\nIP-  - $"caller-id".\r\n  IP  - http://apps.db.ripe.net/search/query.html?searchtext=$"caller-id""
      
      





通知タイプ






スクリプトオンダウン
 :local email "__" #####   /tool e-mail send to=$email subject=" $user   VPN" body=" $user   $[/system clock get time]."
      
      





通知タイプ






接続ごとに異なるプロファイルを使用する場合(これを強くお勧めします)、ほぼすべてのクライアントに対してスクリプトをスタイルできます。 たとえば、予定されているVPN切断の通知を受け取らないように時間をチェックするのが便利です。




アドレスリストのドメイン名



デザートの場合:バージョンv6.36以降、ドメイン名をアドレスリストに追加できます!

*)ファイアウォール-ドメイン名をアドレスリストに追加できます(解決されたアドレスの動的エントリが指定されたリストに追加されます)。


あなたがまだ私のように喜びのためにジャンプしていないなら、それは始める時です。 この機能により、制限のある高価なL7の使用をほぼ完全に回避できます。

例として、異なるサイトを異なるゲートウェイにルーティングします。 これは、わが国の現実に関連しています。 mail.google.comおよびe.mail.ruメールサーバーのWebインターフェイスをまとめます。 OVPN経由でGoogleメールに行き、L2TP経由でメールに行きます。

 /ip firewall address-list add list=ovpn address=mail.google.com /ip firewall address-list add list=l2tp address=e.mail.ru /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=ovpn action=mark-routing new-routing-mark=ovpn-route /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=l2tp action=mark-routing new-routing-mark=l2tp-route /ip route add dst-address=0.0.0.0/0 gateway=ovpn-out1 distance=1 routing-mark=ovpn-route /ip route add dst-address=0.0.0.0/0 gateway=l2tp-out1 distance=1 routing-mark=l2tp-route
      
      





したがって、特定のシートに目的の名前を追加するとき、実際に接続が確立されるチャネルを決定します。

多くの人にとって便利な別の例は、すべてのTCP接続をOVPNゲートウェイに転送し、rkn.gov.ruをデフォルトゲートウェイに転送することです。

 /ip firewall address-list add list=RKN address=rkn.gov.ru /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=RKN action=accept /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address=!192.168.0.0/16 action=mark-routing new-routing-mark=ovpn-route /ip route add dst-address=0.0.0.0/0 gateway=ovpn-out1 distance=1 routing-mark=ovpn-route
      
      





重要な注意 :Fasttrackを使用する場合は、その説明を必ずご覧ください。 すなわち:

Fasttrackedパケットはファイアウォール、接続追跡、シンプルキュー、親=グローバルのキューツリー、IPトラフィックフロー(6.33で制限が削除されました)、IPアカウンティング、IPsec、ホットスポットユニバーサルクライアント、VRF割り当てをバイパスするため、確認するのは管理者次第ですfasttrackは他の構成に干渉しません。


つまり、このタイプの接続はファイアウォール、パケット処理、キューなどに到達しません。




その他の部品




All Articles