إعداد الخادم الأولي مع Ubuntu 20.04

المقدمة

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

عند إنشاء DigitalOcean Droplet، يمكنك اختيار إصدار Ubuntu الذي سيتم إضافته تلقائيًا إلى Droplet الجديد الخاص بك. قم بتبسيط إعدادك باستخدام حلولنا الجاهزة.

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

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

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

  1. ssh root@your_server_ip

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

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

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

الخطوة التالية هي إعداد حساب مستخدم جديد بامتيازات مُقللة للاستخدام اليومي. في وقت لاحق، سنوضح لك كيفية الحصول مؤقتًا على امتيازات مُعززة في الأوقات التي تحتاج إليها.

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

بمجرد تسجيل الدخول كمستخدم root، ستتمكن من إضافة حساب مستخدم جديد. في المستقبل، سنقوم بتسجيل الدخول باستخدام هذا الحساب الجديد بدلاً من root.

تُظهر هذه النموذج عملية إنشاء حساب مستخدم جديد بإسم sammy، ولكن يجب عليك استبداله بالاسم الذي تفضله:

  1. adduser sammy

سيُطلب منك بعض الأسئلة، تبدأ بكلمة مرور الحساب.

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

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

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

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

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

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

  1. usermod -aG sudo sammy

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

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

يمكن لخوادم Ubuntu 20.04 استخدام جدار الحماية UFW للتأكد من السماح فقط بالاتصالات ببعض الخدمات. يمكننا إعداد جدار ناري أساسي باستخدام هذا التطبيق.

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

يمكن للتطبيقات تسجيل ملفاتها الشخصية مع UFW عند التثبيت. تتيح لنا هذه الملفات الشخصية لـ UFW إدارة هذه التطبيقات بالاسم. لدينا مثلاً، تم تسجيل ملف شخصي لخدمة OpenSSH، الخدمة التي تتيح لنا الاتصال بخادمنا الآن، مع UFW.

يمكنك رؤية ذلك عن طريق كتابة:

  1. ufw app list
Output
Available applications: OpenSSH

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

  1. ufw allow OpenSSH

بعد ذلك، يمكننا تمكين الجدار الناري بكتابة:

  1. ufw enable

اكتب y واضغط ENTER للمتابعة. يمكنك أن ترى أن اتصالات SSH مسموح بها بعد كتابة:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

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

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

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

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

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

إذا استخدم حساب الجذر المصادقة بكلمة مرور

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

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

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

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

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

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

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

إذا أضفت عن طريق الخطأ شرطة مائلة في الأمر، سيقوم rsync بنسخ محتويات دليل ~/.ssh لحساب root إلى دليل المستخدم 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-ubuntu-20-04