私は、Mikrotik を使用してネットワークとその背後から「覗く」サービスを外部攻撃から保護するためのシンプルで効果的な方法をコミュニティと共有したいと考えています。 つまり、Mikrotik でハニーポットを組織するためのたった XNUMX つのルールです。
そこで、外部 IP を備えた小規模オフィスがあり、その背後に従業員がリモートで作業するための RDP サーバーがあると想像してみましょう。 もちろん、最初のルールは、外部インターフェイスのポート 3389 を別のポートに変更することです。 しかし、これは長くは続かず、数日後には、ターミナル サーバーの監査ログに、未知のクライアントからの XNUMX 秒あたり数件の認証失敗が記録され始めます。
別の状況では、Mikrotik の背後にアスタリスクが隠されています (もちろん 5060 udp ポート上ではありません)。数日後にはパスワード検索も始まります... はい、はい、わかっています、fail2ban が私たちのすべてですが、それでもやらなければなりませんそれに取り組みます...たとえば、私は最近ubuntu 18.04にインストールしましたが、デフォルトのfail2banには、同じubuntuディストリビューションの同じボックスにあるアスタリスクの現在の設定が含まれていないことを発見して驚きました...そして、クイック設定をグーグルで検索してください既製の「レシピ」は機能しなくなり、リリースの数は年々増加し、古いバージョンの「レシピ」を含む記事は機能しなくなり、新しいバージョンはほとんど表示されなくなりました...でも、余談です...
では、ハニーポットとは簡単に言うと何ですか - ハニーポットとは、この場合、外部 IP 上の一般的なポートであり、外部クライアントからこのポートへのリクエストは、src アドレスをブラックリストに送信します。 全て。
/ip firewall filter
add action=add-src-to-address-list address-list="Honeypot Hacker"
address-list-timeout=30d0h0m chain=input comment="block honeypot ssh rdp winbox"
connection-state=new dst-port=22,3389,8291 in-interface=
ether4-wan protocol=tcp
add action=add-src-to-address-list address-list="Honeypot Hacker"
address-list-timeout=30d0h0m chain=input comment=
"block honeypot asterisk" connection-state=new dst-port=5060
in-interface=ether4-wan protocol=udp
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
"Honeypot Hacker"
ether22-wan 外部インターフェイスの一般的な TCP ポート 3389、8291、4 に関する最初のルールは、「ゲスト」IP を「ハニーポット ハッカー」リストに送信します (ssh、rdp、winbox のポートは事前に無効にするか、他のポートに変更します)。 5060 つ目は、人気のある UDP XNUMX で同じことを行います。
ルーティング前の段階の XNUMX 番目のルールは、srs アドレスが「ハニーポット ハッカー」に含まれている「ゲスト」からのパケットをドロップします。
自宅の Mikrotik と XNUMX 週間協力した結果、「ハニーポット ハッカー」のリストには、私のネットワーク リソースを「乳房につかみ取る」ことを好む者の IP アドレスが約 XNUMX 件含まれていました (自宅には私専用の電話、メール、 nextcloud、rdp).ブルートフォース攻撃が止まり、至福の時が訪れました。
職場では、すべてがそれほど単純であることが判明したわけではなく、ブルートフォースパスワードを使用してRDPサーバーを突破し続けています。
どうやら、ポート番号はハニーポットがオンになるずっと前にスキャナーによって決定されていたようで、検疫中に 100 人を超えるユーザー (そのうち 20% が 65 歳以上) を再構成するのはそれほど簡単ではありません。 ポートを変更できない場合には、小さな有効なレシピがあります。 同様のものをインターネットで見たことがありますが、追加の追加と微調整が必要です。
ポートノッキングを構成するためのルール
/ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist
address-list-timeout=15m chain=forward comment=rdp_to_blacklist
connection-state=new dst-port=3389 protocol=tcp src-address-list=
rdp_stage12
add action=add-src-to-address-list address-list=rdp_stage12
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage11
add action=add-src-to-address-list address-list=rdp_stage11
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage10
add action=add-src-to-address-list address-list=rdp_stage10
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage9
add action=add-src-to-address-list address-list=rdp_stage9
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage8
add action=add-src-to-address-list address-list=rdp_stage8
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage7
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage6
add action=add-src-to-address-list address-list=rdp_stage6
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage5
add action=add-src-to-address-list address-list=rdp_stage5
address-list-timeout=4m chain=forward connection-state=new dst-port=
3389 protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage4
address-list-timeout=4m chain=forward connection-state=new dst-port=
3389 protocol=tcp src-address-list=rdp_stage3
add action=add-src-to-address-list address-list=rdp_stage3
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage2
add action=add-src-to-address-list address-list=rdp_stage2
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp src-address-list=rdp_stage1
add action=add-src-to-address-list address-list=rdp_stage1
address-list-timeout=4m chain=forward connection-state=new dst-port=3389
protocol=tcp
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
rdp_blacklist
4 分間で、リモート クライアントは RDP サーバーに対して 12 件の新しい「リクエスト」のみを行うことができます。 1 回のログイン試行は 4 ~ 12 回の「リクエスト」です。 15回目の「リクエスト」で、XNUMX分間ブロックします。 私の場合、攻撃者はサーバーのハッキングをやめず、タイマーに合わせて非常にゆっくりとハッキングを実行しました。そのような選択の速度により、攻撃の有効性はゼロになります。 同社の従業員は、講じられた措置により、仕事にほとんど不便を感じていません。
もう一つの小さなトリック
このルールは、スケジュールに従って午前 5 時にオンになり、実際の人々が確実に寝ている午前 XNUMX 時にオフになりますが、自動ピッカーは引き続き起きています。
/ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist
address-list-timeout=1w0d0h0m chain=forward comment=
"night_rdp_blacklist" connection-state=new disabled=
yes dst-port=3389 protocol=tcp src-address-list=rdp_stage8
すでに 8 回目の接続で、攻撃者の IP は XNUMX 週間ブラックリストに登録されます。 美しさ!
さて、上記に加えて、Mikrotik をネットワーク スキャナーから保護するための実際のセットアップを記載した Wiki 記事へのリンクを追加します。
私のデバイスでは、この設定は上記のハニーポット ルールと連携して機能し、それらをうまく補完します。
UPD: コメントで示唆されているように、ルーターの負荷を軽減するために、パケット ドロップ ルールが RAW に移動されました。
出所: habr.com