مادة نظم تشغيل شبكية 2 المحاضرة الخامسة الاتصال عن بعد Remote Connection إعداد المهندس وسام المحمود
أولاً : مقدمة خدمات الإنترنت Internet Services نعرف خدمات الإنترنت بأنها أي خدمة تقدمها شبكة تعتمد على البروتوكول TCP/IP فعندما تكون الخدمات داخلية نطلق على الشبكة اسم Intranet وعندما تكون خارجية تسمى Internet البروتوكولين TCP وIP هما بروتوكولين من مجموعة بروتوكولات تدعى بروتوكولات الإنترنت تستخدم خدمات الإنترنت الشكل الآمن أو غير الآمن للبروتوكول TCP/IP وأشهر هذه الخدمات (البروتوكولات) Telnet, FTP, SMTP, HTTP, ICMP, ARP, DNS, ssh, scp, sftp
جميع هذه الخدمات لا يمكنها أن تتغاضى الـ TCP/IP لأنه يؤمن لها بالتعاون مع نظام التشغيل بروتوكول ذو صيغة مستقلة أي كمبيوتر (أياً كان نظام تشغيل الذي يستخدمه) يمكنه الاتصال مع أي كمبيوتر آخر في الشبكة باستخدام البروتوكولين TCP وIP معاً لتأسيس أو إصلاح الاتصال وتهيئة كيفية نقل المعلومات تعتبر أنظمة لينوكس من أفضل الأنظمة التي تمكننا من استخدام الحواسيب بصورة جبارة
ثانياً : خدمات غير آمنة Less secure services
(TELNET) استخدام telnet لعرض حالة جدار النار Service iptables status إيقاف تشغيل الـ Firewall نهائياً Service iptables stop ونستخدم التعليمة لتشغيله Service iptables restart (or start)
باستخدام telnet يتم إرسال النص عبر الشبكة بشكل واضح بما فيه كلمات السر فهي خدمة غير آمنة لاستخدام telnet افتح الـ Terminal واكتب telnet 192.168.0.1 أو أدخل Hostname بدلاً من الـ IP بشرط أن تضيف الاسم والعنوان إلى الملف Hosts telnet hostname سيطلب منك إدخال اسم المستخدم وكلمة السر لذلك يجب أن يكون لديك حساب على الحاسب المطلوب
كيفية إضافة حساب المعلومات المتعلقة بالمستخدم : User name UId : الأرقام من 0 حتى 499 محجوزة للجذر root ولتطبيقات النظام لذلك أول مستخدم جديد يأخذ الرقم 500 GID : من 0 – 499 محجوز للنظام وتطبيقاته أول مجموعة جديدة تأخذ الرقم 500 Password كلمة السر Home Directory مجلد المستخدم الرئيسي Expire Date تاريخ انتهاء العمل بكلمة السر الفترة الزمنية لتعديل كلمة السر MAX ,Min الفترة الزمنية لإظهار رسالة تحذيرية قبل انتهاء العمل بكلمة السر تاريخ انتهاء العمل بالحساب Expire Date Of account
استخدم الواجهة REdhat User Manager لإضافة مستخدم جديد يمكن ضبط جميع إعدادات المستخدم أنفة الذكر باستخدام هذه الأداة
للتأكد من تشغيل الخدمة Telnet اذهب وحرر الملف /etc/xinetd.d/telnet على الحاسب المراد التحكم به عن بعد وليس على الجهاز الذي أتحكم منه تأكد من وضع القيمة NO بجانب الخانة Disable للتأكد من صحة تعديل الملف اكتب chkconfig –list في النافذة Terminal فيعرض قائمة بالخدمات المتوفرة ويضع on بجنب المشغلة وOff بجنب المعطلة أعد تشغيل الخدمة xinetd Service xinetd restart
بارامترات Telnet المعامل (-l) المعامل (-A) telnet hostname –l username المعامل (-A) نضع بعده الـ Hostname للحاسب المراد الدخول إليه يمكن الاستغناء عنه telnet –a hostname –l username
استخدمنا التعليمة telnet للدخول إلى الحاسب 10 استخدمنا التعليمة telnet للدخول إلى الحاسب 10.0.0.1 بواسطة الاسم server واسم المستخدم serv عندما استلمنا التحكم تغير سطر محرر الأوامر Terminal حيث كان [root@RedHat root]# وهذا يعني أننا نعمل على Terminal محلي على جهاز محلي RedHat وقد سجل الدخول بالحساب root@RedHat وهو حساب محلي ومكان التنفيذ هو المجلد /root الخاص بالمستخدم root@RedHat ثم انتقل التحكم إلى الجهاز البعيد سطر محرر الأوامر أصبح [serv@RedHat serv]$
إن تطابق الاسمين RedHat على كلا الجهازين هو صدفة (أو بسبب أن المثال مطبق على برنامج vmware والجهازين الذين لنتقل التحكم من أحدهما إلى الآخر نسختان متطابقتان توفيراً للوقت) اسم المستخدم البعيد هو serv ومكان التنفيذ هو المجلد الخاص بالمستخدم serv ومساره الحقيقي هو /home/serv طبعاً على الحاسب البعيد للخروج من التنفيذ telnet استخدم التعليمة exit
Rsh remote shell تقنية غير مشفرة (غير آمنة) لتنفيذ تعليمات على حاسب بعيد Rsh remotehost shellCommand المعامل (-l) نستخدم هذا البارامتر مع التعليمة rsh لوضع اسم الحساب المستخدم لدخول الجهاز Rsh hostname –l username
للتأكد من تشغيل الخدمة rsh اذهب وحرر الملف /etc/xinetd.d/RSH على الحاسب المراد التحكم به عن بعد وليس على الجهاز الذي أتحكم منه تأكد من وضع القيمة NO بجانب الخانة Disable للتأكد من صحة تعديل الملف اكتب chkconfig –list في النافذة Terminal فيعرض قائمة بالخدمات المتوفرة ويضع on بجنب المشغلة وOff بجنب المعطلة أعد تشغيل الخدمة xinetd Service xinetd restart
rlogin Remote login program يمكننا من الدخول إلى حاسب والتحكم به عن بعد عن طريق ربط Terminal خاصتي بالـ Terminal الخاصة بالحاسب البعيد هو بروتوكول غير آمن مشابهة تماماً لـtelnet لكنها تمكن من إنشاء علاقة موثوقة بين الأجهزة rlogin hostname rlogin hostname –l username
للتأكد من تشغيل الخدمة rlogin اذهب وحرر الملف /etc/xinetd.d/Rlogin على الحاسب المراد التحكم به عن بعد وليس على الجهاز الذي أتحكم منه تأكد من وضع القيمة NO بجانب الخانة Disable للتأكد من صحة تعديل الملف اكتب chkconfig –list في النافذة Terminal فيعرض قائمة بالخدمات المتوفرة ويضع on بجنب المشغلة وOff بجنب المعطلة أعد تشغيل الخدمة xinetd Service xinetd restart
FTP بروتوكول نقل الملفات يعمل على المنفذين 20 و 21 أستطيع باستخدام هذا البروتوكول نقل ملف أو مجموعة ملفات من حاسب بعيد إلى جهازي أو بالعكس نقل ملف أو مجموعة ملفات من جهازي إلى آخر بعيد هذا البروتوكول غير آمن فهو لا يشفر البيانات بإمكاننا استخدام البروتوكول SCP كبديل آمن
ثالثاً : خدمات آمنة secure services
الخدمات الآمنة Secure Services أشهر خدمات الإنترنت FTP أو Telnet تستخدم نصاً صريحاً لنقل المعلومات وقد تحوي المعلومات على كلمات سر هامة أو أية بيانات حساسات مما يمكن المتطفلين من سرقتها (نسخها) نظراً للحاجة الماسة للإنترنت في تسهيل الكثير من أعمالنا كان لا بد من ابتكار بروتوكولات آمنة للحفاظ على سرية المعلومات المنقولة هذه البروتوكولات تمكننا من التحقق من مستلم البيانات كذلك لديها القدرة على تشفير البيانات
Secure Shell - SSH يستخدم كبديل عن Telnet (الاتصال عن بعد) يقوم بتشفير البيانات باستخدام مفتاحين خاص وعام معتمداً على بروتوكولات تبادل المفاتيح يكفي أن نكتب الأمر ssh [host-name] يتم بعدها تبادل المفاتيح (تتم هذه العملية لمرة واحدة فقط) وأصبح بالإمكان الوصول بشكل آمن إلى الجهاز المراد الاتصال به عن بعد وكأنك تستخدم telnet حيث يسألك عن كلمة السر وتظهر شاشة Terminal
مثال SSH باستخدام SSH أصبح بإمكاننا تحرير الملفات والتعديل عليها وهذا ما لا يستطيع telnet فعله في هذا المثال سوف نحاول الوصول إلى ملف t.txt موجود على الحاسب البعيد server ثم نستدعي الإجراء gedit ونعدل على محتوى الملف عن بعد طبعاً سأستخدم اسم حساب موجود على الحاسب البعيد وهو root عندما يطلب كلمة سر ندخل كلمة السر الخاصة المستخدم root الموجود على الجهاز البعيد وليس على جهازنا
وصلت رسالة للمستخدم root لتخبره بوجود دخول بعيد استخدم الأمر finger لعرض آخر دخول نلاحظ تسجيل وقت الدخول ومن أي حاسب هنا اسمه Client
SCP بروتوكول نقل الملفات الآمن أستطيع باستخدام هذا البروتوكول نقل ملف من حاسب بعيد إلى جهازي أو بالعكس نقل ملف من جهازي إلى آخر بعيد هذا البروتوكول آمن فهو لا يشفر البيانات Scp user@host:path_on_remote_pc path_on_my_pc
مثال على SCP لاحظ صيغة الأمر SCP متبوعة باسم مستخدم على الجهاز البعيد ثم (:) وبعدها مباشرة مسار الملف على الجهاز البعيد ثم فراغ ثم مسار المجلد لحفظ الملف على جهازي المحلي ملاحظة : عند أول اتصال من نوع SCP يتم إنشاء زوج مفاتيح للتشفير ولا يظهران إلا عند أول اتصال
نقل كافة الملفات الموجودة ضمن مجلد بطريقة آمنة Scp path/*.* destinationPath
برنامج sftp Secure File Transfer Program هو عبارة عن بروتوكول FTP لكنه يؤدي جميع وظائفه معتمداً على SSH Sftp user@remotePC:[file or files path] [local path]
شكراً لحسن إصغائكم