WebプロキシはHTTPでのみ動作するため、簡単なタスクのようであり、迅速なグーグルにより、Layer7を介した接続をブロックする決定に至りました。 そして、例はありましたが、本来の動作-動作しませんでした。
upd:このソリューションは、HTTPを介したファイルリクエストがサイトのHTTPSから送信された場合にのみ機能します。 ( iaon )( drsmoll )
その結果、 mp3-tut.netを使用した例は機能し ますが、 www.nasa.gov / connect / sounds / index.htmlを使用すると機能し ません 。
したがって、Mikrotik Layer7の最初のリンクはWiki-Mikrotikにつながります。
レイヤー7が機能するためには、ルーターが動作する正規表現を入力する必要があることがわかります。 POSIX互換の正規表現の使用に関する注意事項もあります。
最初の正規表現オプションの1つ:
^.+(exe|mp3|mpeg).*$
動作しません! すべてのダウンロードがブロックされているわけではありません。名前または拡張文字があるクエリ行で、サイトがブロックされている場合があります。
次に、Googleのリストの最初の3ページの多くのサイトがチェックされました。 そして、私は結論に達しました-正規表現を選ぶべきです。
そして再びグーグルと検索。 その結果、素晴らしいサイトに出会いました。
http://web-sniffer.net/
https://regex101.com/
1つ目は、ファイルをダウンロードするためにどのリクエストが送信されるかを示します。 この正規表現の2番目は一致と一致します。
その結果、私は次のオプションに到達しました:
GET .*(\.exe|\.bat|\.reg|\.cmd|\.scr|\.vbs|\.vbs|\.ws|\.wsf|\.wsc|\.apk)[^a-zA-Z0-9].*HTTP.*\n
詳細に検討してください:
- GET-example.comで何かに対するリクエストが発生する行の先頭
- * -任意の数の文字
- (\ .exe | \ .bat | \ .reg | \ .cmd | \ .scr | \ .vbs | \ .vbs | \ .ws | \ .wsf | \ .wsc | \ .apk) -探しているもののリスト
- * -任意の数の文字
- [^ a-zA-Z0-9] -記号、 ^ = az、AZ、0-9のセットには含まれません
- 。* HTTP。* \ N-任意の文字で囲まれたHTTP ( HTTP。*オプション)、および\ n-改行
[^ a-zA-Z0-9]を持つ最後から2番目の段落は、非制御文字を許可するために使用されます。例: php.net/manual/ru/function.exec.php
-
Connect to 72.52.91.14 on port 80 ... ok
GET /manual/ru/function .exec.php HTTP/1.1
Host: php.net
-
Connect to 72.52.91.14 on port 80 ... ok
GET /manual/ru/function .exe.php HTTP/1.1
Host: php.net
ルールは2番目の場合にのみ適用されます。
はい、 .extensionがあるGET行。 落ちます。 しかし、私の場合、これで十分です。 ユーザーは文句を言いませんでした。 そして、これらのルールを好きなように補完できます。
次に、すべてが正常に機能するように、ファイアウォールのルールを作成します。
upd:-DROPの代わりにREJECT-TCP RESETを指定します。 この場合、ブラウザは「接続のリセット」という応答を受け取ります。 ルールが機能していたページまたはフレームのロードをすぐに拒否できます。これにより、ロードが高速化されます。 ( AcidVenomヒントをありがとう)
AllowAllリストには、ルールが適用されないIPアドレスが含まれています。
Layer7正規表現セットの確認:
以上です!