VPS – "מצב האומה"

אתמול היה הכנס השנתי של איגוד האינטרנט הישראלי (כן, זהו אותו איגוד שמוכר דומיינים), והיום הופיעה כתבה בוואלה שמסכמת את ההרצאות והפאנל שהיה שם. נחמד לדעת ש-52% מהזמנות הפיצה דרך דומינוס פיצה נעשים דרך הרשת 🙂

אבל כאן זה בלוג שמדבר על שרתים וירטואליים, אותם שרתי VPS שספקים קטנים כגדולים מוכרים ללקוחות, וכאן בישראל אפשר לסכם את השנה הזו ב-6 מילים:

משתפר, אבל עדיין מאוד רחוקים מחו"ל..

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

אבל כשזה מגיע לטכנולוגיות ופתרונות לשוק העסקי, ישראל נמצאת הרחק מאחור בכל הקשור למחשוב ענן. חברות רבות בארץ אימצו את ה-Buzzword, אבל כשמסתכלים היטב על ההצעות שהן מציעות, רואים שאין הבדל בין הצעות שרתי VPS של ספקים שונים לבין אותם ספקים המתהדרים בנוצות של "מחשוב ענן". אין API, אין אפשרות להגדיל ולהקטין את כמות השרתים שלך דרך אותו API, אין אפשרות להוסיף ולהוריד כתובות IP, הגדרות רשת פרטיות ו/או יצירת רשת חצי פנימית חצי חיצונית, אכסון עצמאי נגיש ושלל דברים נוספים שחברות כמו אמזון ואחרות מציעות בארה"ב ובעולם.

מה כן יש בארץ? פוסטרים של חברות עם המון עננים ומכירת פתרונות VPS במסווה של "מחשוב ענן".

גם בתחום התקשורת בין ישראל לחו"ל אנחנו עדיין באותו מצב כמו מלפני שנה ומעלה. בזק בינלאומי סללה בקול תרועה גדול סיב אופטי (שעובר בדיוק את אותו מסלול כמו של MED-1.. צעד לא חכם במיוחד), אך עדיין המחירים והתעדוף המגוחך בארץ נשאר כמו שהוא. הקשר ל-VPS? אם אתה מסנכרן בין שרת VPS בארץ לשרת VPS בחו"ל, אתה עדיין תסבול איטיות בתקשורת החוצה ופנימה מחו"ל / אל חו"ל.

ומה הלאה?

לפני זמן מה כתבתי בבלוג האישי שלי כמה דברים, ואני רוצה להזכיר כאן נקודה מסויימת שלדעתי היא חשובה: יותר מ-יזם אחד שאל אותי לגבי מחשוב ענן בארץ, וכמו שעניתי לו וכתבתי בבלוג שם אכתוב כאן: יש בהחלט מקום למחשוב ענן בארץ, יש בהחלט מקום ל-On Demand ושאר שרותי ענן שנהוגים בחו"ל. יש הרבה לקוחות שמתעניינים בכך, כך שיש בהחלט מקום למחשוב ענן רציני בארץ.

אך מחשוב ענן רציני אינו רכישה של כמה מאות שרתים, מתגים, נתבים, חומות אש ו-ESXI. יש צורך בהשקעה מאוד רצינית בפיתוח, בתמחור וחישובים שונים, ובעוד דברים שלא "חץ ביז" ולא שום ספק בינוני אחר יכולים להקים, כי מדובר בהשקעה כספית גדולה ובעוד דברים על מנת לגרום לחברות ישראליות לבוא להתארח בפתרון כזה ולא לרוץ לחו"ל.

פדיחות במבצע

אתמול נודע לי כי אחד המתחים יוצא ב”מבצע” ענק. הוא פירסם תחת כל עץ רענן את המודעה שלו, הנה חלק ממנה (פרטי הספק הוסתרו).

vps-1

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

vps-2

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

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

יש יצירתיות ויש יצירתיות

כשזה מגיע למגיע למכירות, כל ספק שרת וירטואלי (VPS) מנסה לבדל את עצמו מהשאר. חוץ מתשבוחות והצגה בולטת של היתרונות, ספקים משתמשים גם במיתוג של שמות שונים. כך לדוגמא אצל VPS נקרא אצל ספקים רבים “שרתי וירטואלי” וספקים אחרים קוראים לזה בשמות אחרים: “שרת מיני יעודי”, SDS, SGS, Private Server ועוד ועוד.

עד כאן הכל טוב ולגטימי לחלוטין.

אולם לעיתים ספקים קצת “מגמישים” את תאור המוצרים שלהם, וכתוצאה מכך המוצר שנמכר הוא לא המוצר שלקוחות מחפשים אלא משהו אחר “בתחפושת” של אותו מוצר שלקוחות מחפשים.

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

vps

ההצעה הזו היא מוזרה, כי היא מדברת על 2 דברים שונים לחלוטין:

  • ריסלר (Reseller) זה מושג בתחום אחסון אתרים (ואחסון משותף) שבו אתה משלם סכום מסויים והחשבון שלך מוגדר בפאנל כ-Resller, כלומר אתה יכול לפתוח X תתי חשבונות תחת החשבון שלך (כאשר X נקבע על ידי הספק). כל החשבונות יתארחו על אותו שרת אחסון שיתופי יחד עם לקוחות אחרים שלא קשורים כלל לאותו Reseller, והם יושבים על אותו שרת ועל אותו דיסק ובאותה מערכת הפעלה.
  • VPS – הוא שרת וירטואלי עצמאי שנבנה על תוכנת וירטואליזציה, אך הוא כשלעצמו עצמאי, כלומר אתה יכול להחליף בו כל רכיב תוכנה, אתה יכול לפתוח עליו כמה חשבונות שתרצה, להריץ עליו מה שתרצה (ההגבלות הן בגודל הדיסק, רוחב הפס שמוקצה לשרת הוירטואלי עצמו ומהירות הליבה או המעבד שמוקצים לך). טכנית אם אתה מתקין פאנל על אותו VPS, אתה יכול להציע בעצמך ללקוחות חבילת Reseller, כי השרת הוא בעצם שלך.

כלומר יש פה משהו שהוא מעין “מיש-מש” אבל לא קולע לכלום אלא מנסה לשלב 2 דברים שונים, ואם הלקוח יטריח את עצמו באותו אתר של הספק להסתכל על חבילות ה-VPS, הוא ימצא שם דברים שונים לחלוטין.

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

דוגמא אחרת היא דוגמא שמנסים “לשחק” עם המספרים ולמכור ללקוח משהו שהוא לא מקבל בזמן הרכישה.

אחד מהספקים לדוגמא, “משחק” במספרים של הרוחב פס. הוא טוען בפרסומיו השונים שהוא נותן ללקוחות רוחב פס של 10 מגהביט. אם עושים בדיקה מהירה עם הספק, אז יוצאת האמת: הוא לוקח מספר ומנסה “לחלק אותו”. במקרה דנן, הוא לוקח רוחב פס סימטרי של 5 מגהביט (כלומר 5 מגהביט החוצה מהשרת ו-5 מגהביט פנימה לשרת) ומנסה להציג זאת כ-10 מגהביט, וזו הטעיה. קו 10 מגהביט אמור לתת לך 10 מגהביט (ברוטו) פנימה או החוצה מהשרת. מה שאותו ספק נותן זה 5, לא 10. כך יוצא שלקוח שמשלם X שקלים על אותם “10 מגהביט” מקבל בעצם חצי ממה שהובטח לו, וזה רע.

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

כמה מילים על קורסי אבטחת מידע

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

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

רק שאותן חברות לא ממש שמות תנאי סף, אלא משווקות את זה לכולם. משעמם לך בעבודה? לא מוצא עבודה? תבוא אלינו, תלמד אבטחת מידע (“תחום מאוד חם היום”, אתה בוודאי תשמע את זה מפי איש המכירות של אותו בית ספר/מכללה), ויבטיחו לך שתוך זמן קצר מסיום הלימודים – יחטפו אותך לעבודה עם משכורת גבוהה ותנאים מאוד מפנקים.

 

אז תרשו לי לפוצץ את הבלון הזה ולחסוך לכם עוגמת נפש.

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

אבטחת מידע מתחלקת לכל מיני חלקים, אני אתייחס ל-2 העיקריים:

  • אבטחת מידע בתכנות – בשביל ללמוד את החלק הזה, אתה צריך לדעת תכנות בצורה טובה, עם מספר שנות נסיון, ועדיף שיהיה לך ידע בכמה שפות תכנות. (ולא, ידיעה של Visual Basic לא נחשבת שפת תכנות רצינית). רק לאחר שיש לך ידע רציני עם מספר שנות נסיון, אתה יכול ללמוד על אבטחת מידע, על מה לחפש, ואתה חייב להיות יצירתי ולחשוב כמו פורץ שהולך לפרוץ ולהזיק לאפליקציה הנכתבת שבאת להגן עליה.
  • אבטחת מידע במובן הסיסטם – זה בדרך כלל הכוונה של אותם קורסים ובשביל זה צריך שיהיה לך נסיון עשיר כאיש סיסטם, עדיף עם ידע ב-Linux, ולא רק מה שמלמדים כמו תוכי בקורסים של מיקרוסופט! אתה צריך לדעת להכיר דברים כמו 7 השכבות (OSI Model), הכרה עמוקה של 4 שכבות TCP/IP, ניתוב, ראוטרים, סוויצ’ים, BGP ועוד 1001 מושגים ויש צורך בהיכרות רצינית שלא נרכשת בקורס (למרות שיבטיחו לך שכן), נסיון בהקמה של הדברים, הגדרות שלהם במערכות הפעלה שונות, וגם התנסות בדברים. אתה צריך ראש יצירתי (ולא מרובע!) כדי לחשוב איך פורץ הולך לתקוף את המערכת שלך, להכיר את התוכנות שמגינות ובמיוחד את הכלים בקוד פתוח (nmap, snort ועוד רבים אחרים) שמאפשרות לך לסרוק ולמצוא את הדברים ולהבין במה מדובר.

אני בהחלט יכול להבין צעירים רבים שרוצים לעשות הסבת מקצוע ולהיכנס לתחום ההיי-טק וגם לעסוק באבטחת מידע (כי הם שמעו שזה מאוד רווחי), אבל אם תאזין לאותן חברות/בתי-ספר/מכללות, ואין לך ידע עשיר (הרבה יותר משנה נסיון, אגב), אתה פשוט תשרוף את כספך/מענק השחרור שלך וכשתלך לראיונות אתה תשמע את המשפט האלמותי “תודה, אנחנו נתקשר אליך” (וכמובן לא יתקשרו אליך).

אינני מנסה לייאש צעירים שרוצים להיכנס להיי-טק. יש בהחלט דרישה לאנשים, אבל צריך לדעת מה ללמוד, ותרשו לי להמליץ על 2 דברים שונים שכדאי ללמוד:

  1. Linux – קחו גירסת Linux כלשהיא (Fedora, Ubuntu), הקימו בבית מכונה וירטואלית, התקינו את המערכת ולימדו אותה עם דגש על לימוד הפונקציונאליות דרך שורת הפקודה וטרמינל, לאו דווקא דרך הממשק הגרפי. חסרים אנשי Linux טובים בשוק והידע הזה רק יסייע לך.
  2. מתכנתים – כל סטארט-אפ, כל עסק שכותב אפליקציות מחפש מתכנתים טובים, אבל מתכנתים שיודעים להתמודד עם שפות כמו Java, או ++C, או C. כך לדוגמא, שוק פיתוח האפליקציות עבור iPhone/iPad/iPod ומצד שני ה-Android מצריך ידע טוב ב-JAVA (אנדרואיד) וב-C (אייפון/אייפד). מה שהשוק לא כל כך מחפש זה מפתחים בפלטפורמות של מיקרוסופט – יש הצפה של בוגרי קורסים והמשכורות ירדו בהתאם.

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

בהצלחה

איך מגינים על שרת וירטואלי?

אנשים לוקחים לצרכיהם שרתים וירטואלים, בין אם בארץ או בחו"ל (יותר מוכר בארץ כ-שרתי VPS בחו"ל זה יותר מוכר כ-Virtual Hosting או Virtual Server) כדי להריץ על השרת כל מיני דברים, בין אם אתר בינוני עד גדול, אפליקציות וכו'. טכנולוגיית הויטוראליזציה עצמה אינה משנה לתוכן פוסט זה, בין אם זה KVM, Hyper-V, Virtuozzo, Xen, OpenVZ או VMWare.

העניין הוא שרבים לחסוך ולחתוך מחירים, ובד"כ הם מוותרים על שרותי סיסטם מצד הספק. אחרי הכל "כמה זה כבר מסובך לנהל אבטחה של Linux או Windows? יש לי כזה בבית שרץ על VMWare / VirtualBox ולא קרתה שום בעיה עם מה שאני מתקין ועושה". כך אמר לי לדוגמא אדם אחד שרצה לשכור את שרותי הפרילנס שלי לטפל ב"תקלה קטנה". מהות התקלה? שום דבר מיוחד, הוא בטעות מחק את תיקיות sbin, /bin, /usr/ והוא התפלא למה המערכת לא עולה.

מכיוון שזהו אינו פוסט "בואו קחו את שרותיי", אלא פוסט "מה אתם יכולים לעשות כדי להגן על המכונה שלכם", נתחיל בכמה צעדים בסיסיים כדי להגן. פוסט זה מדבר ספציפית על Linux, לא חשוב איזו הפצה: בניגוד למכונה שלך בבית, שרת וירטואלי אצל רוב הספקים מקבל IP אמיתי (בין אם דרך רכיב NAT בתשתית הספק ובין אם מוגדרת כתובת IP על השרת עצמו). בבית שלך, אתה מאחורי NAT של הראוטר שלך אז בברירת המחדל אף אחד לא מגיע אליך (כמעט), מה שאומר שהמכונה שלך מרגע שהיא עלתה, היא חשופה ולא חשוב איזו חומת אש יש מעליה, לפיכך חשוב לבצע את הצעדים הבאים:

  1. לא לעבוד כ-root! הנה טעות שרבים עושים – מתקינים מכונת Linux (או מקבלים התקנה מוכנה מהספק) עם שם וסיסמא ומשאירים את המצב כך. חובה להגדיר משתמש רגיל ולעבוד אך ורק איתו ולא כ-root. איך עושים פעולות של root עם משתמש רגיל? אם אתה משתמש ב-CentOS אז תוכל לקרוא כאן איך להשתמש ב-sudo. בהפצות כמו אובונטו, שם המשתמש הראשון שמוגדר בעת ההתקנה יש לו הרשאות sudo.
  2. לבטל כניסת משתמש root – סקריפטים רבים שמנסים לפרוץ לשרתים (יש המון כאלו) בודקים קודם כל אם יש כניסה למשתמש root עם כל מיני סיסמאות, ולכן מומלץ לבטל אפשרות כניסת root ע"י שינוי קובץ etc/ssh/sshd_config/ השינוי: חפש את PermitRootLogin Yes – תמצא בהתחלה סולמית (#) ליידו, מחק את הסולמית ושנה את ה-Yes ל-No, ולאחר מכן הפעל את שרות ה-ssh מחדש (פקודת: service sshd restart). הדבר אינו פוגע בכניסת משתמש root דרך הקונסולה (לא דרך SSH) אם ספק השרות נותן לך קונסולה. מומלץ באותה הזדמנות לשנות את כניסת (פורט) SSH מ-22 למשהו אחר (נניח 1340 או מספר אחר מעל 1024).
  3. אם הינך משתמש ב-MySQL והשרת שלך הוא התקנה חדשה, הרץ (עם sudo) את פקודת mysql_secure_installation והזן את הפרטים שהתוכנה מבקשת ממך. לאחר הזנת הפרטים, המערכת תסגור כניסות ותמחק משתמשים מיותרים.
  4. אם יש לך מספר אתרים שמתארחים על השרת, פתח לכל אחד שם משתמש וקבוצה משלו (UID, GID) והשתמש בדברים כמו mod_suphp (ניתן להתקין את זה בפקודת yum install suphp על Centos או apt-get install suphp באובונטו/Debian). כאן תוכל למצוא הוראות איך להשתמש ב-suphp עם CentOS וכאן עם דביאן/אובונטו. בשיטה זו, תוכל לראות בקלות איזה אתר משתמש במשאבים ובכמה.
  5. תוכנות כמו Putty ב-Windows או תוכנות טרמינל במק ובלינוקס מאפשרות בקלות ליצור ולהשתמש במפתחות על מנת להיכנס (Login) לשרות. מומלץ להשתמש בשרות זה במקום סיסמאות, כך תוכל להגן על השרת שלך הרבה יותר, מכיוון שאף אחד לא יוכל לנסות לעשות Login לשרת שלך. איך עושים זאת? עוקבים אחר ההוראות כאן (ההוראות מתאימות לכל ההפצות).
  6. אל תפתח סתם פורטים: רבים אוהבים את השימוש בתוכנות גרפיות כדי לנהל דברים כמו MySQL עם Client שמותקן על המחשב בבית ולשם כך הם פותחים את פורט 3306. זו שגיאה נפוצה כי פורצים יכולים להאזין למידע ומשם לפרוץ בקלות לשרת שלך. אם אתה רוצה כלי וובי טוב לנהל בקלות MySQL, כדאי להשתמש ב- phpmyadmin (שימו לב להגדיר את האבטחה שבו, כי גם תוכנה זו פופולרית מאוד בקרב הסקריפטים המנסים לפרוץ לשרתים).
  7. סגור שרותים שאינך צריך: אצל ספקים שונים, הלינוקס מותקן כמו שהוא ללא שום הגדרות אבטחה מסויימות וללא ביטול שרותים שאינם נחוצים (מתי לאחרונה השתמשת בשרות Bluetooth על שרת?). ב-CentOS תוכל להשתמש בפקודה chkconfig ובדביאן/אובונטו תוכל להשתמש בפקודות שמופיעות כאן כדי להגדיר מה יפעל ומה לא. אם אינך יודע מהו כל שרות, גוגל יכול לסייע לך.
  8. ודא כי כל הסיסמאות הן סיסמאות חזקות, הווה אומר לפחות 3 מספרים ו-5 אותיות (גדולות וקטנות) מוגדרות לכל בסיס נתונים, שם משתמש וכו'.
  9. אל תסמוך על חומת האש של הספק! לקוחות רבים שומעים מאנשי מכירות כמה הספק השקיע בתשתית ויש חומת אש אכזרית של צ'ק פוינט/סיסקו שעולה מליוניםם ושהיא הודפת התקפות בקלות ושלל מעשיות נוספות, אבל גם חומת אש הכי יקרה בעולם יכולה לשמש כאבן שאין לה הופכים אם יש איש סיסטם מטומטם שמגדיר חוקים עם ANY ANY לכל הכתובות, לכן חשוב להגדיר את חומת האשהפנימית בשרת שלך שתגן על המכונה שלך.
  10. גיבויים – שוב, ספקים רבים מבטיחים גיבוי, אבל מי ערב לך שהגיבוי עובד ותקין ולא מוזנח (כי לאנשי הסיסטם יש משימות אחרות והם לא טיפלו חודשים רבים בגיבוי… ראיתי כבר ספקים עם המצב הנ"ל) וביום פקודה זה לא יעבוד? לכן חשוב מאוד לעשות גיבוי משלך למקום אחר (עדיף לאחסן את הגיבוי מחוץ לתשתית המקומית של הספק, או להשתמש באחסון חיצוני כמו S3 של אמזון).
  11. כשזה מגיע לבסיסי נתונים, תהיה מקורי בשמות בסיסי הנתונים. אם יש לך בלוג וורדפרס לדוגמא, בסיס נתונים עבורו בשם wpdb זה רעיון לא טוב! חשוב ליצור שמות מקוריים ויחודיים על מנת שלא לעשות חיים קלים לאלו הפורצים אתרים. זכור גם להכניס סיסמאות מסובכות (צריך שרות ליצירת סיסמאות מסובכות? קבל)
  12. הכר את נושא ה-Cross Site Scripting (נקרא גם XSS) – זו אחת השיטות הידועות ביותר לפרוץ לאתרים ורוב האתרים המסחריים בארץ חשופים לשיטה זו, לכן אם הנתונים חשובים לך, אז יש צורך בעדיפות עליונה להגן על האתר שלך נגד שיטת פריצה זו. אם אתה משתמש בדפדפן Firefox לדוגמא, אז תוסף XSS-ME יכול לבדוק את האתר שלך אם אתה פרוץ או לא בכל מיני מקומות באתרים שלך.
  13. עדכונים – חשוב תמיד לעדכן את המערכת שלך בעדכוני האבטחה האחרונים. עדכוני מערכת ניתן לעדכן בקלות בעזרת פקודת yum update (ב-CentOS) או apt-get upgrade בדביאן/אובונטו.
  14. לעקוב אחרי ה-Logs – בדרך כלל ניתן לראות היכן מתחילות הבעיות – ברישומי לוגים. אנשים עם מכונות אובונטו/דביאן מוזמנים לקרוא בנושא כאן. ב-CentOS יש פרק שלם על כך כאן.

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

זיכרו: עדכון, מעקב ומניעה – יכולים לתת לכם מכונה שתשרת אתכם לזמן רב בצורה יציבה.

על שרתים וירטואליים (VPS) ו-DNS

לקוחות רבים שוכרים שרתים וירטואליים (VPS) ומאחסנים עליהם את האתרים שלהם. יש כאלו המאחסנים מספר קטן של אתרים ויש כאלו המאחסנים מאות אתרים.

מטבע הדברים, לכל אתר מגיעים עם שם הדומיין. היכן מוגדר שם הדומיין כדי שיוכר בעולם? ב-DNS כמובן, ומטבע הדברים, אלו שמשכירים שרתים וירטואליים ברוב המקרים מגדירים את השרת גם להיות שרת ה-DNS, ומכיון שבשביל DNS יש צורך ב-2 שרתים, כמעט כולם מגדירים את שרת ה-DNS שישמש כ"אדון" (Master) ו-Slave ("עבד").

כאן מתחילה הבעיה (והיא לא קשורה לספק כלשהו אלא בכלל).

כל שרת VPS מצריך לפעמים הפעלה מחדש, אם בגלל בעיות כלשהן (שרבים לצערי מנסים להפנים את ה"לקח" של מכונות PC ביתיות וחושבים ש-Reboot לשרת הוא פתרון לכל בעיה) או אם בגלל צורך עקב עדכונים אחרונים שמחייבים זאת (במיוחד בשרתי Windows).

הבעיה המרכזית: לאחר שעשית Reboot לשרת, יכול לקחת בין כמה דקות לכמה שעות (תלוי בכמות הדומיינים שהגדרת בשרת) עד שניתן יהיה בכלל לגשת אליהם, אפילו עם Ping. הסיבה לכך? מכיוון שהשרת שלך גם משמש שרת DNS, אתה "נעלמת" מהעולם, ולשרתי DNS אחרים (כמו של ספקי האינטרנט, לדוגמא) יקח זמן "למצוא" אותך, ובאותו זמן אף לקוח פוטנציאלי לא יכול לגלוש אל האתרים שלך.

כלומר הפתרון של לאחסן את רישומי ושרות ה-DNS בתוך שרת ה-VPS שלך אינו רעיון טוב.

מה עושים? אני מציע 3 פתרונות, שוב, ללא קשר לספק, את הפתרונות האלו כמעט כל ספק יכול למכור לך.

  • אם יש לך מספר קטן של דומיינים (נניח כמה עשרות דומיינים) מספיקה חבילת אחסון משותף (נקראת גם "אחסון אתרים" או "אכסון אתרים") בתצורת "ריסלר" (ישנם ספקים שקוראים לזה שמות אחרים, אתה צריך לבקש חבילה שאתה יכול לרשום בה דומיינים דרך הפאנל). חשוב לוודא שלאותו ספק שרתי ה-DNS שלו מופרדים (מומלץ שיהיו מופרדים ברמה הפיזית כך שכל שרת DNS ישב בשרת פיזי אחר). עם חבילה זו תוכל לרשום את הדומיינים שלך אצל אותו ספק ולהפנות את ה- A record לכתובת ה-IP של שרת ה-VPS שלך (אפשר גם רישומים אחרים כמו MX, CNAME ועוד, ועל כך מומלץ להתייעץ עם הספק או עם מישהו מקצועי שמבין ב-DNS ובהתאם לצרכים). ודא עם הספק שהרישומים שיצרת מסונכרנים אוטומטית עם שרת ה-DNS השני שלו. במקביל, כשרשמת בחבילה את הדומיינים, הספק יתן לך 2 רישומים (או יותר) של Name Servers שאלו בד"כ שמות שרתי ה-DNS שלו. את הרישומים האלו אתה צריך להכניס אצל רשם הדומיינים, היכן שרכשת את הדומיינים.
  • אם יש לך כמות גדולה של דומיינים (מאות ומעלה), מומלץ לשכור מספק אחר שרת VPS מאוד קטן (256 מגהבייט זכרון, דיסק קשיח וירטואלי קטן, עוצמת השרת אינה חשובה), ולהרים עליו שרת DNS. אם הינך משתמש בשרת ה-VPS העיקרי שלך עם cPanel, אז הנה חדשות טובות: אתה יכול להוריד ולהתקין ללא תשלום בשרת ה-VPS הקטן את cPanel DNS Only ולעקוב אחר ההוראות שם. תוכל להגדיר דומיינים בשרת ה-VPS העיקרי שלך והוא יסנכרן את הרישומים אוטומטית עם שרת ה-VPS הקטן שלך. (אגב, הסיבה לספק אחר נעוצה בעניין שאם יש תקלה כלשהי אצל הספק העיקרי שלך, שרותי DNS עדיין יוכלו לזהות את הדומיינים שלך בעולם).
  • אפשרות שלישית (והכי זולה, אם כי לא תמיד אפשרית): להשאיר את ניהול ה-DNS אצל רשם הדומיינים שלך. רובם מציעים פאנל כלשהו לשינוי ה-A record וכו' בקלות, וכך גם אם השרת הוירטואלי שלך נופל, שרתי ה-DNS בעולם עדיין ידעו לגבי הדומיינים שלך. החסרון בשיטה זו: אצל רוב הרשמי דומיינים הישראליים, העדכון עצמו מתרחש רק לאחר 24 שעות ועד אז לוקח עוד 24 שעות עד שזה מתעדכן בארץ (בהשוואה לחו"ל שזה עניין של שניות). לצערי, בנושאי DNS, "תודות" לספקי האינטרנט הגדולים ולאיגוד האינטרנט (ולכל תהליך רישומי דומיינים מקומיים), אנחנו עדיין "תקועים" בשנות ה-90.

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

על שרתים וירטואליים (VPS) והתקפות

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

אתחיל, ברשותכם, עם הסבר מהו DDoS (למי שמעוניין בהסבר מלא לגבי DDoS, ניתן לקרוא זאת במאמר המצוין בוויקיפדיה). בעקרון התקפה כזו (וישנם סוגים שונים של התקפות שרובם כתובים במאמר שציינתי בקישור) מטרתה היא "לחנוק" את שרת ה-VPS שלך כך שהוא לא יוכל לתת שום שרות.

איך זה מבוצע? ישנם מאות אלפי מחשבים בעולם שלא מעודכנים בעדכוני תוכנה שסוגרים פרצות, ומחשבים אלו הותקפו בעבר והותקן עליהם (ללא ידיעת המשתמש כמובן) תוכנה זדונית שמחברת אותם למעין "רשת" ולאותה רשת יש שרת (או כמה שרתים) עם מפעיל (או מספר מפעילים) וברגע שהמפעיל נותן פקודת התקפה, אותם מחשבים אישיים בעולם שהותקנה עליהם התוכנה הזדונית, משמשים בעצם כ"עבדים" והם מתחילים לשלוח (שוב, ללא ידיעת המשתמש) בקשות מזוייפות לכתובת IP מסויימת שניתנה על ידי המפעיל. שרת ה-VPS המותקף מקבל את הפקודות ומנסה להחזיר תשובות, אך הבעיה היא שכתובת היעד (לאן שרת ה-VPS אמור לשלוח את התוכן שהוא התבקש לספק) מזוייפת ולכן השרת לא יכול לספק את הבקשה ועד שהוא "מבין" שיש לו בעיה, לוקחות מספר שניות. נכפיל את זה בבקשות של עשרות או מאות אלפים שמגיעות בעת ובעונה אחת, וכל שרת VPS "יחנק" תוך מספר דקות והאתר ירד מהאוויר.

בעבר המצב היה כזה, שעל מנת להתקיף אתר מסויים, היה צריך שיתוף פעולה מאסיבי מצד חוליגנים שונים. הם היו צריכים להתקין תוכנה על המחשב ולהשתתף (מה שכמובן מפליל, ולך תסביר לילד משועמם שהשתתף שהרגע הוא עוד חשוד ברשימת המתקיפים אם ה-FBI חוקר זאת). כיום, "תודות" לקבוצה בשם אנונימוס, פותח טריק חדש: תן Like לעמוד מסויים, והמחשב שלך (גם בלי שום תוכנה מותקנת להתקפה) מתחיל להתקיף יעד מסויים, כלומר משתמשים רבים שכלל לא התכוונו להתקיף מישהו בחיים שלהם, נמצאים עכשיו מתקיפים שרתים מסויימים שמי שבנה את דף הלייק – התכוון אליהם.

מצב ממש לא נעים.

אז מה ניתן לעשות? אין "פתרון קסם", ותלוי בהתקפה. הנה כמה דוגמאות:

התקפות קטנות (מאות עד אלפים בודדים)

  • אתם רואים שהשרת שלכם בקושי מגיב וכל החיבורים של שרת ה-Web שלכם תפוסים (אפשר לראות זאת בלינוקס דרך SSH עם הפקודה: server httpd status או service httpd fullstatus – ב-CentOS/RHEL/Fedora. להפצות אחרות יש שינוי קטן מבחינת פקודות). הדבר הראשון שניתן לעשות הוא לגבות את קובץ httpd.conf (אם יש לכם cPanel לדוגמא, הוא נמצא ב- usr/local/apache/conf/httpd.conf ואם זה הגירסה שמגיעה עם CentOS/RHEL/Fedora אז המקום הוא etc/httpd/conf.d/httpd.conf/) ולשנות אותו בהתאם להוראות שמופיעות כאן. שימו לב: מומלץ לאחר ההתקפה להחזיר את המצב לקדמותו. מומלץ לאחר ביצוע השינויים להתחיל את השרת עם פקודת restart ולא עם reload.
  • אם יש לך חומת אש פנימית בשרת מבוסס Linux, מומלץ להתקין חומת אש חינמית כמו CSF ואז ניתן להשתמש בהגדרות כמו שמופיעות כאן כדי להפחית ולחסום התקפות אם הן קטנות עד בינוניות (תלוי בכמות המתקיפים, גודל שרת VPS, כמות זכרון, רוחב פס וכו')
  • התקנת מודול ב-Apache שנקרא Mod_Evasive. מודול זה יודע להבין בצורה לא רעה שהשרת Apache מותקף והוא יודע לנהוג בהתאם. מומלץ לקרוא את ההוראות איתו (למשתמשי cPanel החיים קלים, פשוט תעקבו אחרי ההוראות כאן).
  • ניתן באמצעות פקודה כמו הפקודה בשורה הבאה כדי לקבל מעין טבלה עם 2 קבוצות מספרים. מצד שמאל יהיה בסדר עולה כמות הבקשות ומצד ימין כתובת ה-IP ששולחת את הבקשות לשרת שלכם. כל מה שצריך לעשות זה לכתוב חוק דינמי (עם CSF זה csf -d ip כאשר ip זו הכתובת שרוצים לחסום) לחסום את הכתובות עם הכי הרבה בקשות, רק שימו לב שלא לחסום את עצמכם בטעות אם רצות אפליקציות שלכם פנימית בשרת:
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

 התקפות בינוניות עד מאסיביות

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

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

אפשרות נוספת (וקצת יותר יקרה): לקחת שרת וירטואלי (VPS) אחר לא מאותו ספק (אי אפשר לדעת אף פעם אם התקפה היא רק מול IP אחד או מול טווח ענק של כתובות של אותו ספק) ועליו להקים אתר בסיסי של השרות שלך, לבנות רפליקציה של ה-DB בין האתרים. ב"יום הדין" בשרת העיקרי תצטרך לעשות את הדברים הבאים:

  • קובץ robots.txt שיודיע לגוגל לא לסרוק בכלל את האתר שלך ( /  :Disallow ). הדבר האחרון שאתה רוצה שגוגל יאנדקס את הדף בסעיף הבא. (מקדמי אתרים אינם ממליצים זאת).
  • שינוי קובץ httpd.conf בשרת ה-Apache לפי ההוראות מעלה
  • קובץ index.html (לא PHP ולא בשום שפה אחרת שמכריחה את השרת Apache/NGINX לפנות למודולים שונים כדי ליצור את הקובץ) ובו יהיה הסבר קצרצר על כך שיש התקפה נגדך, ולינק ל-VPS השני שלך (בלי redirect, בלי קוד 301, בלי הפניה אוטומטית, אתה לא רוצה לקחת את ההתקפה איתך ל-VPS השני). כך הלקוח עדיין יוכל לקבל ממך שרות.

והכי חשוב: לא להיכנס לפאניקה. זה קורה בחברות ענק, זה יכול לקרות לכולנו וכולי תקווה שזה לא יקרה לאף אחד. יחד עם זאת, אם אתם חווים התקפות DDoS אחת לחודש, נראה שהספק שלכם מוכן לקבל כל לקוח בלי לבדוק אותו וחלק מהלקוחות "מושכים אש", מומלץ במקרה כזה לחפש ספק אחר.

ישנם גם פתרונות אחרים נגד התקפות DDoS ו-DoS הכוללים קופסאות שבעצם יודעות לנטר את הרשת ולהבחין בנקל בהתקפה ו"להרוג" חלק לא קטן ממנה, אבל כל קופסא כזו עולה בסביבות ה-10,000 דולר ומעלה (כמו של IntruGuard). יש גם פתרונות מבוססי מכונות וירטואליות כמו של Sophos אבל במקרים רבים הם פתרונות ברמה של ספק קטן או ללקוח שיש לו כמה שרתים. בכל מקרה, כיום גם עם מכונת Linux רגילה ניתן למנוע התקפות שונות.

על אבטחת מידע ללקוחות – מצד הספקים

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

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

תקיפת שרת

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

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

בהתקפת DDoS אין גניבה של מידע. המתקיף, בדיוק כמו האחרים, לא יכול להיכנס לשרת (אלא אם מדובר בהתקפה משולבת פריצה, דבר מאוד נדיר ומצריך ידע מוקדם לגבי השרתים, בד"כ לא מידע שמפורסם, ולכן במקרים כאלו מדובר במשהו פלילי מקומי). כל המטרה של ההתקפה היא להשבית את האתר, ואתרים מאוד גדולים (כמו אמזון, ויזה העולמית, FBI ועוד) חטפו התקפות כאלו ולמרות כל הציוד שהיה להם – האתרים היו מושבתים (עם ציוד אפשר לחסום את הבקשות, אבל עדיין לא תהיה גישה לדפים).

האם יש פתרון להתקפות DDoS? רוב חומות האש המודרניות (וגם Linux כחומת אש עם עוד מספר מודולים) יכולים לזהות התקפה ולספוג אותה, אבל עדיין רוב הרוחב פס יהיה תפוס בהתקפה עצמה. יש ספקים מסויימים בחו"ל המיועדים לאתרים ש"מושכים אש", והמחיר שלהם הולך לפי רוחב הפס שהספק יספוג עבור הלקוח, אבל אין שום פתרון ממשי עדיין כדי למנוע "חניקה" של רוחב הפס.

פריצה לשרת

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

שיטה זו עדיין בשימוש היום על ידי סקריפטים שפורצים רבים מריצים. הסקריפט לוקח טווח כתובות מסויים ומנסה למצוא בפורטים מסויימים אפשרות לפרוץ, כך לדוגמא אחד הפורטים הפופולריים הוא פורט 22 שמשמש בשרתי יוניקס/לינוקס כחיבור לשרת (SSH). סקריפט כזה שמוצא את הפורט הזה, ינסה לעשות login דרך משתמשים כמו root, admin וכו' ועל כל משתמש הוא ינסה להריץ סידרה של סיסמאות ידועות כמו מספרים, מספרים ואותיות רציפות על מקלדת (1q2w3e4r) ועוד כל מיני סיסמאות. אם השרת נמצא עם סיסמא כזו, הסקריפט יצור יוזר נוסף עם הרשאות root וידווח בחזרה למפעיל הסקריפט שיש לו עוד שרת פתוח לשימושו. אותו דבר קורה עם פורטים כמו 25 (SMTP), ועוד פורטים.

קל מאוד למנוע את הפריצות האלו: כל מה שצריך הוא לשנות את פורט SSH מ-22 למספר אחר, לבטל אפשרות כניסת root ע"י סיסמא מרחוק (תמיד תוכלו להיכנס כ-root מהקונסולה), ואם אפשר, עדיף לבטל סיסמאות לגמרי ולהשתמש במפתחות, כך שאם אין למשתמש קובץ סיסמא, המערכת לא תבקש ממנו סיסמא אלא תסגור את החיבור. אפשר להוסיף דברים כמו אפליקציית LFD (או להשתמש בתוכנת חומת אש CSF) וכך התוכנה יודעת לספור את כמות החיבורים מאותו IP ולחסום אותו זמנית או בצורה קבועה.

אבל רוב הפריצות אינן פריצות פורטים, אלא פריצת אפליקציות.

מהי פריצת אפליקציה? ובכן, מכיוון שרוב האתרים היום נכתבים על פלטפורמות פופולריות (וורדפרס, ג'ומלה, דרופל ועוד עשרות פלטפורמות), הפורץ ינסה להריץ אפליקציה שלא רק תזהה על איזה פלטפורמה האתר עובד, אלא גם תנסה לאתר פרצות ידועות ולחדור דרכן אל המערכת. מהרגע שהאפליקציה שהפורץ מוצאת את הפירצה – הפורץ יכול לעשות דברים רבים: לגשת לבסיס הנתונים של הלקוח, לקרוא, לשנות, לגשת לקבצים שנמצאים בתיקיית הלקוח, להוריד אותם למחשבו האישי, להעלות ולמחוק קבצים ועוד – הכל דרך האפליקציה (אפשר כמובן לעשות זאת ידנית דרך ה-URL לאחר שנמצא חור האבטחה).

במקרים מסויימים (כמו עם "הפורץ הסעודי") הפורץ לא כל כך מתעניין באתר שלך, אלא מתעניין האם ישנם חורי אבטחה ברמת מערכת ההפעלה, והוא משתמש בערך באותן שיטות שהזכרתי מקודם כדי למצוא אם יש. במידה ויש, הפורץ יכול לנצל את החור אבטחה כדי ליצור לעצמו משתמש עם הרשאות מערכת, ואז להיכנס ולעשות במערכת כרצונו – כולל קריאה/עריכה/מחיקה של כל מי שמשתמש בשרת, והוא אפילו יכול למחוק ולשנות את המערכת הפעלה עצמה.

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

  1. הטמעת חומת אש רצינית עם חוקים קשיחים: סיסקו, צ'ק-פוינט, פורטינט, ג'וניפר – כולם מייצרים קופסאות חומות אש מספיק רציניות כדי להגן על משתמשים. ספק רציני יודע לקחת קופסא כזו ולהגדיר מי יכול להיכנס ברזולוציה של כתובת IP, איזה פורטים לפתוח עבור הלקוח ואיזה פורטים לסגור. ספק רציני גם יתקין ללקוח חומת אש פנימית עם חסימת פורטים פנימה והחוצה לפי הצורך.
  2. לא לאפשר לעובדים שלו להיכנס למערכות של הספק עם סיסמאות אלא עם מפתחות הצפנה בלבד וכל כניסה נרשמת ומתועדת.
  3. ספק טוב מפריד לחלוטין בין רשת השרתים של הלקוחות לרשת שלו עצמו. כך לדוגמא כל עניין ניהול הלקוחות, פרטי הלקוחות, סיסמאות וכו' צריכים לשבת ברשת נפרדת, עם גישה מאוד מפוקחת לסקריפט ששולף נתונים ועדיף שהנתונים יועברו בהצפנה. (אצלנו לדוגמא כל רישום הלקוחות נמצא בכלל בעיר אחרת אצל ספק אחר).
  4. אם מדובר בספק שסולק כרטיסי אשראי, אז הספק צריך להקים רשת פיזית אחרת (לא להסתפק במכונה וירטואלית וחיבור VLAN נפרד) ולהציג אישור שעבר PCI (שימו לב: ישנו סולק שלא אציין את שמו שמציג לוגו של PCI באתר שלו אך הוא לא עבר PCI ולכן חשוב לבקש לראות הוכחה שהספק עבר תקן PCI ושהתעודה מראה את השנה הקלנדרית הנוכחית (בדיקת תקינות ל-PCI צריך לעבור כל שנה).
  5. ספק טוב שומר בשרתי אחסון שיתופי שלו לפחות חודש רישומים של כניסות לשרת הן דרך WEB וגם SSH, רישומים אלו אמורים להישמר בגיבוי.
  6. עדכונים – כל השרתים (למעט VPS שאינם מנוהלים על ידי הספק) צריכים להיות אחת לשבוע מעודכנים בכל הטלאים האחרונים שיצאו לאותה הפצה.
  7. פאנלים – חובה שיהיו מעודכנים לגירסה האחרונה.

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

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

ועוד משהו אחד: בחשבון משותף עם גישת SSH אפשר לבדוק את חלק מהדברים. לדוגמא אם תקישו את הפקודה uname -a תוכלו לראות שגירסת הליבה (אם זו מערכת CentOS מעודכנת) היא 2.6.18-274 (לקוחות שלנו יראו 374, הוספנו כמה דברים לליבה). אם המספר פחות מ-274, זה אומר שהשרת אינו מעודכן, ובמקרים כאלו אתם חשופים לחורי אבטחה.

עתה לחלק הלא כל כך נעים: איש המכירות יכול להישבע בנקיטת חפץ שכל הסעיפים שציינתי לעיל מיושמים במלואם, אבל לך כלקוח לא תוכל לבדוק את רוב הדברים שציינתי אם הם נכונים או לא וכפי שראינו רק לפני מספר שבועות, אותו עסק שאחסן אתרים ופרצו אליו, הצהיר תחת כל מיקרופון ש"הם מוגנים", ראינו איזו הגנה יש להם…

אז מה ניתן לעשות? משהו פשוט: אם אתה מקים אתר עם הרבה מידע אישי או חנות, אני מציע לך לקחת שרת וירטואלי (VPS). עם שרת וירטואלי הכל בשליטתך. אתה (או האיש מטעמך) מאבטח את השרת בצורה הכי טובה (במקום לסמוך על הספק), אתה יכול להצפין ולאבטח דברים בצורה הרבה יותר חזקה מאשר באחסון שיתופי (לדוגמא: אתה יכול להצפין את תיקיית ה-Home, היכן שמאוחסנים במקרים רבים תכנים חשובים), אתה יכול לעשות אופטימיזציות ולא להיות תלוי בידע ובמקצועיות של אנשי הספק שנותן לך את ה-VPS ועוד. כך אתה יכול להגן על עצמך בצורה הכי טובה ובתקציב נמוך.

על אבטחת מידע ללקוחות בעלי אתרים

למי שלא עקב – בעקבות הפריצה של "הפורץ הסעודי", הרמו"ט (רשות משפטית לטכנולוגיה ומידע) התעוררו ואחד הדברים הראשונים שהם עשו זה להוציא צו נגד לוגייט בכדי לסגור 1700 חנויות שמתארחות בפלטפורמת החנויות של לוגייט. בסופו של דבר הושגה הסכמה משותפת בין הצדדים לעבוד יחד כדי שהחנויות ומאגרי המידע של החנויות יהיו מוגנים ומוצפנים.

הבעיה עצמה מתחילה בשורש: רוב הלקוחות שמחפשים שיבנו להם אתרים לא מכירים את חוק הגנת הפרטיות, ידיעת החוק לגבי מאגרי מידע, הדברים שצריכים לעשות במקביל להקמת האתר מבחינת החוק (הידעתם שרישום מאגר המידע הוא חובה?), ונקודות שרבים לא חושבים עליהם, כמו העניין שאם נפרץ בסיס הנתונים שלכם ואיזה טורקי מחליט להעלות אותו לרשת, הלקוח בעל האתר חשוף לתביעות אזרחיות. אז בונה האתר לא מכיר את הדברים, בעל העסק לא מכיר (ובמקרים רבים לא ממש מעניין אותו), אבטחת מידע לא קיימת (כי בוני אתרים רבים פשוט לא מבינים מאומה בתחום ומעדיפים להאמין לכל מיני סוכני מכירות של ספקי אחסון שהספק "מוגן בפני פריצות" [אין חיה כזו]), ובסופו של דבר מגיע ילד משועמם (אותו "פורץ סעודי") ומרים את חברות האשראי וספקים על הרגליים, והוא בכלל מריץ תוכנה מוכנה כדי לפרוץ, כלומר מדובר במישהו שהוא אפילו לא פורץ מקצועי!

אז נתחיל לעשות סדר בבלאגן.

ידידי עו"ד יהונתן קלינגר כתב פוסט שמסביר גם לאלו שאינם בקיאים במשפט על החוק ועל הגדרות מאגרי מידע. אני ממליץ ללחוץ על הלינק (הוא יפתח בחוצץ נפרד) ולקרוא את הפוסט ואחרי זה לחזור לכאן ולהמשיך לקרוא את הפוסט הזה..

קראתם? אוקיי, כפי שאתם יכולים לראות, כל חנות או כל אתר שאוסף נתונים אישיים מחוייב לרשום את האתר שלו כמאגרי מידע ברשות המשפטית לטכנולוגיה ומידע (לצערי מי שביצע את עיצוב האתר של הרמו"ט מבין בעיצוב ממשק משתמש כמו שאני מבין בהטסת חלליות ולכן כדאי לשים לב – המלבנים שבתוכם 2 שורות? צריך ללחוץ על הטקסט כדי לקבל את התוכן).

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

עוד מספר נקודות:

  1. ספק האחסון אינו יכול לעשות קסמים ולהפוך את כל הנתונים למוצפנים, זו אחריותו של המתכנת להצפין את הנתונים לפני ההכנסה/עריכת נתונים קיימים בין אם דרך שפת התכנות, ספריית תכנות או שימוש בפונקציות ששרת ה-SQL נותן (לדוגמא: encrypt ב-MySQL וכאן אפשר למצוא יותר מידע). האחריות של הספק היא לחסום כניסה לא מורשת ל-MySQL (לדוגמא) ברמה של כניסה מבחוץ ומניעת אפשרות למשתמש לראות את כל בסיסי הנתונים בתוך ה-DB עצמו (למעט מה ששייך לאותו חשבון). כמו כן הספק צריך לאסור באחסון משותף (לדוגמא) אפשרות להתחבר ל-SQL מבחוץ (גם כשבונה האתר מאוד אוהב כלי GUI חיצוניים ורוצה להתחבר ישירות לשרת איתם).
    ככלל, ספק צריך לברר עם הלקוח מה הוא מאחסן ולעדכן את החוזה בין הספק ללקוח לגבי אחריות על המידע, עניינים משפטיים וכו' (ואני ממליץ לקחת את שרותיו של עו"ד קלינגר לעניינים אלו, הוא מומחה בזה).
  2. בוני האתרים: מאחריותכם להסביר ללקוחות לגבי עניין האבטחת מידע ולבקש ממנו שימצא איש אבטחת מידע שישב איתכם ויבדוק את האתר וימליץ לכם מה לעשות מבחינת קוד, פרוצדורות וכו'. אם לקוח רוצה לחסוך או לשחק אותה "ראש קטן", אתם תהיו המטרה של רמו"ט על עבירת אי רישום מאגר מידע (ואני די בטוח שהם ימצאו עוד סעיפים להאשים אתכם), ואם מחר חס ושלום יפרצו לאותו אתר ויפיצו את המידע, הנפגעים יכולים לתבוע אותו תביעה אזרחית ותנחשו את מי הוא יגרור אל התביעה הזו..
    לכן אם לקוח מתעקש לא לקחת איש אבטחת מידע, ואתם לוקחים את הפרוייקט, תצטרכו להחתים את הלקוח על מסמך שהוא זה שמבקש אתר ללא אבטחת מידע כפי שנדרש בחוק והוא לוקח את כל האחריות עליו ופוטר אתכם מאחריות (לא יודע כמה מסמך כזה הוא לגטימי, עדיף להתייעץ עם עו"ד).
  3. לקוחות שיש להם אתרי חנויות או כל אתר שאוסף מידע מגולשים: בלי אבטחת מידע גם הרמו"ט יכולה לתבוע אתכם ואם נפרץ האתר שלכם – אלו שזלג המידע שלהם החוצה יכולים לתבוע אתכם תביעה אזרחית על אי-הגנה על מאגר מידע ושלל סעיפים נוספים, לכן מומלץ להשקיע את הסכומים הנוספים ברישום ובאבטחה על מנת להימנע מהכאב ראש הזה.

ולבסוף המלצה נוספת ללקוחות: אתרים מחייבים תחזוקה מתמדת. מהרגע שהאתר עלה לאוויר, יהיו מספיק רובוטים וכל מיני משועממים שישמחו לנסות לפרוץ לאתר שלכם כבר מהיום הראשון. יש צורך בעדכון לפחות אחת לחודש של האתר מבחינת האפליקציה (וורדפרס, ג'ומלה, דרופל וכו') והתוספים עצמם, ולכן חשוב מאוד לסכם חוזה ביניכם לבוני האתרים על כניסה חודשית מצד בונה האתר על מנת לשדרג את התוכנה של האתר והתוספים השונים. ספקי האחסון אינם אחראים לעדכון התוכנות שבוני האתרים שלכם התקינו והם לא יעדכנו את התוכנה עבורכם הואיל וקיים סיכון ששדרוג התוכנה "ישבור" תוספים מסויימים ויכול להביא להשבתת האתר שלכם ולכן אף ספק לא לוקח על עצמו עדכונים כאלו. סכמו חוזה של כניסה חודשית ויהיה לכם ראש שקט מהנקודה הזו.

איזו וירטואליזציה מומלצת?

אנשים, עסקים וחברות אשר שוכרים שרתים וירטואליים (VPS) בודקים כל מיני פרמטרים לפני שהם סוגרים עיסקה, אך אינם תמיד מודעים לאיזו תוכנת וירטואליזציה רצה על השרת הפיזי. אחרי הכל, כולם נותנים לך root (בלינוקס) או Administrator (ב-Windows), אז מה כבר ההבדל?

יש הבדל לא קטן. אתה משלם על שרת, אז לא עדיף שהשרת שלך ירוץ בצורה הכי מהירה, הכי טובה ותואמת את מערכת ההפעלה שבחרת?

להלן רשימת ה"חשודים העיקריים", ברשותכם:

  • Virtuozzo (או OpenVZ בגירסת הקוד הפתוח): אחת התוכנות הותיקות ביותר בשוק שבעצם די קיבעה בשוק מושג כמו Over-selling (שהספק מבטיח לך 1 ג'יגה זכרון, יש לו 20 לקוחות ויש במכונה 8 ג'יגהבייט זכרון) ואת המושג VPS בעצם (למרות שהוא לא ממש נתן לך באמת Private Server בהשוואה למצב כיום).
    יתרונות: במצב "טבעי" (הווה אומר: לא הרבה לקוחות על שרת פיזי אחד) המכונה נותנת ביצועים שהם כמעט כמו לרוץ על שרת פיזי. הטריק הוא כמובן שהמכונה לא ממש מריצה וירטואליזציה, אלא עושה הפרדה ע"י chroot (שזה root "כלוא"), כך שהאפליקציות שלך רצות במצב רגיל על השרת בלי תוכנה שצריך להמיר פקודות או לעבור מצבים שונים מבחינת מעבד, מערכת הפעלה וכו'.
    חסרונות: לא חסר! ספקים רבים "דוחפים" כמה שיותר לקוחות לשרת פיזי, מגדירים יותר זכרון ממה שיש במכונה, כך שהמכונה צריכה לעשות סימולציית זכרון נוסף ע"י שימוש בדיסק הקשיח, מה שמבטיח שהביצועים ירדו, נוסיף לכך שאין בוירטואליזציה הזו הפרדה ממשית בין הלקוחות, וכך לקוח שיש לו תהליך שתופס 100% מהמעבד יאיט את המכונה לכולם (אם כי יש כלים "להרוג" את זה, אבל אז יש לנו תהליך מת ולקוח עצבני).
    בנוסף, לא ניתן להתקין מערכות הפעלה שונות – יש CentOS 5.3 על השרת? זה מה יש ואי אפשר להתקין שום גירסת לינוקס אחרת (המצב שונה עם OpenVZ אך עדיין רוב הספקים לא מוכנים לתת מערכות לינוקס שונות על OpenVZ עקב עלויות תמיכה פנימיות) וכמובן לא Windows או כל מערכת הפעלה אחרת.
    והנקודה הכי בעייתית: המכונה משתמשת בקרנל (Kernel, ליבה) שמגיע עם ה"וירטואליזציה" וניתן רק להחליף לקרנל חדש יותר עם תמיכה באותה וירטואליזציה. הצרה היא שלשם כך יש צורך בלעשות Reboot והרבה ספקים חוששים לעשות Reboot פיזי לשרת כי הלקוחות יצעקו, וכך נוצר מצב עצוב שיש חורי אבטחה ואם מישהו עולה על חור אבטחה כזה, הוא יכול לגשת לכל החשבונות של הלקוחות ולעשות בהם כרצונו.
    המלצה: אם אפשר, לא לקחת חבילת VPS עם וירטואליזציה כזו. ישנם פתרונות אחרים טובים בהרבה.
  • Xen – וירטואליזציית קוד פתוח שב-5-9 שנים האחרונות תופסת מקום של כבוד בשוק ספקי שרת VPS. היא נכתבה ע"י סטודנטים וכיום היא בבעלות של חברת Citrix שגם משחררת מוצר עסקי (XenServer) וגם משחררת גירסת קוד פתוח של Xen.
    יתרונות: יש אפשרות להריץ גירסאות לינוקס אשר מקומפלות עם תמיכה ל-Xen ואז לקבל ביצועים כמו עם Virtuozzo, וגם אפשר להריץ מערכות הפעלה זרות (Windows, Linux, FreeBSD, Solaris ועוד). ל-Xen יש דרייברים מיוחדים (PV – Paravirtualized) אשר יודעים לשוחח ישירות עם החומרה הפיזית ובכך להאיץ ביצועים של דיסק, רשת ועוד.
    חסרונות: מבחינת ביצועים, המערכת נותנת ביצועים ממש לא רעים, אך לא בהשוואה למתחרה אחר בקוד פתוח (KVM) וגם לא מול המתחרה (VMWare). חסרון נוסף שלה הוא עניין התזמון (Scheduling) של מערכות הוירטואליות שרצות עליה (מי שמשתמש ב-Linode אולי מכיר את זה שלפעמים צריך לחכות כמה שניות עד שהמכונה מתחילה "לזוז" כמו שצריך ברגע שעושים אליה SSH). הבעיה מוכרת למפתחי Xen והם עובדים עליה בגירסה 4.3.
    לסיכום: Xen היא אפשרות לא רעה בשרת VPS, רק מומלץ לבדוק את הביצועים של המכונה לפני שסוגרים חוזה.
  • Hyper-V של מיקרוסופט: כמו תמיד, מיקרוסופט נכנסה לשוק באיחור רב, ומכיוון שלא היה להם טכנולוגיית וירטואליזציה, אז הם קנו חברה (Connectix) שהמוצר שלהם ממש לא היווה תחרות, וכיום המצב עדיין כך. Hyper-V הוא פתרון הוירטואליזציה של מיקרוסופט, הוא מגיע עם כל שרת Windows 2008 (יש גם גירסת Stand Alone) והוא תומך במספר מצומצם של מערכות הפעלה אורחות. הוא נמצא בשימוש רב אצל חברות וארגונים שמתעקשים אך ורק להשתמש בטכנולוגיות של מיקרוסופט ובשל מחירו ה"חינמי" כביכול.
    יתרונות: זהו מוצר הוירטואליזציה היחיד שמיקרוסופט תומכת בו רשמית מ-א' ועד ת', בין אם אתה מריץ עליו שרתי Windows אחרים כ"אורחים" או גרסאות לינוקס שונות. המוצר קל (יחסית) לשימוש ומהווה פיתוי לא קטן לחברות להשתמש בו במקום להשתמש במוצר המוביל או מוצרים מבוססים קוד פתוח – כי הוא "חינמי". כיום כבר יש לו ביצועים לא רעים.
    חסרונות: תמיכה במערכות הפעלה – מאוד סלקטיבית. רק לאחרונה נוספה תמיכה רשמית ל-CentOS, הוא תומך כבר זמן רב ב-Red Hat וב-SuSE. הוא עדיין לא תומך רשמית בהפצעות חופשיות אחרות כמו Debian ו-Ubuntu אם כי יש אפשרות לעבוד איתן תחת Hyper-V. מבחינת ביצועים הוא עדיין מפגר הרבה אחרי VMWare ואחרי KVM של RedHat.
    למעט אצל ספקים מסויימים (כמדומני בארץ אצל LiveDNS) רוב הספקיות שרתי VPS אינן משתמשות במוצר זה.
  • KVM – הפתרון של RedHat. זהו מוצר וירטואליזציה די צעיר (מ-2006 אם אינני טועה) שפותח ע"י חברת Qumranet הישראלית ונרכש ע"י רד-האט. אחד הדברים היפים ב-KVM זה שהוא בעצם לקח מה ש-Virtuozzo עשו ועשה את זה בצורה נכונה (עם טכנולוגיית VT של אינטל ו-AMD): כל מערכת הפעלה היא Process עצמאי, שאפשר להפעיל עליו כלים שונים כמו nice כדי להאיט/להאיץ/לתעדף ביצועים של מערכת הפעלה אורחת. KVM שואב הרבה מ-Xen ופרויקט קוד פתוח אחר (שלעבדכם הנאמן היה הכבוד ללוות): QEMU. כיום המוצר נמכר ע"י RedHat תחת השם RHEV (שאגב, גירסה 3.0 שלו יצאה היום) והוא גם קיים בכל הפצת לינוקס עם כלי ניהול חדש (שיצא רשמית ב-31/1 השנה) בשם Ovirt.
    יתרונות: ביצועים ביצועים ביצועים – KVM יודע לתת פייט מאוד רציני למוביל (VMWare) בכל הקשור לביצועי וירטואליזציה ואם חברות חושבות לעזוב את המוביל לטובת פתרון קוד פתוח, אז מומלץ לנסות את KVM. בנוסף KVM יודע לתמוך בכל מערכות ההפעלה, הוא חלק מליבת הלינוקס, וקל להתחיל להשתמש בו (בהתקנה של Fedora לדוגמא, כל מה שצריך להפעיל פקודת virt-manager וכבר יופיע ממשק גרפי להגדרות וכו').
    חסרונות: המערכת בגירסת הקוד הפתוח עד היום לא היתה קלה לניהול. לא שהיו חסרים כלים לניהול (ישנם ספריות, מערכת ניהול דרך command line בשם virsh שיודעת גם להתממשק למערכות וירטואליזציה אחרות), אבל היה צריך להושיב מפתח כדי להרים מערכת נורמלית להקמה והטמעה של KVM. כיום יש כבר את Ovirt שאפשר להוריד ולהתקין, והוא מאפשר חיים יותר קלים בניהול.
    חסרון נוסף הוא שמכיון שהמערכת צעירה ומשתנה מאוד (עד לפני שנה היה צריך שרת Windows כדי לנהל את המערכת), עדיין חסר לה ספרות ודוקומנטציה מלאה לכל הדברים. בנוסף, עדיין יש פה ושם בעיות (כמו: התקנת Windows 2008 בפעם הראשונה לוקחת יותר מחצי שעה, פי 5 מכל פתרון אחר!).
    KVM נמצאת בשימוש אצל ספקים מסויימים (עם Proxmox), אך מערכות אלו עדיין לא מספיק חזקות ויציבות (גירסה 2.0 של Proxmox תתמוך בגרסאות האחרונות של KVM והספריות הנלוות). במהלך החודשים הקרובים יכנס Ovirt לשימוש וכלים אחרים, ולספקים יהיה יותר נוח להטמיע פתרון מלא מבוסס KVM. (אצלנו ב"חץ ביז" התחלנו להשתמש ב-KVM למערכות לא חיוניות ואנחנו לאט לאט מפתחים פאנל חדש ולקוחות שירצו יוכלו במהלך השנה לבחור את הוירטואליזציה שירצו)
  • VMWare – המובילים, ה"מלכים" בכל תחום הוירטואליזציה. אין הרבה מה לאמר עליהם חוץ מהעובדה שזה התחום שהם מובילים בו בכל העולם (70% משוק הוירטואליזציה נשלט על ידם לפני גרטנר).
    יתרונות: אין סוף. יציבות, מהירות, תמיכה בציודים שונים, מתפתחים די מהר ובקיצור – אם יש לך פתרון מבוסס vSphere של VMWare, אין לך מה להסתכל אצל אחרים.
    חסרונות: מגירסה 5 המחירים טיפסו בטירוף מעלה, מה שגרם לחברות רבות להישאר בגירסה 4.1 האחרונה. יש תוספות מאוד נחמדות ל-vSphere-5 (כמו האפשרות לאחד מספר שרתים וליצור Storage מכובד ועוד דברים), אבל המחיר אוי המחיר שהם מבקשים..
    מבחינת ספקי שרתי VPS – בארץ לא מעט ספקים משתמשים בגירסת ה-ESXI החינמית, בחו"ל יש ספקים שמאפשרים וירטואליזציה עם VMWare תמורת מחיר של 50$ חודשי עבור הרשיון (פר מכונה וירטואלית).

לסיכום: לכל וירטואליזציה יש יתרונות וחסרונות. יש וירטואליזציות מהירות אך שהאבטחה בהן גרועה מאוד (Virtuozzo). יש וירטואליזציה מעולה אך שתצטרך להוסיף תשלום עליה (VMWare), ויש טכנולוגיות וירטואליזציות שונות בשימוש נרחב (Xen אצל Amazon, Linode) אך הן אינן נותנות את מיטב הביצועי וירטואליזציה.

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

בהצלחה