1. ספרייה
  2. יציאות
  3. מדריך יציאות נפוצות

עודכן לפני חודש

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

זה קורה כל הזמן. לא מדי פעם, לא כשמשתמשים לוחצים על כפתורים — כל הזמן. משימות רקע, בדיקות תקינות, אימות סשנים, חימום מטמון. היישום שלך מדבר עם מסד הנתונים שלו כמו שאתה נושם: אוטומטית, ברציפות, מבלי לחשוב על כך. פורט 3306 נושא את כל זה.

מה קורה על פורט 3306

MySQL הוא מערכת ניהול מסדי נתונים רלציונית. היא מאחסנת נתונים בטבלאות, מקבלת שאילתות כתובות ב-SQL, ומחזירה תוצאות. כששרת MySQL מתחיל לפעול, הוא מאזין על פורט 3306 לחיבורים מלקוחות — קוד היישום שלך, כלי שורת פקודה, פלטפורמות אנליטיקה.

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

כל שאילתה שהיישום שלך שולח — "האם המשתמש הזה קיים?", "מה יש בעגלה שלו?", "תרשום את הרכישה הזו" — עוברת דרך פורט 3306.

חיבורים מקומיים לעומת חיבורים מרוחקים

שתי תצורות עיקריות שולטות בדרך שבה יישומים מתקשרים עם MySQL.

חיבורים מקומיים מתרחשים כשהיישום ומסד הנתונים פועלים על אותה מכונה. המחשב הנייד שלך שמריץ שרת פיתוח מתחבר ל-MySQL דרך localhost על פורט 3306. הנתונים לעולם לא נוגעים בכבל רשת. הם נשארים בתוך המכונה, מוגנים על ידי מערכת ההפעלה. אף אחד לא יכול ליירט אותם כי הם לא יוצאים לשום מקום.

חיבורים מרוחקים מתרחשים כשמסד הנתונים נמצא על שרת אחר. בסביבת ייצור, זה טיפוסי: שרתי ווב במקום אחד, שרת מסד הנתונים במקום אחר. כעת החיבור עובר על פני רשת — רשת פרטית במרכז הנתונים שלך, VPC בענן, או האינטרנט הציבורי.

מבחינת אבטחה, מדובר בשני עולמות שונים לגמרי. חיבורים מקומיים מוגנים מטבעם. חיבורים מרוחקים דורשים הגנה מכוונת.

מדוע חשיפת פורט 3306 מסוכנת

תוקפים לא סורקים אחר פורט 3306 מסקרנות לגבי הסכמה שלך. הם סורקים כי מסדי נתונים מכילים את הדברים שכדאי לגנוב: פרטי כניסה, מידע תשלום, נתונים אישיים, סודות עסקיים. פורט MySQL חשוף הוא הזמנה לקחת הכל.

כלים אוטומטיים סורקים את כל האינטרנט בחיפוש אחר מופעים של פורט 3306 פתוח. כשהם מוצאים כזה, הם מנסים שמות משתמש נפוצים — root, admin, mysql — עם אלפי שילובי סיסמאות. הם בוחנים לאיתור חולשות שלא תוקנו. הם מחפשים פרטי כניסה בברירת מחדל שמעולם לא שונו.

אפילו סיסמאות חזקות לא מבטלות את הסיכון. חולשת zero-day ב-MySQL יכולה לאפשר לתוקפים גישה לפני שאתה מספיק לבצע תיקון. חיבורים לא מוצפנים מאפשרים לכל מי שנמצא בנתיב הרשת לקרוא את השאילתות שלך ואת תוצאותיהן. משטח ההתקפה פשוט גדול מדי.

הכלל הוא מוחלט: MySQL לעולם לא צריך להיות נגיש ישירות מהאינטרנט הציבורי.

כיצד להגן על פורט 3306

חומות אש לרשת הן המחסום הראשון. הגדר את חומת האש שלך כך שתאפשר חיבורים על פורט 3306 רק מכתובות IP ספציפיות — שרתי הווב שלך, מכונות הניהול שלך, ולאף גורם אחר. פלטפורמות ענן מקלות על כך. קבוצת אבטחה של AWS יכולה להגביל את מופע ה-RDS שלך לקבל חיבורים רק מ-EC2 בקבוצת אבטחה ספציפית. כל השאר נחסמים.

בקרות הגישה של MySQL עצמה מוסיפות שכבה שנייה. כשאתה יוצר משתמש מסד נתונים, אתה מציין מאילו מחשבים המשתמש יכול להתחבר. משתמש שמוגדר כ-webapp@192.168.1.100 יכול לאמת רק מכתובת ה-IP המדויקת הזו. אפילו אם תוקף גונב את הסיסמה, הוא לא יכול להשתמש בה ממקום אחר.

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

הצפנת תעבורת מסד הנתונים

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

MySQL תומך בהצפנת TLS לחיבורים. כשמאופשר, הלקוח והשרת מקימים ערוץ מוצפן במהלך ה-handshake. כל מה שאחרי — אימות, שאילתות, תוצאות — עובר דרך המנהרה המוצפנת הזו.

אתה יכול לדרוש TLS ברמת השרת (כל החיבורים חייבים להצפין) או ברמת המשתמש (משתמשים ספציפיים חייבים להצפין). הנוהג המודרני הוא לדרוש את זה בכל מקום. עם connection pooling וחומרה מודרנית, עלות הביצועים מינימלית1. ההגנה משמעותית.

שירותי מסדי נתונים מנוהלים כגון Amazon RDS מאפשרים TLS כברירת מחדל ומספקים אישורים אוטומטית. אין סיבה לא להשתמש בכך.

מחרוזות חיבור — איך עושים את זה נכון

יישומים מתחברים ל-MySQL עם מחרוזות חיבור:

mysql://username:password@hostname:3306/database_name

לעולם אל תשים פרטי כניסה ישירות בקוד. לעולם אל תעלה אותם לבקרת גרסאות. אחסן אותם במשתני סביבה, במנהל סודות כגון HashiCorp Vault או AWS Secrets Manager, או בקובצי תצורה עם הרשאות מוגבלות. פרטי כניסה ב-git repository הם פרטי כניסה באינטרנט.

הכללת הפורט במפורש (גם אם 3306 הוא ברירת המחדל) הופכת את ההגדרה לברורה יותר ומאפשרת הפעלת MySQL על פורטים חלופיים במידת הצורך. אבל שינוי פורטים אינו אמצעי אבטחה — זה עמימות. תוקפים סורקים את כל הפורטים, לא רק 3306.

התמונה המלאה

אבטחת MySQL היא שכבתית. כל שכבה מתמודדת עם איומים שונים:

  • בידוד רשת עוצר חיבורים בלתי מורשים לפני שהם מתחילים
  • בקרת גישה מבוססת מחשב מגבילה אילו מכונות מורשות להתחבר ובשם אילו משתמשים
  • פרטי כניסה חזקים הופכים מתקפות brute-force לבלתי מעשיות
  • הצפנת TLS מגינה על נתונים במעבר מיירוט
  • ניהול סודות שומר על פרטי כניסה מחוץ לקוד וקבצי יומן

אף שכבה אחת אינה מספיקה. יחד, הן הופכות את מסד הנתונים שלך לניתן להגנה.

פורט 3306 הוא רק מספר — הדלת הברירת-מחדל ל-MySQL. מה שחשוב הוא האם השארת את הדלת הזו פתוחה לעולם. מסד הנתונים שלך מכיל כל מה שהיישום שלך יודע. כל משתמש. כל עסקה. כל סוד. הגן עליו בהתאם.

שאלות נפוצות על פורט 3306

האם בטוח להשתמש בפורט 3306 עבור MySQL?

מספר הפורט אינו בעיית האבטחה — החשיפה היא. הפעלת MySQL על פורט 3306 מאחורי חומת אש מוגדרת כראוי שמאפשרת רק כתובות IP מורשות היא בטוחה. הפעלתה על כל פורט עם גישה לאינטרנט הציבורי היא מסוכנת.

כיצד אדע אם פורט MySQL שלי חשוף לאינטרנט?

מחוץ לרשת שלך, נסה להתחבר: mysql -h your-public-ip -P 3306. אם קיבלת תגובה כלשהי (אפילו כישלון אימות), הפורט חשוף. אתה יכול גם להשתמש בסורקי פורטים מקוונים. אם אתה יכול להגיע אליו מהאינטרנט, גם תוקפים יכולים.

האם כדאי לשנות את MySQL מפורט 3306 לפורט אחר?

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

האם אני צריך הצפנת TLS עבור MySQL אם מסד הנתונים שלי נמצא ברשת פרטית?

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

מקורות

האם דף זה היה מועיל?

😔
🤨
😃