تتطلّب إدارة الخواديم الولوج عن بعد إلى النظام لتنفيذ مهامّ مختلفة باستخدام محاك للطرفيّة. في الواقع، من النادر أن يتواجد مدير النظام مباشرة أمام الخادوم أو حتى في نفس الموقع الجغرافي. يعني هذا أنه سيحتاج لطريقة تمكّنه من الولوج عن بعد إلى الأجهزة التي ستُطلب منه إدارتها.
كان مديرو الأنظمة في البداية يستعملون خدمة telnet
للولوج إلى الأنظمة عن بعد؛ إلا أن هذه الخدمة لم تعد مستعملة نظرا لأن الاتصالات التي تتم عبرها غير آمنة وتمكن قراءتها. سنرى في هذا المقال طريقة آمنة للولوج عن بعد إلى الخواديم وكيفيةَ إعداد خدمات الشبكة لتبدأ تلقائيا بعد إقلاع النظام؛ كما سنتعرّض لكيفية ضبط الشبكة واسم المضيف Hostname.
تثبيت SSH وتأمين الاتصالات
ستحتاج، لتكون قادرا على الاتصال بخواديم RHEL عن بعد عن طريق SSH، إلى تثبيت الحزم openssh-server
، openssh-clients
وopenssh
. لن يكتفي الأمر التالي بتثبيت برنامج الولوج عن بعد بل سيثبّت أيضا أداة نقل الملفات عن بعد وأداة لتأمين تقل الملفات:
# yum update && yum install openssh openssh-clients openssh-server
تتولى حزمة openssh-server
إدارة الاتصالات عبر SSH من جانب الخادوم، في ما تتولى openssh-clients
إدارتها من جانب العميل؛ تثبيتُ الحزمتين - إضافة إلى حزمة openssh
- على نفس الجهاز يمكّن من استخدامه للاتّصال بجهاز آخر أو للاتصال به انطلاقا من جهاز آخر.
توجد إعدادات أساسيّة في الملفّ etc/ssh/sshd_config/
على الخادوم يزيد تعديل قيمها المبدئيّة من أمان الاتصالات عن بعد:
-
غيّر المنفذ Port المبدئي الذي يُنصت عبره الخادوم لاتصالات SSH. القيمة المبدئيّة هي
22
. تأكد قبل تغيير المنفذ أنه غير مُستخدَم؛ مثلا بتنفيذ أمرnetstat
على النحو التالي (حيث2500
هو المنفذ الذي نريد التأكد من شغوره):
# netstat -npltu | grep 2500
إن لم يُرجع الأمر أعلاه أية نتيجة فيمكنك استخدام المنفذ 2500
دون مشاكل. افتح الملف etc/ssh/sshd_config/
لتعديل المنفذ المبدئي على الخادوم ليصبح على النحو التالي:
Port 2500
-
ثم في نفس الملفّ عدّل قيمة التعليمة
Protocol
لتصبح2
فقط:
Protocol 2
اضبط المهلة الزمنيّة للاستيثاق على القيمة دقيقتين على سبيل المثال، عطّل إمكانيّة الدخول بالحساب الجذر root
عن بعد واجعل الولوج عن بعد متاحا فقط لمجموعة محدودة من المستخدمين:
LoginGraceTime 2m PermitRootLogin no AllowUsers academy
-
يمكن أيضا تفعيل الاستيثاق المعتمد على المفاتيح بدلا من كلمات السّر:
PasswordAuthentication no RSAAuthentication yes PubkeyAuthentication yes
يفترض الإعداد الأخير أنك سبق أن ولّدت زوج مفاتيح لحساب المستخدم على الأجهزة العميلة ونسخت المفتاح العامّ إلى الخادوم مثل ما هو مشروح في درس العمل مع خواديم SSH: العملاء والمفاتيح.
إعداد الشبكة وتمييز الأسماء Name resolution
توجد بضعة ملفات إعداد تتحكّم في إعدادات الشبكة على مستوى النظام عموما:
1. ملف etc/hosts/
يُستخدَم هذا الملفّ لترجمة أسماء المضيفات إلى عناوين IP في الشبكات الصغيرة. يأخذ كلّ سطر في الملفّ الصيغة التاليّة:
اسم النطاق المعرَّف بالكامل اسم المضيف العنوان
على سبيل المثال:
192.168.0.10 rhcsa rhcsa.redhat.academy.hsoub.com
2. ملفّ etc/resolv.conf/
يحدّد عناوين IP الخاصّة بخواديم النطاقات ونطاق البحث الذي يُستخدَم لتكملة استعلام عن اسم نطاق في حال عدم تحديد اسم النطاق المعرَّف بالكامل. لن تحتاج لتحرير هذا الملفّ في الحالات العاديّة؛ ولكن إن احتجت لتعديل خواديم النطاقات فمن المهمّ الحفاظ على الصيغة التاليّة لكلّ سطر في الملف:
nameserver عنوان IP
على سبيل المثال:
nameserver 8.8.8.8
3. ملفّ etc/host.conf/
يحدّد الطرق والترتيبات التي يستخدمها خادوم تمييز الأسماء لمعرفة عناوين أسماء المضيفات في الشبكة. بمعنى أنه يخبر الخادوم الخدماتِ التي يجب عليه الاستعانة بها ووفق أي ترتيب. توجد في هذا الملفّ خيارات كثيرة؛ إلا أن الإعداد الأساسي والأكثر انتشارا يحوي سطرا بالصيغة التاليّة:
order bind,hosts
تشير هذه الصيغة إلى أن خادوم تمييز الأسماء يجب أن يستعلم أولا من الخواديم المحدّدة في الملفّ resolv.conf
ثم إن لم يحصُل على نتيجة ينظُر في الملفّ etc/hosts/
.
4. ملفّ etc/sysconfig/network/
يحوي هذا الملفّ معلومات التوجيه Routing ومعلومات المضيف العامّة لجميع واجهات الشبكة. يمكن استخدام التعليمات التاليّة:
NETWORKING=yes|no HOSTNAME=value
حيث value
هي اسم النطاق المعرَّف بالكامل للمضيف.
GATEWAY=XXX.XXX.XXX.XXX
حيث XXX.XXX.XXX.XXX
هو عنوان IP الخاصّ بالبوّابة Gateway.
GATEWAYDEV=value
تحدّد قيمة هذه التعليمة، في حالة حاسوب توجد به أكثر من واجهة شبكة، الجهازَ الطّرفي Device الذي توجد عليه البواّبة؛ مثلا enp0s3
.
مجلّد etc/sysconfig/network-scripts/
(ملفات إعداد واجهات الشبكة)
توجد داخل هذا المجلّد ملفات عدّة تبدأ أسماءها بـifcfg
؛ يظهر بعد السابقة ifcfg
في اسم الملفّ اسمُ الواجهة التي يضبط إعداداتها. يمكن عرض أسماء الواجهات الموجودة على الجهاز باستخدام الأمر ip link show
:
# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000 link/ether 08:00:27:21:98:8c brd ff:ff:ff:ff:ff:ff
تظهر في نتيجة الأمر أعلاه أسماءُ الواجهات enp0s3
، lo
وenp0s8
؛ وعند سرد محتويات المجلّد:
# ls /etc/sysconfig/network-scripts/ ifcfg-enp0s3 ifdown-eth ifdown-post ifdown-TeamPort ifup-eth ifup-plip ifup-sit init.ipv6-global ifcfg-lo ifdown-ib ifdown-ppp ifdown-tunnel ifup-ib ifup-plusb ifup-Team network-functions ifcfg-Profile_1 ifdown-ippp ifdown-routes ifup ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6 ifdown ifdown-ipv6 ifdown-sit ifup-aliases ifup-ipv6 ifup-ppp ifup-tunnel ifdown-bnep ifdown-isdn ifdown-Team ifup-bnep ifup-isdn ifup-routes ifup-wireless
لاحظ الملفات التي تبدأ أسماءها بـifcfg
مثل ifcfg-enp0s3
. تتشابه إعدادات الواجهات، ما عدا واجهة lo
. ينبغي الانتباه إلى أن تعديل قيمة متغيرّات في ملفّ ifcfg
الخاصّ بواجهة سيلغي تطبيق التعليمات المشابهة الواردة في الملفّ etc/sysconfig/network/
على هذه الواجهة. أضفنا تعليقات إلى تعليمات الملفّات الواردة أدناه من أجل الشّرح؛ إلا أنه ينبغي تجنّب إضافة تعليقات إلى الملفّ الفعلي.
# عنوان MAC الخاصّ بالواجهة HWADDR=08:00:27:4E:59:37 # نوع الاتصال TYPE=Ethernet # تشير هذه القيمةإلى أن عنوان آي بي الخاصّ بالواجهة قد حُدِّد يدويا. # إن كانت قيمة التعليمة هي # dhcp # فهذا يعني أن عنوان آي بي يحدّده خادوم # DHCP # ؛ وبالتالي يجب ألا يكون السطران المواليّان لهذا السطر مذكورين BOOTPROTO=static # عنوان آي بي الواجهة IPADDR=192.168.0.18 # قناع الشبكة NETMASK=255.255.255.0 # البوابة GATEWAY=192.168.0.1 # تحدّد ما إذا كان مدير الشبكة # Network manager # يتحكّم في هذه الواجهة. # القيمة هنا هيno # ؛ من أجل منع تغيير الإعدادات NM_CONTROLLED=no NAME=enp0s3 UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb # تحدّد هذه التعليمة ما إذا كان على نظام التشغيل تفعيل هذه الواجهة مع إقلاع النظام # (نعم yes في حالتنا) ONBOOT=yes
إعداد أسماء المضيفات
يُستخدَم الأمر hostnamectl
للاستعلام عن أسماء المضيفات ولضبطها على نظام Red Hat Enterprise Linux 7. نفّذ الأمر التالي لعرض الاسم الحالي للمضيف:
# hostnamectl Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: df88bf46c92e47e8b4b16df99ab633d9 Boot ID: dc52c695417a4a6aa77dfdd633b2c3c7 Virtualization: kvm Operating System: Red Hat Enterprise Linux CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server Kernel: Linux 3.10.0-327.18.2.el7.x86_64 Architecture: x86-64
استخدم الخيار set-hostname
مع الأمر لتغيير اسم المضيف إلى الاسم المُمرَّر في المعطى الموالي:
# hostnamectl set-hostname academy1
يضبُط الأمر أعلاه اسمَ المضيف ليصبح academy1
.
أعد تشغيل خدمة hostnamed
لاعتماد التعديل دون الحاجة لإعادة تشغيل الجهاز:
# systemctl restart systemd-hostnamed
يمكن أيضا استخدام الأداة nmcli
لنفس الغرض. يعرض الأمر التالي الاسم الحالي للمضيف:
# nmcli general hostname
استخدم الأمر التالي لتغيير اسم المضيف بالأداة nmcli
:
# nmcli general hostname academy1
تشغيل خدمات الشبكة مع إقلاع النظام
نريد الآن التأكد من أن خدمات الشبكة ستُشغَّل تلقائيا مع إقلاع نظام التشغيل. يتم هذا الأمر بإنشاء وصلات إلى ملفات محدّدة ضمن مقطع [install]
في ملفات إعداد الخدمات (مثل usr/lib/systemd/system/firewalld.service/
بالنسبة للجدار الناري firewalld
). لكننا لن نتولى عملية إنشاء الوصلات مباشرة؛ بل إن نظام التمهيد SystemD سيتولى المهمة.
ننفّذ الأمر التالي لتفعيل خدمة الجدار الناري مع الإقلاع:
# systemctl enable firewalld
وبالنسبة لخدمة الشبكة:
# systemctl enable network
ترجمة - بتصرّف - لمقال RHCSA Series: Securing SSH, Setting Hostname and Enabling Network Services – Part 8 لصاحبه Gabriel Cánepa.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.