إعداد الخادم الأولي مع Rocky Linux 8

المقدمة

عند إنشاء خادم Rocky Linux 8 جديد لأول مرة، هناك بعض خطوات الإعداد التي يجب أن تقوم بها في وقت مبكر كجزء من الإعداد الأساسي. ستزيد هذه الخطوات من أمان واستخدامية الخادم الخاص بك وستمنحك أساسًا قويًا للاستفادة من الإجراءات التالية.

الخطوة 1 — تسجيل الدخول كمستخدم روت

لتسجيل الدخول إلى خادمك، ستحتاج إلى معرفة عنوان IP العام للخادم الخاص بك. ستحتاج أيضًا إلى كلمة المرور أو، إذا كنت قد قمت بتثبيت مفتاح SSH للمصادقة، فستحتاج إلى المفتاح الخاص بالمستخدم روت. إذا لم تكن قد سجلت الدخول إلى خادمك بالفعل، قد ترغب في متابعة وثائقنا حول كيفية الاتصال بـ Droplet الخاص بك باستخدام SSH، والتي تغطي هذه العملية بالتفصيل.

إذا لم تكن قد قمت بالفعل بالاتصال بالخادم الخاص بك، قم بتسجيل الدخول الآن كمستخدم روت باستخدام الأمر التالي (استبدل الجزء المظلل من الأمر بعنوان IP العام للخادم الخاص بك):

  1. ssh root@your_server_ip

قم بقبول التحذير حول صحة المضيف إذا ظهر. إذا كنت تستخدم المصادقة بكلمة المرور، قم بتقديم كلمة المرور الخاصة بالمستخدم root لتسجيل الدخول. إذا كنت تستخدم مفتاح SSH الذي يتم حمايته بعبارة مرور، قد يُطلب منك إدخال العبارة المرورية في أول مرة تستخدم فيها المفتاح خلال كل جلسة. إذا كانت هذه أول مرة تقوم فيها بتسجيل الدخول إلى الخادم باستخدام كلمة مرور، قد يُطلب منك أيضًا تغيير كلمة مرور المستخدم root.

حول المستخدم Root

المستخدم root هو المستخدم الإداري في بيئة Linux، ولديه امتيازات واسعة جدًا. نظرًا للامتيازات المتزايدة لحساب root، يُنصح بعدم استخدامه بشكل متكرر. يعود ذلك إلى أن جزءًا من القوة الكامنة في حساب root هو القدرة على إجراء تغييرات مدمرة للغاية، حتى عن طريق الخطأ.

لذلك، الخطوة التالية هي إعداد حساب مستخدم بديل بنطاق تأثير مخفض للعمل اليومي. سيكون بالإمكان لهذا الحساب الحصول على امتيازات متزايدة عند الضرورة.

الخطوة 2 — إنشاء مستخدم جديد

بمجرد تسجيل الدخول بصفتك root، يمكنك إنشاء حساب المستخدم الجديد الذي سنستخدمه لتسجيل الدخول من الآن فصاعدًا.

هذا المثال ينشئ مستخدمًا جديدًا يسمى “sammy”، ولكن يجب عليك استبداله بأي اسم مستخدم تفضله:

  1. adduser sammy

بعد ذلك، قم بتعيين كلمة مرور قوية لمستخدم “sammy”:

  1. passwd sammy

سيُطلب منك إدخال كلمة المرور مرتين. بعد القيام بذلك، سيكون مستخدمك جاهزًا للاستخدام، ولكننا سنمنح هذا المستخدم امتيازات إضافية لاستخدام الأمر “sudo”. وهذا سيتيح لنا تشغيل الأوامر كـ “root” عند الضرورة.

الخطوة 3 — منح الامتيازات الإدارية

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

لتجنب الحاجة إلى تسجيل الخروج من حساب المستخدم العادي وتسجيل الدخول مرة أخرى باسم المستخدم “root”، يمكننا إعداد ما يعرف بامتيازات “superuser” أو “root” لحسابنا العادي. وسيتيح لنا هذا للمستخدم العادي تشغيل الأوامر بامتيازات إدارية عن طريق وضع كلمة “sudo” قبل كل أمر.

لإضافة هذه الامتيازات إلى مستخدمنا الجديد، نحتاج إلى إضافة المستخدم الجديد إلى مجموعة “wheel”. وبشكل افتراضي، على Rocky Linux 8، يُسمح للمستخدمين الذين ينتمون إلى مجموعة “wheel” باستخدام الأمر “sudo”.

كمستخدم root، قم بتشغيل هذا الأمر لإضافة مستخدمك الجديد إلى مجموعة wheel (استبدل الكلمة المظللة باسم المستخدم الجديد الخاص بك):

  1. usermod -aG wheel sammy

الآن، عند تسجيل الدخول بصفتك مستخدم عادي، يمكنك كتابة sudo قبل الأوامر للقيام بالإجراءات بامتيازات المستخدم الجذر.

الخطوة 4 — إعداد جدار ناري أساسي

توفر الجدران النارية مستوى أساسيًا من الأمان لخادمك. تتولى هذه التطبيقات منع حركة المرور إلى كل منفذ على الخادم الخاص بك، باستثناء تلك المنافذ/الخدمات التي وافقت عليها صراحة. تحتوي Rocky Linux على خدمة تُدعى firewalld لأداء هذه الوظيفة. يُستخدم أداة تُدعى firewall-cmd لتكوين سياسات جدار الحماية firewalld.

ملاحظة: إذا كانت خوادمك تعمل على DigitalOcean، يمكنك استخدام DigitalOcean Cloud Firewalls اختياريًا بدلاً من firewalld. نوصي باستخدام جدار ناري واحد فقط في وقت واحد لتجنب القواعد المتعارضة التي قد تكون صعبة للتصحيح.

قم أولاً بتثبيت firewalld:

  1. dnf install firewalld -y

تسمح التكوين الافتراضي لـ firewalld باتصالات ssh، لذا يمكننا تشغيل جدار الحماية على الفور:

  1. systemctl start firewalld

تحقق من حالة الخدمة للتأكد من بدء التشغيل:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

يرجى ملاحظة أنه نشط و ممكّن، مما يعني أنه سيبدأ بشكل افتراضي إذا تم إعادة تشغيل الخادم.

الآن بعد أن بدأت الخدمة بالتشغيل، يمكننا استخدام أداة firewall-cmd للحصول على معلومات السياسة وتعيينها للجدار الناري.

دعنا نبدأ بعرض الخدمات التي تم السماح بها بالفعل:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

لرؤية الخدمات الإضافية التي يمكنك تمكينها بالاسم، اكتب:

  1. firewall-cmd --get-services

لإضافة خدمة يجب السماح بها، استخدم العلم --add-service:

  1. firewall-cmd --permanent --add-service=http

سيتم بهذا إضافة خدمة http والسماح بحركة المرور الواردة باستخدام TCP إلى المنفذ 80. ستتم تحديث الإعداد بعد إعادة تحميل الجدار الناري:

  1. firewall-cmd --reload

تذكر أنه يجب عليك فتح الجدار الناري بشكل صريح (بالخدمات أو المنافذ) لأي خدمات إضافية قد تقوم بتكوينها لاحقًا.

الخطوة 5 — تمكين الوصول الخارجي للمستخدم العادي الخاص بك

الآن بعد أن لدينا مستخدم عادي غير root للاستخدام اليومي، نحتاج إلى التأكد من أننا يمكننا استخدامه للاتصال بـ SSH إلى خادمنا.

ملاحظة: حتى تتمكن من التحقق من إمكانية تسجيل الدخول واستخدام sudo باستخدام المستخدم الجديد الخاص بك، نوصي بالبقاء مسجلاً بوصفك كـ root. بهذه الطريقة، إذا واجهتك مشاكل، يمكنك تتبع الأخطاء وإجراء أي تغييرات ضرورية بصفتك root. إذا كنت تستخدم Droplet من DigitalOcean وواجهت مشاكل في اتصال SSH الخاص بك بصفتك root، يمكنك تسجيل الدخول إلى Droplet باستخدام DigitalOcean Console.

إجراء تكوين الوصول عبر SSH للمستخدم الجديد يعتمد على ما إذا كان حساب root على الخادم يستخدم كلمة مرور أو مفاتيح SSH للمصادقة.

إذا كان حساب الـ Root يستخدم المصادقة بواسطة كلمة المرور

إذا قمت بتسجيل الدخول إلى حسابك root باستخدام كلمة مرور، فإن المصادقة باستخدام كلمة المرور مفعلة لـ SSH. يمكنك الاتصال عبر SSH بحساب المستخدم الجديد الخاص بك عن طريق فتح جلسة ترمينال جديدة واستخدام SSH مع اسم المستخدم الجديد:

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

سيُطلب منك إدخال كلمة مرور المستخدم العادي عند استخدام sudo لأول مرة في كل جلسة (وبشكل دوري بعد ذلك).

لتعزيز أمان الخادم الخاص بك، نوصي بشدة بإعداد مفاتيح SSH بدلاً من استخدام مصادقة كلمة المرور. اتبع دليلنا على إعداد مفاتيح SSH على Rocky Linux 8 لتعرف كيفية تكوين المصادقة القائمة على المفتاح.

إذا كان حساب الجذر يستخدم مصادقة مفتاح SSH

إذا قمت بتسجيل الدخول إلى حساب الجذر الخاص بك باستخدام مفاتيح SSH، فإن مصادقة كلمة المرور معطلة لبروتوكول SSH. ستحتاج إلى إضافة نسخة من المفتاح العام الخاص بك إلى ملف ~/.ssh/authorized_keys للمستخدم الجديد من أجل تسجيل الدخول بنجاح.

نظرًا لأن المفتاح العام الخاص بك موجود بالفعل في ملف ~/.ssh/authorized_keys الخاص بحساب الجذر على الخادم، يمكننا نسخ تلك الملفات وهيكل الدليل إلى حساب المستخدم الجديد.

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

ملاحظة: تعامل أمر rsync مع المصادر والوجهات التي تنتهي بشرطة مائلة بشكل مختلف عن تلك التي لا تنتهي بشرطة مائلة. عند استخدام rsync أدناه، تأكد من أن دليل المصدر (~/.ssh) لا يتضمن شرطة مائلة في النهاية (تحقق للتأكد من عدم استخدام ~/.ssh/).

إذا أضفت عن طريق الخطأ شرطة مائلة إلى الأمر، سيقوم rsync بنسخ محتويات دليل ~/.ssh الخاص بحساب الجذر إلى دليل المستخدم sudo في دليل المنزل بدلاً من نسخ هيكل الدليل ~/.ssh بأكمله. ستكون الملفات في المكان الخطأ ولن يتمكن SSH من العثور عليها واستخدامها.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

الآن، في نافذة الطرفية الجديدة على جهازك المحلي، افتح جلسة SSH جديدة مع حساب المستخدم غير الجذر:

  1. ssh sammy@your_server_ip

يجب أن تكون مسجلاً داخل حساب المستخدم الجديد بدون استخدام كلمة مرور. تذكر، إذا كنت بحاجة إلى تشغيل أمر بامتيازات إدارية، اكتب sudo قبله مثل هذا:

  1. sudo command_to_run

ستتلقى طلبًا لكلمة مرور مستخدمك العادي عند استخدام sudo لأول مرة في كل جلسة (ومن حين لآخر بعد ذلك).

الاستنتاج

في هذه النقطة، لديك أساس قوي لخادمك. يمكنك الآن تثبيت أي من البرامج التي تحتاجها على خادمك.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8