איך להתקין את 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) – למשתמשים שזקוקים לתכונות נוספות שמספקות גרסת Enterprise Edition של GitLab.

אך בדיגמה זו אנו משתמשים ב-GitLab Community Edition כדי לבדוק את היישום בסביבת הפיתוח שלך.

1. פתח את חלון הטרמינל והפעל את הפקודה apt update למטה כדי לוודא שהמערכת שלך כוללת את כל עדכוני התוכנה האחרונים.

הפקודה apt update מעדכנת את קבצי אינדקס החבילות שמשמשים את כלי ה-apt לקבלת מידע על החבילות הזמינות.

sudo apt update -y
Updating your package index

2. לאחר מכן, הפעל את הפקודה apt install למטה כדי להוריד (curl) ולהתקין את התלויות הדרושות הבאות להתקנת GitLab שלך:

  • חבילת openssh-server – מכילה את דמון השרת של OpenSSH וכלי קשורים, כמו כלי ניהול מפתח המארח ושרת, כדי לספק גישה מרחוק להתחברות משתמשים.
  • חבילת ca-certificates – מכילה רשימת אישורי CA. חבילה זו מספקת את הקבצים הנדרשים כדי לאפשר תמיכת HTTPS על השרת שלך.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

הריצו את הפקודה 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

הריצו את הפקודה apt-cache שלמטה כדי לוודא שהוספתם את המאגר של GitLab בהצלחה.

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

כעת, הריצו מחדש את הפקודה apt update כדי לעדכן את רשימת החבילות הזמינות. פקודה זו מבטיחה שהמערכת שלך תשתמש במאגר של GitLab החדש שהוספתם כאשר אתם מתקינים את GitLab.

sudo apt update -y

לבסוף, הריצו את הפקודה 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 שאינן specפיות לסביבת השרת שלך.

תשנה את קובץ התצורה של GitLab כדי להגדיר את שם הדומיין FQDN וחיבור מאובטח לדומיין שלך.

1. פתח את קובץ התצורה /etc/gitlab/gitlab.rb בעורך טקסט האהוב עליך.

אחת מהערכות החשובות ביותר בקובץ התצורה של GitLab היא ההפניה external url, כפי שמוצג למטה. ההפניה הזו מאפשרת למשתמשים לגשת אל GitLab דרך דפדפן האינטרנט.

שנה את ערך ההפניה external url מ-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

שלב, הרץ את הפקודה למטה כדי לבצע reconfigure ולהחיל את השינויים בקובץ התצורה של GitLab ב-/etc/gitlab/gitlab.rb.

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 שלך.

Cבחר כמה 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 על ידי הפעלת פקודה בטרמינל שלך מבלי להזין סיסמה.

שוטף את הפקודה ssh-keygen כדי ליצור זוג מפתחות SSH המתאימים לשימוש בחיבורי SSH. כאשר יידרש, ללחוץ על מקש Enter כדי לשמור על המיקום ברירת המחדל למפתח SSH (/root/.ssh/id_rsa) ולא להוסיף פספוס.

ssh-keygen
Generating an SSH keypair

הרץ את הפקודה cat למטה כדי להדפיס את המפתח הציבורי שלך על המסך, כפי שמוצג למטה. להעתיק את מחרוזת מפתח ה-ssh-rsa כולה ולשמור אותה במקום בטוח. יש להוסיף את מפתח הציבור הזה ל-GitLab שלך מאוחר יותר (שלב שלוש).

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

חזור ללוח הבקרה של GitLab בדפדפן שלך כדי להוסיף את מפתח הציבור שלך עם ההוראות הבאות:

  • לחץ על תפריט מפתחות SSH בלוח הצד השמאלי של דף הגדרות משתמש כדי לגשת לדף מפתחות SSH.
  • הדבק את מפתח הציבור שהעתקת (שלב שני) לשדה מפתח, כפי שמוצג למטה
  • ספק את השם המועדף שלך למפתח בשדה כותרת. אך למען הדגמה זו, השם מוגדר כ-ATAGitHub.
  • לחץ על הוסף מפתח כדי לסיים את תהליך הוספת מפתח הציבור לחשבונך.
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 ובאמצעות שכפול הפרויקט לשרת שלך.

1. בלוח הבקרה של GitLab, לחץ על הסמל פלוס (+) ליד תיבת החיפוש, ואז לחץ על פרויקט חדש, כפי שמוצג למטה, כדי ליצור פרויקט GitLab חדש.

Adding New GitLab Project

2. לאחר מכן, ספק את שם הפרויקט המועדף עליך, אך למערכת הדגמה זו, שם הפרויקט מוגדר כ-ATA GitLab, ו-Slug הפרויקט מוגדר כ- (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 בשם הדומיין המלא שלך.

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 מאובטונטו לינוקס שלך בצורה מאובטחת. ודאת שהשרת שלך של GitLab מאובטח דרך ממשק האינטרנט, הוסף מפתחות SSH לחשבון ה-GitLab שלך ובדוק אם השרת שלך של GitLab פועל.

עם הידע החדש שקיבלת, אולי תרצה ללמוד איך ל הגדיר מערכות אינטגרציה רציפה (CI) אוטומטיות עם GitLab?

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