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

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

نظرًا لأنني غالبًا ما ألتقي بالمؤسسات الصغيرة حيث يتم استخدام أجهزة Mikrotik للوصول إلى الإنترنت ، فسيتم عرض أدناه كيفية تنفيذ ذلك على Mikrotik ، ولكن طريقة حماية 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 في قائمة المسموح بها لمدة دقيقة واحدة (بما يكفي لإنشاء اتصال) ، حيث يتم إجراء الضربة الصحيحة الثانية على المنفذ المطلوب (16000) ؛

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

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 ، فإننا ننشئ ملفًا مضربًا بسيطًا نسميه 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 - نأخذ هذا العنوان من نظام DDNS من Mikrotik ، بعد تمكين هذا مسبقًا في Mikrotik الخاص بنا: انتقل إلى IP-> قائمة السحابة - تحقق من مربع الاختيار DDNS ممكّن ، وانقر فوق تطبيق و انسخ اسم DNS الخاص بجهاز التوجيه. ولكن هذا ضروري فقط عندما يكون عنوان IP الخارجي للموجه ديناميكيًا أو يتم استخدام تكوين مع العديد من موفري الإنترنت.

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

التالي هو ملف 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 و Networkautodetect: 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: لقد قطعت MS شوطًا طويلاً لتحسين البروتوكول وجانب الخادم والعميل الخاص به ، ونفذت العديد من الميزات المفيدة - مثل العمل مع الأجهزة ثلاثية الأبعاد ، وتحسين دقة الشاشة لشاشتك ، والشاشات المتعددة ، والمزيد. ولكن بالطبع ، يتم تنفيذ كل شيء في وضع التوافق مع الإصدارات السابقة وإذا كان العميل هو Windows 7 والكمبيوتر الشخصي البعيد هو Windows 10 ، فإن RDP سيعمل باستخدام الإصدار 7.0 من البروتوكول. ولكن الفائدة هي أنه يمكنك ترقية إصدارات RDP إلى إصدارات أحدث - على سبيل المثال ، يمكنك ترقية إصدار البروتوكول من 7.0 (Windows 7) إلى 8.1. لذلك ، من أجل راحة العملاء ، من الضروري زيادة إصدار جانب الخادم إلى أقصى حد ، بالإضافة إلى التخلص من الروابط للترقية إلى الإصدارات الجديدة من عملاء بروتوكول RDP.

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

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

All Articles