שימוש במנהרת SSH

כדי להשתמש בהצפנה החזקה ביותר בין Looker למסד הנתונים, אתם יכולים ליצור מנהרת SSH לשרת מנהרות או לשרת מסד הנתונים עצמו.

שלב 1: בוחרים מארח שדרכו יסתיים הטירמינל

השלב הראשון בהגדרת גישה למסד הנתונים באמצעות מנהרת SSH הוא בחירת המארח שישמש לסיום המנהרה. אפשר לסיים את המנהור במארח של מסד הנתונים עצמו, או במארח נפרד (שרת המנהור).

שימוש בשרת מסד הנתונים

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

שימוש בשרת מנהור

כשמשתמשים בשרת מנהרה, Looker מתחבר לשרת מסד הנתונים דרך שרת מנהרה נפרד ברשת מוגבלת. היתרון של סיום המנהרה בשרת נפרד הוא ששרת מסד הנתונים שלכם לא נגיש מהאינטרנט. אם שרת המנהרה נפרץ, הוא נמצא במרחק של שלב אחד משרת מסד הנתונים. מומלץ להסיר משרת המנהרה את כל התוכנות והמשתמשים שלא חיוניים, ולעקוב אחריו באופן קבוע באמצעות כלים כמו IDS.

שרת המנהור יכול להיות כל מארח Unix או Linux ש:

  1. אפשר לגשת אליו מהאינטרנט באמצעות SSH
  2. יש גישה למסד הנתונים

שלב 2: יצירת רשימת כתובות IP שאושרו

השלב השני הוא לאפשר לתעבורת הרשת להגיע לשרת המנהור או למארח מסד הנתונים דרך SSH, בדרך כלל ביציאת TCP מספר 22.

צריך לאפשר תעבורת נתונים ברשת מכל אחת מכתובות ה-IP שמופיעות כאן לאזור שבו מתארח מופע Looker שלכם. כברירת מחדל, המדינה תהיה ארצות הברית.

מופעים שמתארחים ב- Google Cloud

מקרים שמארחים ב-Looker מאוחסנים ב- Google Cloud כברירת מחדל. במקרים שבהם מתארחת ב- Google Cloud, צריך להוסיף לרשימת ההיתרים את כתובות ה-IP שתואמות לאזור שלכם.

כאן אפשר לראות רשימה מלאה של כתובות IP למקרים שמתארחים ב- Google Cloud

מונקס קורנר, קרוליינה הדרומית, ארה"ב (us-east1)

  • 34.23.50.137
  • 35.211.210.64
  • 35.211.95.55
  • 35.185.59.100
  • 34.111.239.102
  • 35.237.174.17
  • 34.73.200.235
  • 35.237.168.216
  • 34.75.58.123
  • 35.196.30.110
  • 35.243.254.166

אשבורן, צפון וירג'יניה, ארה"ב (us-east4)

  • 34.150.212.9
  • 34.150.174.54
  • 34.85.200.217
  • 35.221.30.177
  • 35.245.82.73
  • 34.86.214.226
  • 35.245.177.112
  • 35.245.211.109
  • 34.86.118.239
  • 34.86.136.190
  • 35.194.74.185
  • 34.86.52.188
  • 35.221.3.163
  • 35.221.62.218
  • 34.86.34.135
  • 35.236.240.168
  • 35.199.50.237
  • 34.145.252.255
  • 35.245.141.42
  • 35.245.20.16
  • 34.145.147.146
  • 34.145.139.22
  • 34.150.217.20
  • 35.199.35.176
  • 35.245.72.35
  • 34.85.187.175
  • 35.236.220.225
  • 34.150.180.94
  • 4.85.195.168
  • 34.86.126.124
  • 34.145.200.8
  • 34.85.142.95
  • 34.150.217.96
  • 35.245.140.36
  • 34.86.124.234
  • 35.194.69.239
  • 35.230.163.26
  • 35.186.187.48
  • 34.86.154.134
  • 34.85.128.250
  • 35.245.212.212
  • 35.245.74.75
  • 34.86.246.187
  • 34.86.241.216
  • 34.85.222.9
  • 34.86.171.127
  • 34.145.204.106
  • 34.150.252.169
  • 35.245.9.213

קאונסיל בלאפס, איווה, ארה"ב (us-central1)

  • 104.154.21.231
  • 35.192.130.126
  • 35.184.100.51
  • 34.70.128.74
  • 34.69.207.176
  • 35.239.118.197
  • 34.172.2.227
  • 34.71.191.210
  • 34.173.109.50
  • 35.225.65.3
  • 34.170.192.190
  • 34.27.97.67
  • 35.184.118.155
  • 34.27.58.160
  • 34.136.4.153
  • 35.184.8.255
  • 35.222.218.140
  • 34.123.109.49
  • 34.67.240.23
  • 104.197.72.40
  • 34.72.128.33
  • 35.226.158.66
  • 34.134.4.91
  • 35.226.210.85

דה דיילס, אורגון, ארה"ב (us-west1)

  • 34.127.41.199
  • 34.82.57.225
  • 35.197.66.244
  • 35.197.64.57
  • 34.82.193.215
  • 35.247.117.0
  • 35.233.222.226
  • 34.82.120.25
  • 35.247.5.99
  • 35.247.61.151
  • 35.233.249.160
  • 35.233.172.23
  • 35.247.55.33
  • 34.83.138.105
  • 35.203.184.48
  • 34.83.94.151
  • 34.145.90.83
  • 34.127.116.85
  • 35.197.35.188
  • 34.105.127.122
  • 35.233.191.84
  • 34.145.93.130
  • 35.233.178.166
  • 34.105.18.120
  • 104.199.118.14
  • 35.185.228.216
  • 34.145.16.151
  • 34.82.91.75
  • 34.82.142.245
  • 34.105.35.19
  • 34.83.231.96
  • 34.168.230.47
  • 35.247.46.214
  • 34.105.44.25
  • 35.185.196.75
  • 34.145.39.113
  • 34.168.121.44

לוס אנג'לס, קליפורניה, ארה"ב (us-west2)

  • 35.236.22.77
  • 35.235.83.177
  • 35.236.51.71

מונטריאול, קוויבק, קנדה (northamerica-northeast1)

  • 35.234.253.103
  • 35.203.46.255
  • 34.152.60.210
  • 35.203.0.6
  • 35.234.252.150
  • 35.203.96.235
  • 34.152.34.229
  • 34.118.131.36
  • 35.203.113.51

לונדון, אנגליה, בריטניה (europe-west2)

  • 34.105.198.151
  • 35.246.117.58
  • 34.142.123.96
  • 34.89.124.139
  • 34.89.127.51
  • 34.105.209.44
  • 35.242.138.133
  • 35.197.222.220
  • 35.189.111.173
  • 34.105.219.154
  • 34.105.181.133
  • 34.89.25.5
  • 35.246.10.206
  • 34.105.131.133
  • 34.142.77.18
  • 34.89.54.84
  • 35.189.94.105
  • 35.246.36.67
  • 35.234.140.77
  • 35.242.174.158
  • 35.197.199.20
  • 34.89.3.120
  • 34.105.156.107
  • 35.246.79.72
  • 34.105.139.38
  • 34.105.147.157
  • 34.105.195.129
  • 34.105.194.210
  • 34.142.79.123
  • 34.142.55.58
  • 34.142.85.249
  • 34.105.148.38
  • 35.246.100.66
  • 35.246.3.165
  • 34.105.176.209
  • 35.189.95.167
  • 34.89.55.2

פרנקפורט, גרמניה (europe-west3)

  • 35.242.243.255
  • 34.159.247.211
  • 35.198.128.126
  • 34.159.10.59
  • 34.159.72.77
  • 34.159.224.187
  • 34.89.159.138
  • 34.159.253.103
  • 34.159.244.43
  • 35.246.162.187
  • 34.89.141.190
  • 34.159.65.106
  • 34.159.197.31
  • 34.89.194.134
  • 34.159.252.155
  • 34.141.65.216
  • 34.159.124.62
  • 35.246.130.213
  • 34.89.206.21
  • 34.89.185.201
  • 34.159.171.46
  • 35.246.217.228
  • 35.242.236.115
  • 34.159.148.253

מומבאי, הודו (asia-south1)

  • 35.200.234.34
  • 34.100.205.37
  • 34.93.225.12
  • 34.93.221.137
  • 35.244.24.198
  • 35.244.52.179

אמסהפן, הולנד (europe-west4)

  • 35.204.118.28
  • 35.204.216.7
  • 34.90.52.191
  • 35.204.176.29
  • 34.90.199.95
  • 34.90.145.226
  • 34.141.162.7
  • 35.204.56.189
  • 35.204.11.229
  • 34.34.66.131
  • 34.32.195.89
  • 34.32.173.138

מחוז צ'נגואה, טייוואן (asia-east1)

  • 104.199.206.209
  • 34.80.173.212
  • 35.185.137.114

טוקיו, יפן (asia-northeast1)

  • 34.85.3.198
  • 34.146.68.203
  • 34.84.4.218

ג'ורונג ווסט, סינגפור (asia-southeast1)

  • 34.143.210.116
  • 34.143.132.206
  • 34.87.134.202
  • 34.101.158.88
  • 34.101.157.238
  • 34.101.184.52

ג'קרטה, אינדונזיה (asia-southeast2)

  • 34.101.158.88
  • 34.101.157.238
  • 34.101.184.52

סידני, אוסטרליה (australia-southeast1)

  • 34.87.195.36
  • 34.116.85.140
  • 34.151.78.48
  • 35.189.13.29
  • 35.189.9.81
  • 35.244.68.217

אוזאסקו (סאו פאולו), ברזיל (southamerica-east1)

  • 34.151.199.201
  • 35.199.122.19
  • 34.95.180.122
  • 34.95.168.38
  • 34.151.235.241
  • 34.95.181.19
  • 35.199.91.120
  • 35.247.197.109
  • 35.199.86.48
  • 35.199.106.166
  • 35.198.1.191
  • 35.247.235.128
  • 35.247.211.2
  • 35.247.200.249
  • 34.95.177.253

מופעים שמתארחים ב-Amazon Elastic Kubernetes Service‏ (Amazon EKS)

במקרים שבהם מתארחים ב-Amazon EKS, צריך להוסיף לרשימת ההיתרים את כתובות ה-IP שתואמות לאזור שלכם.

כאן מופיעה רשימה מלאה של כתובות IP למקרים שמתארחים ב-Amazon EKS

מזרח ארה"ב (צפון וירג'יניה) (us-east-1)

  • 18.210.137.130
  • 54.204.171.253
  • 50.17.192.87
  • 54.92.246.223
  • 75.101.147.97
  • 18.235.225.163
  • 52.55.239.166
  • 52.86.109.68
  • 54.159.176.199
  • 3.230.52.220
  • 54.211.95.150
  • 52.55.10.236
  • 184.73.10.85
  • 52.203.92.114
  • 52.3.47.189
  • 52.7.255.54
  • 54.196.92.5
  • 52.204.125.244
  • 34.200.64.243
  • 18.206.32.254
  • 54.157.231.76
  • 54.162.175.244
  • 54.80.5.17
  • 35.168.173.238
  • 52.44.187.22
  • 18.213.96.40
  • 23.22.133.206
  • 34.239.90.169
  • 34.236.92.87
  • 3.220.81.241
  • 54.197.142.238
  • 34.200.121.56
  • 3.83.72.41
  • 54.159.42.144
  • 3.229.81.101
  • 34.225.255.220
  • 54.162.193.165
  • 34.235.77.117
  • 3.233.169.63
  • 54.87.86.113
  • 18.208.86.29
  • 52.44.90.201

מזרח ארה"ב (אוהיו) (us-east-2)

  • 3.135.171.29
  • 18.188.208.231
  • 3.143.85.223

US West (Oregon)‎‏ (us-west-2)

  • 44.237.129.32
  • 54.184.191.250
  • 35.81.99.30

קנדה (מרכז) (ca-central-1)

  • 52.60.157.61
  • 35.182.169.25
  • 52.60.59.128
  • 35.182.207.128
  • 15.222.172.64
  • 3.97.27.51
  • 35.183.191.133
  • 15.222.86.123
  • 52.60.52.14

אירופה (אירלנד) (eu-west-1)

  • 54.74.243.246
  • 54.195.216.95
  • 54.170.208.67
  • 52.49.220.103
  • 52.31.69.117
  • 34.243.112.76
  • 52.210.85.110
  • 52.30.198.163
  • 34.249.159.112
  • 52.19.248.176
  • 54.220.245.171
  • 54.247.22.227
  • 176.34.116.197
  • 54.155.205.159
  • 52.16.81.139
  • 54.75.200.188
  • 34.248.52.4
  • 54.228.110.32
  • 34.248.104.98
  • 54.216.117.225
  • 52.50.172.40

אירופה (פרנקפורט) (eu-central-1)

  • 18.157.231.108
  • 18.157.207.33
  • 18.157.64.198
  • 18.198.116.133
  • 3.121.148.178
  • 3.126.54.154

אסיה-פסיפיק (טוקיו) (ap-northeast-1)

  • 54.250.91.57
  • 13.112.30.110
  • 54.92.76.241
  • 52.68.245.25
  • 3.114.138.0
  • 54.249.39.36

אסיה-האוקיינוס השקט (סידני) (ap-southeast-2)

  • 13.238.132.174
  • 3.105.238.71
  • 3.105.113.36

דרום אמריקה (סאו פאולו) (sa-east-1)

  • 54.232.58.181
  • 54.232.58.98
  • 177.71.134.208

מופעים שמתארחים ב-Microsoft Azure

במקרים שבהם המופעים מתארחים ב-Azure, צריך להוסיף לרשימת ההיתרים את כתובות ה-IP שתואמות לאזור שלכם.

כאן אפשר לראות רשימה מלאה של כתובות IP למופעים שמארחים ב-Microsoft Azure

וירג'יניה, ארה"ב (eastus2)

  • 52.147.190.201

דבלין, אירלנד (northeurope)

  • 20.123.126.28

אירוח מדור קודם

צריך להשתמש בכתובות ה-IP האלה לכל המקרים שמתארחים ב-AWS ונוצרו לפני 7 ביולי 2020.

כאן אפשר לראות רשימה מלאה של כתובות IP לאירוח מדור קודם

ארצות הברית (ברירת המחדל של AWS)

  • 54.208.10.167
  • 54.209.116.191
  • 52.1.5.228
  • 52.1.157.156
  • 54.83.113.5

קנדה

  • 99.79.117.127
  • 35.182.216.56

אסיה

  • 52.68.85.40
  • 52.68.108.109

אירלנד

  • 52.16.163.151
  • 52.16.174.170

גרמניה

  • 18.196.243.94
  • 18.184.246.171

אוסטרליה

  • 52.65.128.170
  • 52.65.124.87

דרום אמריקה

  • 52.67.8.103
  • 54.233.74.59

שלב 3: מנהור SSH

אם הכרטיסייה SSH Servers מופעלת, צריך לפעול לפי ההוראות שבדף הזה כדי להוסיף את פרטי ההגדרה של שרת ה-SSH ל-Looker.

בדף Connections בקטע Admin ב-Looker, בוחרים בכרטיסייה SSH Server.

לאחר מכן לוחצים על הוספת שרת. מוצג הדף Add SSH Server (הוספת שרת SSH):

  1. מזינים שם להגדרת שרת ה-SSH.
  2. לוחצים על הורדת מפתח כדי להוריד את המפתח הציבורי לקובץ טקסט. חשוב לשמור את הקובץ הזה, כי בהמשך תצטרכו להוסיף את המפתח הציבורי לקובץ המפתחות המורשים של שרת ה-SSH.
  3. מזינים את שם המשתמש ש-Looker ישתמש בו כדי להתחבר לשרת ה-SSH.
  4. מזינים את כתובת ה-IP או את שם המארח של שרת ה-SSH.
  5. מזינים את מספר היציאה שמשמש לחיבור לשרת ה-SSH.

שלב 4: הכנת מארח המנהרה

הוספת המפתח הציבורי לקובץ authorized_keys

כדי לאמת את סשן מנהרת ה-SSH, ‏ Looker דורש מפתח ציבורי ייחודי (Looker לא תומך בכניסה באמצעות סיסמה). אם הכרטיסייה SSH Servers מופעלת במופע שלכם, תוכלו להוריד את המפתח הציבורי לקובץ טקסט על ידי לחיצה על הלחצן Download Key (הורדת מפתח) כשמזינים את פרטי ההגדרה של SSH. אם אתם מגדירים את מנהרת ה-SSH בעזרת אנליסט של Looker, האנליסט יספק לכם מפתח ציבורי ייחודי.

תצטרכו להכין את המארח (שרת מסד הנתונים או שרת המנהור) על ידי יצירת משתמש looker והוספת המפתח הציבורי של Looker לקובץ .ssh/authorized_keys של Looker. כך עושים זאת:

  1. בשורה של הפקודה, יוצרים קבוצה בשם looker:

    sudo groupadd looker
    
  2. יוצרים את המשתמש looker ואת ספריית הבית שלו:

    sudo useradd -m  -g looker  looker
    
  3. מעבר למשתמש looker:

    sudo su - looker
    
  4. יוצרים את הספרייה .ssh:

    mkdir ~/.ssh
    
  5. הגדרת הרשאות:

    chmod 700 ~/.ssh
    
  6. עוברים לספרייה .ssh:

    cd ~/.ssh
    
  7. יוצרים את הקובץ authorized_keys:

    touch authorized_keys
    
  8. הגדרת הרשאות:

    chmod 600 authorized_keys
    

באמצעות כלי עריכת הטקסט המועדף עליכם, מוסיפים את מפתח ה-SSH שקיבלתם מהאנליסט של Looker לקובץ authorized_keys. המפתח חייב להיות בשורה אחת. במקרים מסוימים, כשמאחזרים את המפתח מהאימייל, תוכנת האימייל מוסיפה מעברי שורה. אם לא תסירו אותם, לא תוכלו ליצור את מנהרת ה-SSH.

הוספת ssh-rsa לקובץ sshd_config

ב-OpenSSH,‏ ssh-rsa מושבת כברירת מחדל, מה שיכול לגרום לשגיאות בהגדרת מנהרת SSH. כדי לפתור את הבעיה, מוסיפים את ssh-rsa לרשימת האלגוריתמים המקובלים של השרת. כך עושים זאת:

  1. עורכים את קובץ sshd_config. בדרך כלל אפשר למצוא את הכתובת הזו בנתיב ~/etc/ssh/sshd_config.
  2. מוסיפים לקובץ sshd_config את הנתונים הבאים:

       HostKeyAlgorithms +ssh-rsa
       PubKeyAcceptedAlgorithms +ssh-rsa
    

הגדרת MTU ב-Redshift

משתמשי Amazon Redshift צריכים להגדיר את לקוח Redshift ואת שרת ה-SSH ל-MTU של 1500.

הערות בנושא אבטחת מנהרות

כשמנהרת SSH מסתיימת בשרת מסד הנתונים, החיבור מ-Looker נראה כמו חיבור מקומי בשרת מסד הנתונים. לכן, הוא מבטל את מנגנוני האבטחה שמבוססים על חיבורים, שמוטמעים בפלטפורמות של מסדי נתונים כמו MySQL. לדוגמה, נפוץ מאוד לתת גישה מקומית למשתמש root ללא סיסמה.

כברירת מחדל, פתיחת גישת SSH מאפשרת גם העברה של כל היציאות, ועוקפת את חומות האש שבין Looker לבין מארח מסד הנתונים שמסיים את מנהרת ה-SSH. יכול להיות שסיכון האבטחה הזה ייחשב כבלתי קביל. אפשר לשלוט בהעברת הפורטים הזו ובאפשרות להתחבר לשרת המנהור על ידי הגדרה נכונה של הרשומה .ssh/authorized_keys למפתח הציבורי של Looker.

לדוגמה, אפשר להוסיף את הטקסט הבא לפני מפתח ה-SSH של Looker בקובץ authorized_keys: חשוב לציין שהטקסט הזה חייב להיות מותאם לסביבה שלכם.

no-pty,no-X11-forwarding,permitopen="localhost:3306",permitopen="localhost:3307",
command="/bin/echo Login Not Permitted"

דוגמאות ופרטים מלאים מופיעים במאמרי העזרה של Linux בנושא man ssh ו-man authorized_keys.

השלבים הבאים

אם הכרטיסייה SSH Servers (שרתי SSH) מופעלת במופע שלכם, חוזרים אל הדף Add SSH Server (הוספת שרת SSH) ובוחרים באפשרות Test & Request Fingerprint (בדיקה ובקשת טביעת אצבע) כדי לאמת את החיבור לשרת ה-SSH. ב-Looker יוצג מסך עם הגדרת ה-SSH החדשה ואפשרויות להורדה או לצפייה במפתח הציבורי, ולצפייה בטביעת האצבע הייחודית של הגדרת שרת ה-SSH.

לאחר מכן, בדף הגדרות החיבור של מסד הנתונים:

  1. מפעילים את המתג SSH Server (שרת SSH) ובוחרים את הגדרת שרת ה-SSH מהרשימה הנפתחת.
  2. בשדות מארח מרוחק ויציאה, מזינים את כתובת ה-IP או שם המארח ואת מספר היציאה של מסד הנתונים.

אם אתם מגדירים את מנהרת ה-SSH בעזרת אנליסט של Looker, צריך להודיע לאנליסט שאתם מוכנים לבדוק את מנהרת ה-SSH. אחרי שהם יאשרו שהמנהרה נוצרה, הם יספקו לכם את מספר היציאה בצד של Looker במנהרת ה-SSH.

לאחר מכן, בדף הגדרות החיבור של מסד הנתונים:

  1. מזינים localhost בשדה מארח מרוחק.
  2. בשדה יציאה, מזינים את מספר היציאה בצד Looker של מנהרת ה-SSH שסופק על ידי אנליסט Looker.
  3. משביתים את האפשרות Verify SSL Cert (אימות אישור SSL) בדף Connections (חיבורים) של מסד הנתונים.

    אי אפשר להשתמש באישור SSL כשמגדירים מנהרת SSH למסד הנתונים מ-Looker. במקום זאת, מפתח ה-SSH שהוספתם בשלב 4 מספק את אבטחת הלחיצת יד בין Looker לבין מסד הנתונים שלכם.