كيفية تأمين تثبيت Gitlab بشكل آمن (برنامج تعليمي)

تم التقرير أنك قررت أن تبدأ في استخدام GitLab لإدارة مشروعك، ولكنك لست متأكدًا من كيفية تثبيت GitLab بشكل آمن؟ ليس فقط أن تثبيت GitLab عملية معقدة، ولكن إذا لم يتم ذلك بشكل صحيح، قد يكون بياناتك في خطر. ولكن لا تقلق، لقد وصلت إلى المكان الصحيح!

في هذا البرنامج التعليمي، ستتعلم العملية الكاملة لتثبيت GitLab بشكل آمن، بحيث يمكنك إعداد تشفير SSL وضبط GitLab للأداء الأمثل.

هل يبدو ذلك مثيرًا؟ تفضل بالبدء!

الشروط المسبقة

سيكون هذا البرنامج التعليمي عرضًا توضيحيًا عمليًا. إذا كنت ترغب في متابعة، تأكد من أن لديك ما يلي:

  • A Linux server with root access – This demo uses Ubuntu 20.04 LTS, but any Linux distribution will work.
  • A fully qualified domain name (FQDN) pointing to your server.
  • Let’s Encrypt مثبت على الخادم.
  • الحد الأدنى من المتطلبات – 8 جيجابايت من ذاكرة الوصول العشوائي، 50-100 ميجابت في الثانية من النطاق الترددي، معالج بتردد 2 غيغاهرتز، و 20 جيجابايت من مساحة القرص.

تثبيت GitLab Community Edition

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

يأتي GitLab في توزيعتين:

  • GitLab Community Edition (CE) – للمستخدمين الذين يفضلون الإصدار مفتوح المصدر والمدعوم من المجتمع من GitLab.
  • GitLab Enterprise Edition (EE) – للمستخدمين الذين يحتاجون إلى الميزات الإضافية التي يوفرها إصدار GitLab Enterprise Edition.

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

1. افتح الطرفية الخاصة بك وقم بتشغيل الأمر apt update أدناه للتأكد من أن نظامك لديه الوصول إلى جميع تحديثات البرمجيات الأخيرة.

يقوم الأمر apt update بتحديث ملفات فهرس الحزم المستخدمة بواسطة أداة apt لاسترداد معلومات حول الحزم المتاحة.

sudo apt update -y
Updating your package index

2. بعد ذلك، قم بتشغيل الأمر apt install أدناه لتنزيل (curl) وinstall الاعتمادات المطلوبة التالية لتثبيت GitLab الخاص بك:

  • حزمة openssh-server – تحتوي على ديمون خادم OpenSSH وأدوات ذات صلة، مثل أداة إدارة مفتاح المضيف والخادم، لتوفير وصول تسجيل الدخول عن بعد للمستخدمين.
  • حزمة ca-certificates – تحتوي على قائمة من شهادات السلطة الشهادة. توفر هذه الحزمة الملفات اللازمة لتمكين دعم HTTPS على الخادم الخاص بك.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. قم بتشغيل الأمر curl أدناه لتحميل (curl) السيناريو التثبيت من GitLab (https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce). يحفظ الأمر السيناريو كسكريبت للشل (script.deb.sh) ويشغله كمستخدم فائق (sudo bash).

sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

عند اكتمال أمر curl ، ستحصل على الإخراج التالي.

Adding the GitLab repository to your system

4. قم بتشغيل الأمر apt-cache أدناه للتحقق من أنك قد أضفت مستودع GitLab بنجاح.

apt-cache policy docker-ce
Verifying if GitLab Repository Exists

5. الآن، قم بإعادة تشغيل الأمر apt update لتحديث قائمة الحزم المتاحة. يتأكد هذا الأمر من أن نظامك سيستخدم مستودع GitLab الذي تمت إضافته حديثًا عند تثبيت GitLab.

sudo apt update -y

6. أخيرًا، قم بتشغيل الأمر apt install أدناه لتثبيت GitLab (gitlab-ce) على نظامك.

sudo apt install gitlab-ce -y
Installing GitLab

سيستغرق التثبيت بعض الوقت، ولكن سترى الإخراج التالي عند اكتمال التثبيت. يؤكد هذا الإخراج أنك الآن قد قمت بتثبيت GitLab بنجاح على نظامك.

Getting the Welcome Page after Installing GitLab

تكوين تثبيت GitLab الخاص بك

لديك الآن GitLab مثبتًا على نظامك، لكن ستحتاج إلى إجراء بعض التغييرات في التكوين قبل استخدام GitLab. يحتوي ملف التكوين الخاص بـ GitLab (/etc/gitlab/gitlab.rb) على الإعدادات العامة لـ GitLab التي ليست محددة لبيئة خادم GitLab الخاص بك.

ستقوم بتعديل ملف تكوين GitLab لتعيين اسم النطاق FQDN الخاص بك والاتصال الآمن بنطاقك.

1. افتح ملف التكوين /etc/gitlab/gitlab.rb في محرر النص المفضل لديك.

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

قم بتغيير قيمة توجيه الرابط الخارجي من http://gitlab.example.com إلى https://gitlab.yourdomain.com، حيث yourdomain.com هو اسم النطاق FQDN الخاص بك.

Setting FQDN domain name in the external URL directive

2. بعد ذلك، انتقل إلى القسم تكامل Let’s Encrypt الموجود في الأسفل، وقم بتكوين التوجيهات بالتالي:

  • ألغِ تعليق توجيه letsencrypt['enable'] بإزالة الرمز # السابق وقم بتغيير القيمة من nil إلى true. يخبر هذا التوجيه GitLab بتكوين HTTPS على خادمك تلقائيًا.
  • ألغِ تعليق توجيه letsencrypt['contact_emails'] بإزالة الرمز # السابق، وضع عنوان بريدك الإلكتروني كقيمة. ستستخدم Let’s Encrypt هذا العنوان البريدي للاتصال بك عند الحاجة إلى تجديد شهادة SSL الخاصة بك (كل 90 يومًا).
  • حفظ التغييرات والخروج من المحرر.
Configuring Let’s Encrypt Integration

3. أخيرًا ، قم بتشغيل الأمر أدناه لإعادة التكوين وتطبيق التغييرات في ملف التكوين /etc/gitlab/gitlab.rb على GitLab.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

تكوين جدار الحماية الخاص بك لاتصالات SSL

الآن بعد تكوين GitLab ، ستحتاج إلى تكوين قواعد جدار الحماية الخاص بك للسماح باتصالات SSL وآمنة إلى خادمك. يعد Uncomplicated Firewall (UFW) البرنامج الافتراضي لإدارة قواعد جدار الحماية في Ubuntu.

إذا كنت قد وضعت خادمك خلف جدار حماية ، ستحتاج إلى فتح منفذ HTTP 80 ومنفذ HTTPS 443 لاتصالات SSL.

قم بتشغيل الأمر التالي لفتح منافذ OpenSSH ، HTTP ، و HTTPS لخادم GitLab الخاص بك.

sudo ufw allow OpenSSH && sudo ufw allow http && sudo ufw allow http
Adding new firewall rule

الآن ، قم بتشغيل الأمر التالي لفحص حالة جدار الحماية الخاص بك.

sudo ufw status 
Checking the status of your firewall

تأمين GitLab عبر واجهة الويب

جدار الحماية الخاص بك قائم ، ولكن هل يعني ذلك أن GitLab الخاص بك آمن؟ إضافة طبقات إضافية من الأمان ليس أبدًا كثيرًا. لذا ستقوم بتأمين تثبيت GitLab الخاص بك عبر واجهة الويب.

1. افتح متصفح الويب المفضل لديك وانتقل إلى خادم GitLab الخاص بك. على سبيل المثال ، http://gitlab.example.com ، حيث example.com هو اسم النطاق FQDN الخاص بك.

اختر إما Chrome أو Firefox عند الوصول إلى خادم GitLab الخاص بك للحصول على أمان أفضل. تستخدم هذه المتصفحات الويب بروتوكولات HTTP / HTTPS الخاصة بها، التي تساعد على تطبيق سياسات الأمان.

أدناه، يمكنك رؤية صفحة تسجيل الدخول إلى GitLab.

Accessing the GitLab Log in screen

2. بعد ذلك، انقر على أيقونة القفل (أعلى اليسار) بجانب شريط العنوان، وسترى حالة الاتصال الخاصة بك. هذا العرض التوضيحي يظهر الاتصال آمن، والذي يشير إلى أن الاتصال بالخادم هو عبر HTTPS.

Checking your connection status

عد إلى الطرفية الخاصة بك، وشغل الأمر cat أدناه للحصول على initial_root_password الخاص بك.

بشكل افتراضي، يأتي التثبيت من GitLab مع كلمة مرور جذر أولية تم إنشاؤها تلقائيًا.

 cat /etc/gitlab/initial_root_password

انسخ واحفظ كلمة المرور الجذر الأولى الخاصة بك في مكان آمن. ستستخدم هذه الكلمة لتسجيل الدخول إلى GitLab (الخطوة الرابعة).

Getting your initial root password

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

Logging in to your GitLab server

بعد تسجيل الدخول إلى خادم GitLab الخاص بك، يوجهك المتصفح إلى لوحة معلومات GitLab، كما هو موضح أدناه.

Viewing GitLab Dashboard

إضافة مفتاح SSH إلى حساب GitLab الخاص بك

بصرف النظر عن الواجهة الويب، يمكنك أيضًا الوصول إلى GitLab عبر بيئة سطر الأوامر بطريقة آمنة. كيف؟ ستحتاج أولاً إلى إضافة مفتاح SSH إلى حسابك، بحيث يمكنك الوصول إلى GitLab بتشغيل أمر على طرفيتك دون الحاجة إلى إدخال كلمة مرور.

1. قم بتشغيل الأمر ssh-keygen لإنشاء زوج مفاتيح SSH مناسب للاستخدام في اتصالات SSH. عند الطلب، اضغط على مفتاح Enter للإبقاء على الموقع الافتراضي للحفظ للمفتاح SSH (/root/.ssh/id_rsa) ولا تضيف كلمة مرور.

ssh-keygen
Generating an SSH keypair

2. قم بتشغيل الأمر cat أدناه لطباعة المفتاح العام الخاص بك على الشاشة، كما هو موضح أدناه. انسخ سلسلة المفتاح العام ssh-rsa بأكملها واحفظها في مكان آمن. ستقوم بإضافة هذا المفتاح العام إلى GitLab الخاص بك لاحقًا (الخطوة الثالثة).

 cat ~/.ssh/id_rsa.pub
Viewing the entire ssh-rsa public key string

3. عد إلى لوحة التحكم في GitLab على متصفحك لإضافة مفتاحك العام باستخدام الخطوات التالية:

  • انقر على القائمة SSH Keys في لوحة الجهة اليسرى لصفحة User Settings للوصول إلى صفحة SSH Keys.
  • الصق المفتاح العام الذي قمت بنسخه (الخطوة الثانية) في حقل Key، كما هو موضح أدناه
  • قم بتوفير اسمك المفضل للمفتاح في حقل Title. ولكن لهذا العرض التوضيحي، يتم تعيين الاسم كـ ATAGitHub.
  • انقر Add Key لإكمال إضافة المفتاح العام إلى حسابك.
Adding SSH Keys

تعطيل التسجيل العام

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

1. من لوحة تحكم GitLab، انقر فوق القائمة -> المشرف للوصول إلى لوحة المشرف، ثم انقر فوق الإعدادات للوصول إلى صفحة الإعدادات العامة للوحة المشرف (الخطوة الثانية).

Viewing the GitLab Admin panel

2. قم بتعطيل خيار تمكين التسجيل تحت قسم قيود التسجيل. بذلك، ستقوم بتعطيل ميزة التسجيل العام في GitLab.

Disabling GitLab Public Sign-ups

3. انتقل لأسفل وانقر على حفظ التغييرات (أسفل) لحفظ التغييرات التي قمت بها على إعدادات قيود التسجيل.

Saving your changes

4. في النهاية، اسحب من حسابك وانتقل إلى شاشة تسجيل الدخول إلى GitLab الخاص بك.

كما ترى أدناه، اختفت الرابط سجّل الآن.

Verifying if the Register now link is gone

اختبار خادم GitLab الخاص بك

في هذه النقطة، لقد قمت بالفعل بتكوين وتأمين خادم GitLab الخاص بك، وهذا رائع! ولكن كيف تعرف أن خادم GitLab الخاص بك يعمل فعلياً؟ ستقوم بتجربة خادمك عن طريق إنشاء مشروع GitLab عبر لوحة تحكم GitLab واستنساخ المشروع إلى خادمك.

1. على لوحة تحكم GitLab، انقر فوق الرمز زائد (+) بجوار مربع البحث، ثم انقر فوق مشروع جديد، كما هو موضح أدناه، لإنشاء مشروع GitLab جديد.

Adding New GitLab Project

2. بعد ذلك، قدم اسم المشروع الذي تفضله، ولكن لهذا العرض التوضيحي، تم تعيين اسم المشروع كـ ATA GitLab، وتم تعيين المعرف الخاص بالمشروع إلى (atagitlab).

انقر على إنشاء المشروع لإنشاء مشروعك الجديد.

Creating a new project

3. العودة إلى الطرفية الخاصة بك وتشغيل الأوامر التالية لتكوين اسم المستخدم العالمي الخاص بك (--global user.name) والبريد الإلكتروني (--global user.email) لـ git. كل اسم مستخدم وبريد إلكتروني فريد على مستوى العالم عبر جميع الحسابات على خادم gitlab.

git config --global user.name "ATA"
git config --global user.email "[email protected]"

4. الآن، قم بتشغيل الأمر git clone أدناه لاستنساخ مشروع ata gitlab الذي قمت بإنشائه (الخطوة الثانية) إلى الدليل الحالي الخاص بك. قم بتعويض yourdomain.com بنطاق fqdn الخاص بك.

git clone http://gitlab.yourdomain.com/root/ATA-GitLab.git

إذا تمت العملية بنجاح، سترى إخراجًا مماثلاً لتلك أدناه. عند اكتمال عملية الاستنساخ، ستحصل على دليل جديد يسمى ata-gitlab.

Cloning the ATA GitLab project

5. أخيرًا، قم بتشغيل أمر ls للتحقق من وجود دليل ata-gitlab.

ls

نظرًا لأنه يمكنك استنساخ مشروع ata gitlab الجديد وأن دليل ata gitlab موجود، فإن الإخراج أدناه يؤكد أن خادم gitlab الخاص بك يعمل بشكل صحيح.

Listing new directory ATA-GitLab

الختام

في هذا البرنامج التعليمي، تعلمت كيفية تنفيذ تثبيت آمن لـ gitlab على نظام ubuntu linux الخاص بك. لقد تأكدت من تأمين خادم gitlab الخاص بك عبر واجهة الويب، وإضافة مفاتيح ssh إلى حساب gitlab الخاص بك، واختبار ما إذا كان خادم gitlab الخاص بك يعمل.

مع هذه المعرفة الجديدة، ربما ترغب في معرفة كيفية إعداد أنظمة التكامل المستمر الآلي مع gitlab؟

Source:
https://adamtheautomator.com/install-gitlab/