العمل عن بعد في المكتب. RDP ، Port Knocking ، Mikrotik: بسيط وآمن

نظرًا لوباء فيروس covid-19 والحجر الصحي العام في العديد من البلدان ، فإن الطريقة الوحيدة للعديد من الشركات لمواصلة العمل هي الوصول عن بُعد إلى أماكن العمل عبر الإنترنت. هناك العديد من الطرق الآمنة نسبيًا للعمل عن بُعد - ولكن نظرًا لحجم المشكلة ، هناك حاجة إلى طريقة بسيطة لأي مستخدم للاتصال عن بُعد بالمكتب ودون الحاجة إلى إعدادات إضافية وتفسيرات واستشارات مملة وتعليمات طويلة. هذه الطريقة محبوبة من قبل العديد من المسؤولين RDP (بروتوكول سطح المكتب البعيد). الاتصال مباشرة بمكان العمل عبر RDP يحل مشكلتنا بشكل مثالي ، باستثناء ذبابة واحدة كبيرة في المرهم - إبقاء منفذ RDP مفتوحًا للإنترنت أمر غير آمن للغاية. لذلك ، أقترح أدناه طريقة حماية بسيطة ولكنها موثوقة.العمل عن بعد في المكتب. RDP ، Port Knocking ، Mikrotik: بسيط وآمن

نظرًا لأنني غالبًا ما أصادف مؤسسات صغيرة حيث يتم استخدام أجهزة Mikrotik للوصول إلى الإنترنت ، فسيتم توضيح كيفية تنفيذ ذلك على Mikrotik أدناه ، ولكن يتم تنفيذ طريقة حماية Port Knocking بسهولة على أجهزة أخرى من الدرجة الأعلى مع إعدادات جهاز توجيه إدخال مماثلة وجدار ناري .

باختصار حول Port Knocking. الحماية الخارجية المثالية لشبكة متصلة بالإنترنت هي عندما يتم إغلاق جميع الموارد والمنافذ من الخارج بواسطة جدار حماية. وعلى الرغم من أن جهاز التوجيه الذي يحتوي على مثل هذا الجدار الناري المكون لا يتفاعل بأي شكل من الأشكال مع الحزم الواردة من الخارج ، فإنه يستمع إليها. لذلك ، يمكنك تكوين جهاز التوجيه بحيث عند تلقي تسلسل (رمز) معين من حزم الشبكة على منافذ مختلفة ، فإنه (جهاز التوجيه) الخاص بـ IP من حيث أتت الحزم يقطع الوصول إلى موارد معينة (المنافذ ، البروتوكولات ، إلخ.).

الآن إلى العمل. لن أفعل وصفًا مفصلاً لإعدادات جدار الحماية على Mikrotik - الإنترنت مليء بالمصادر عالية الجودة لهذا الغرض. من الناحية المثالية ، يحظر جدار الحماية جميع الحزم الواردة ، ولكن

/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related

يسمح بحركة المرور الواردة من الاتصالات القائمة ذات الصلة.
الآن قمنا بإعداد Port Knocking على Mikrotik:

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

الآن بمزيد من التفصيل:

أول قاعدتين

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules

حظر الحزم الواردة من عناوين IP المدرجة في القائمة السوداء أثناء فحص المنفذ ؛

القاعدة الثالثة:

add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

يضيف ip إلى قائمة المضيفين الذين قاموا بإجراء الضربة الأولى الصحيحة على المنفذ الصحيح (19000) ؛
القواعد الأربعة التالية هي:

add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

إنشاء منافذ فخ لأولئك الذين يرغبون في فحص المنافذ الخاصة بك ، وإذا تم اكتشاف مثل هذه المحاولات ، قم بوضع عنوان IP الخاص بهم في القائمة السوداء لمدة 60 دقيقة ، حيث لن تمنح القاعدتان الأوليان هؤلاء المضيفين الفرصة للطرق على المنافذ الصحيحة ؛

القاعدة التالية:

add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

يضع ip في القائمة المسموح بها لمدة دقيقة واحدة (بما يكفي لإنشاء اتصال) ، حيث تم إجراء الضربة الصحيحة الثانية على المنفذ المطلوب (1) ؛

الأمر التالي:

move [/ip firewall filter find comment=RemoteRules] 1

ينقل قواعدنا إلى أعلى سلسلة معالجة جدار الحماية ، نظرًا لأنه على الأرجح سيكون لدينا بالفعل قواعد رفض مختلفة تم تكوينها والتي ستمنع القواعد التي أنشأناها حديثًا من العمل. تبدأ القاعدة الأولى في Mikrotik من الصفر ، ولكن على جهازي كان الصفر مشغولاً بقاعدة مضمنة وكان من المستحيل نقلها - لقد نقلتها إلى 1. لذلك ، ننظر إلى إعداداتنا - حيث يمكنك نقلها وحدد الرقم المطلوب.

الإعداد التالي:

/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

يقوم هذا الأمر بإعادة توجيه منفذ 33890 المُختار عشوائيًا إلى منفذ RDP القياسي 3389 وعنوان IP الخاص بالكمبيوتر أو خادم المحطة الطرفية المطلوب. نُنشئ قواعد مماثلة لجميع الموارد الداخلية اللازمة، مع الحرص على استخدام منافذ خارجية غير قياسية (ومختلفة). وبطبيعة الحال، يجب أن تكون عناوين IP الخاصة بالموارد الداخلية إما ثابتة أو مُخصصة عبر بروتوكول DHCP. الخادم.

بعد إعداد جهاز Mikrotik الخاص بنا، نحتاج إلى إجراء سهل الاستخدام للاتصال بشبكة RDP الداخلية الخاصة بنا. بما أن هذا الأمر يخصنا بشكل أساسي. Windows ثم نقوم بإنشاء ملف bat بسيط ونسميه StartRDP.bat:

1.htm
1.rdp

على التوالي 1.htm يحتوي على الكود التالي:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
нажмите обновить страницу для повторного захода по RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

يحتوي على رابطين للصور التخيلية الموجودة في my_router.sn.mynetname.net - نأخذ هذا العنوان من نظام Mikrotik DDNS بعد تمكينه في Mikrotik: انتقل إلى IP-> القائمة السحابية - حدد خانة الاختيار DDNS Enabled ، انقر فوق تطبيق وانسخ اسم نظام أسماء النطاقات الخاص بجهاز التوجيه الخاص بنا. ولكن هذا ضروري فقط عندما يكون عنوان IP الخارجي لجهاز التوجيه ديناميكيًا أو عندما يتم استخدام تكوين مع العديد من موفري الإنترنت.

المنفذ الموجود في الرابط الأول: 19000 يتوافق مع المنفذ الأول الذي تحتاج إلى النقر عليه ، في الثاني ، على التوالي ، إلى المنفذ الثاني. يوجد بين الروابط تعليمات قصيرة توضح ما يجب فعله إذا انقطع اتصالنا فجأة بسبب مشاكل الشبكة القصيرة - نقوم بتحديث الصفحة ، وإعادة فتح منفذ RDP لنا ​​لمدة دقيقة واحدة واستعادة جلستنا. أيضًا ، يشكل النص الموجود بين علامات img تأخيرًا صغيرًا للمتصفح ، مما يقلل من احتمالية تسليم الحزمة الأولى إلى المنفذ الثاني (1) - حتى الآن لم تحدث مثل هذه الحالات في أسبوعين من الاستخدام (16000) الناس).

يأتي بعد ذلك ملف 1.rdp ، والذي يمكننا تكوينه للجميع أو بشكل منفصل لكل مستخدم (لقد فعلت ذلك - من الأسهل قضاء 15 دقيقة إضافية بدلاً من بضع ساعات في استشارة أولئك الذين لم يتمكنوا من اكتشاف ذلك)

screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain

من الإعدادات الشيقة هنا استخدام multimon: i: 1 - يتضمن ذلك استخدام شاشات متعددة - يحتاج البعض إلى هذا ، لكنهم لن يفكروا في تشغيله.

نوع الاتصال: i: 6 واكتشاف الشبكة تلقائيًا: i: 0 - نظرًا لأن غالبية الإنترنت تزيد عن 10 ميجابت في الثانية ، قم بتشغيل نوع الاتصال 6 (شبكة محلية 10 ميجابت في الثانية وما فوق) وقم بإيقاف تشغيل اكتشاف الشبكة ، لأنه إذا كان افتراضيًا (تلقائي) ، ثم حتى زمن انتقال صغير نادر للشبكة يضبط جلستنا تلقائيًا على سرعة بطيئة لفترة طويلة ، مما قد يؤدي إلى تأخيرات ملحوظة في العمل ، خاصة في برامج الرسومات.

تعطيل خلفية الشاشة: i: 1 - تعطيل صورة سطح المكتب
اسم المستخدم: s: myuserlogin - نحدد تسجيل دخول المستخدم ، نظرًا لأن جزءًا كبيرًا من مستخدمينا لا يعرفون معلومات تسجيل الدخول الخاصة بهم
domain: s: mydomain - حدد المجال أو اسم الكمبيوتر

ولكن إذا أردنا تبسيط مهمتنا في إنشاء إجراء اتصال ، فيمكننا أيضًا استخدام PowerShell - StartRDP.ps1

Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890

كما سنتناول بإيجاز عميل بروتوكول سطح المكتب البعيد (RDP) في Windowsلقد قطعت مايكروسوفت شوطًا كبيرًا في تحسين البروتوكول ومكونات الخادم والعميل، حيث قامت بتطبيق العديد من الميزات المفيدة، مثل العمل مع تقنية العرض ثلاثي الأبعاد للأجهزة، وتحسين دقة الشاشة لشاشتك، ودعم الشاشات المتعددة، وغير ذلك. ولكن بطبيعة الحال، تم تنفيذ كل شيء مع مراعاة التوافق مع الإصدارات السابقة، وإذا كان العميل Windows 7، وجهاز الكمبيوتر البعيد Windows 10عندها سيعمل بروتوكول سطح المكتب البعيد (RDP) باستخدام الإصدار 7.0. ولكن لحسن الحظ، من الممكن تحديث إصدارات RDP إلى إصدارات أحدث - على سبيل المثال، يمكنك ترقية إصدار البروتوكول من 7.0 (Windows 7) إلى 8.1. لذلك، ولتسهيل الأمر على العملاء، نحتاج إلى ترقية إصدار الخادم قدر الإمكان، وتوفير روابط للترقية إلى إصدارات جديدة من عملاء بروتوكول RDP.

نتيجة لذلك ، لدينا تقنية بسيطة وآمنة نسبيًا للاتصال عن بُعد بجهاز كمبيوتر يعمل أو خادم طرفي. ولكن من أجل اتصال أكثر أمانًا ، يمكن جعل طريقة Port Knocking الخاصة بنا أكثر صعوبة للهجوم بعدة أوامر من حيث الحجم ، عن طريق إضافة منافذ للتحقق - يمكنك إضافة 3,4,5,6،XNUMX،XNUMX،XNUMX ... منفذ وفقًا لنفس المنطق ، وفي هذه الحالة سيكون الاقتحام المباشر لشبكتك شبه مستحيل.

ملفات فارغة لإنشاء اتصال عن بعد بـ RDP.

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster