سلسلة RHCSA: تأمين SSH، وتعيين اسم الاستضافة، وتمكين خدمات الشبكة – الجزء 8

وكما تعلم من مهنتك كمسؤول عن نظام، فإنك سوف تتواجد في غالبية الأحيان بتسجيل دخول للأنظمة البعيدة لتقوم بمجموعة من المهام الإدارية بواسطة محاكي طرف التيار. سوف تقبل بالنسبة لك بالنسبة للتنقل البعيد إلى الآلات التي ستتم تسليمك إدارتها بعيدًا عنك.

في الحقيقة، قد يكون هذا آخر شيء ستقوم بعمله أمام محرك مادي على الإطلاق. ولأسباب أمنية، فإن استخدام Telnet لهذه الغرضين ليس جيدًا، لأن جميع المعلومات تسرب عبر الأسلاك بصيغة نصية بدون تشفير.

بالإضافة إلى ذلك، سننظر في هذه المقالة أيضًا كيفية تكوين الخدمات الشبكية للبدء بشكل تلقائي عند التشغيل وكيفية تأسيس حلول الشبكة واسم الماكينة بشكل ثابت أو تلقائيًا.

RHCSA: Secure SSH and Enable Network Services – Part 8

تثبيت وحماية معارك التواصل SSH

لكي تستطيع تسجيل دخول بعيدًا إلى جهاز RHEL 7 بواسطة SSH، سيتوجب عليك تثبيت قوائم الopenssh، openssh-clients وopenssh-servers التي تحتوي على البرمجيات. الأمر التالي سيتم تثبيت البرنامج التي تم تسجيل دخول بعيد بالإضافة إلى أداة التحميل الآمن وأداة نسخ الملفات عن بعد.

# yum update && yum install openssh openssh-clients openssh-servers

تلاحظ أنه من الأفضل تثبيت نسخ البرمجيات الخاصة بالجهاز الخاص لأنك قد ترغب في استخدام الجهاز كمستخدم وخاص في وقت ما.

بعد الت

1. قم بتغيير المنفذ الذي سيستمع عليه خادم sshd من 22 (القيمة الافتراضية) إلى منفذ عالي (أعلى من 2000)، ولكن قبل ذلك تأكد من أن المنفذ المختار ليس قيد الاستخدام.

على سبيل المثال، دعنا نفترض أنك اخترت المنفذ 2500. استخدم أمر netstat للتحقق مما إذا كان المنفذ المختار قيد الاستخدام أم لا:

# netstat -npltu | grep 2500

إذا لم يُعيد أمر netstat أي نتيجة، فيمكنك استخدام المنفذ 2500 بأمان لـ sshd، ويجب عليك تغيير إعداد المنفذ في ملف الإعداد على النحو التالي:

Port 2500

2. اسمح فقط بـ البروتوكول 2:

Protocol 2

3. قم بتكوين وقت انتهاء المصادقة إلى 2 دقيقة، ولا تسمح بتسجيل الدخول كمستخدم root، وقم بتقييد القائمة المسموح بها من المستخدمين الذين يمكنهم تسجيل الدخول عبر ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. إذا كان ذلك ممكنًا، استخدم المصادقة القائمة على المفتاح بدلاً من كلمة المرور:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

يفترض أنك قد قمت بالفعل بإنشاء زوج المفاتيح بالاسم الخاص بك على جهاز العميل الخاص بك وقمت بنسخه إلى الخادم الخاص بك كما هو مشروح هنا.

  1. تمكين تسجيل الدخول إلى SSH بدون كلمة مرور

تكوين الشبكة وحل الأسماء

1. يجب على كل مسؤول نظام أن يكون على دراية تامة بملفات التكوين العامة التالية:

  1. يتم استخدام /etc/hosts لحل الأسماء <—> إلى عناوين IP في الشبكات الصغيرة.

كل سطر في ملف /etc/hosts له الهيكل التالي:

IP address - Hostname - FQDN

على سبيل المثال،

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf يحدد عناوين IP لخوادم DNS ونطاق البحث، الذي يستخدم لاستكمال اسم الاستعلام المعطى إلى اسم نطاق مؤهل بالكامل عندما لا يتم توفير تصميم المجال.

في الظروف العادية، لا يلزم تحرير هذا الملف حيث يتم إدارته من قبل النظام. ومع ذلك، إذا كنت ترغب في تغيير خوادم DNS، فيجب أن تلتزم بالهيكل التالي في كل سطر:

nameserver - IP address

على سبيل المثال،

nameserver 8.8.8.8

3. 3. /etc/host.conf يحدد الطرق والترتيب الذي يتم من خلاله حل أسماء المضيفين في شبكة. بعبارة أخرى، يخبر محلل الأسماء أي الخدمات يجب استخدامها وبأي ترتيب.

على الرغم من أن هذا الملف يحتوي على العديد من الخيارات، إلا أن إعداد الأكثر شيوعًا والأساسي يتضمن سطرًا على النحو التالي:

order bind,hosts

مما يشير إلى أن محلل الأسماء يجب أولاً أن ينظر إلى خوادم الأسماء المحددة في resolv.conf ومن ثم إلى ملف /etc/hosts لحل الأسماء.

4. /etc/sysconfig/network يحتوي على معلومات التوجيه والمضيف العام لجميع واجهات الشبكة. يمكن استخدام القيم التالية:

NETWORKING=yes|no
HOSTNAME=value

حيث يجب أن تكون القيمة هي الاسم النطاقي الكامل (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

حيث XXX.XXX.XXX.XXX هو عنوان IP لبوابة الشبكة.

GATEWAYDEV=value

في جهاز يحتوي على عدة واجهات الشبكة (NICs)، فإن القيمة هي جهاز البوابة، مثل enp0s3.

5. الملفات في داخل /etc/sysconfig/network-scripts (ملفات تهيئة محولات الشبكة).

في داخل الدليل المذكور سابقًا، ستجد العديد من الملفات النصية المسماة.

ifcfg-name

حيث يكون الاسم هو اسم NIC كما يتم إرجاعه بواسطة ip link show:

Check Network Link Status

على سبيل المثال:

Network Files

بخلاف واجهة loopback، يمكنك توقع تكوين مماثل لواجهات الشبكة الخاصة بك. يجب ملاحظة أن بعض المتغيرات، إذا تم تعيينها، ستكون أقوى من تلك الموجودة في /etc/sysconfig/network لهذه الواجهة الخاصة. يتم تعليق كل سطر للتوضيح في هذه المقالة ولكن يجب تجنب التعليقات في الملف الفعلي:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

ضبط أسماء المضيفين

في Red Hat Enterprise Linux 7، يُستخدم أمر hostnamectl للاستعلام عن اسم المضيف وضبطه.

لعرض اسم المضيف الحالي، اكتب:

# hostnamectl status
Check System Hostname

لتغيير اسم المضيف، استخدم:

# hostnamectl set-hostname [new hostname]

على سبيل المثال:

# hostnamectl set-hostname cinderella

لكي تتم العملية، ستحتاج إلى إعادة تشغيل خدمة hostnamed (بهذه الطريقة لن تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى لتطبيق التغيير):

# systemctl restart systemd-hostnamed
Set System Hostname

بالإضافة إلى ذلك، يتضمن RHEL 7 أيضًا أداة nmcli التي يمكن استخدامها لنفس الغرض. لعرض اسم المضيف، قم بتشغيل:

# nmcli general hostname

و لتغييره:

# nmcli general hostname [new hostname]

على سبيل المثال:

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

تشغيل خدمات الشبكة عند التمهيد

لختام، دعونا نرى كيف يمكننا ضمان بدء خدمات الشبكة تلقائيًا عند التمهيد. ببساطة، يتم ذلك عن طريق إنشاء روابط رمزية لبعض الملفات المحددة في قسم [Install] من ملفات تكوين الخدمة.

في حالة firewalld (/usr/lib/systemd/system/firewalld.service):

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

لتمكين الخدمة:

# systemctl enable firewalld

من ناحية أخرى، يتطلب تعطيل firewalld إزالة الروابط الرمزية:

# systemctl disable firewalld
Enable Service at System Boot

الاستنتاج

في هذه المقالة، قمنا بتلخيص كيفية تثبيت وتأمين الاتصالات عبر SSH إلى خادم RHEL، كيفية تغيير اسمه، وأخيرًا كيفية ضمان بدء خدمات الشبكة عند التمهيد. إذا لاحظت أن خدمة معينة فشلت في البدء بشكل صحيح، يمكنك استخدام systemctl status -l [service] و journalctl -xn لحل المشكلة.

لا تتردد في إخبارنا برأيك حول هذه المقالة باستخدام استمارة التعليق أدناه. نحن نرحب أيضًا بالأسئلة. نتطلع إلى الاستماع منك!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/