טיפים להגנה על האתרים שלך

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

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

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

אתרים רבים מתארכים באחת מ-2 חבילות עקריות לאירוח אתרים: אכסון משותף (Shared Hosting) ושרת יעודי (בין אם וירטואלי או פיזי). אתחיל באכסון המשותף.

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

אירוח אתר (או אתרים) בשרת פיזי או וירטואלי נותן יתרונות גדולים וברורים כגון:

  • רוחב פס יותר גדול לשרת את גולשי האתר
  • אפשרות לאחסן הרבה יותר אתרים ותתי-אתרים
  • אפשרות לקבוע אלו שרותים ירוצו
  • אתם קובעים את הגדרות האבטחה
  • ועוד ועוד

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

הנה כמה דברים שמומלץ לעשות על מנת למנוע כמה שיותר פריצות לשרתים כאלו:

  1. מומלץ להעביר את התוכן של האתר דרך ספק CDN כלשהו ודרכו בלבד. ישנם 2 ספקי CDN גדולים שאני יכול להמליץ עליהם:  Cloudflare ו-Incapsula. ל-Incapsula יש יתרון שיש להם שרת סופי (Edge) בישראל, אולם כמות הנתונים שהשרות נותן בחבילת החינם היא קטנה מאוד (50 ג'יגהבייט). ל-Cloudflare לעומת זאת, אין מגבלת תעבורת נתונים גם בחבילת החינם. אצל 2 הספקים החבילות המסחריות נותנות הגנה רצינית מאוד נגד סוגים רבים של התקפות כך שכל גלישה לאתרכם (ובמידה והתעבורה של האתר שלכם עוברת דרך אותו ספק CDN) – המערכת תבדוק מהיכן הגולש מגיע, האם זהו גולש אמיתי או סקריפט זדוני, האם זהו נסיון גלישה אמיתי או נסיון לפרוץ לכם את האתר וכו'. למי שיש אתר והאתר יוצר רווחים עבורו, אני ממליץ להתחבר לאחד מספקי ה-CDN כמה שיותר מהר.
    נקודה חשובה שרבים מתבלבלים בה – ספק CDN אינו מארח את האתר שלכם. הוא שומר חלקית עותק מקבצים מסויימים ובכך הוא מאיץ את מהירות הגשת חלק מהדפים לגולש, אך כשמגיעה בקשה לדף מסויים לדוגמא, הוא מעביר את הבקשה לשרת שלכם (למעט מקרים שהשרות מזהה שמדובר בסקריפט זדוני, במקרים כאלו הוא ינקוט צעדים שונים למנוע מהסקריפט לפרוץ).
  2. שרות Mail – שרתים וירטואליים רבים של לקוחות מריצים שרותי Mail כך שהאתר ישלח אימיילים ללקוחות וגם ישלח לבעל האתר הודעות אימייל שונות (אישורים לתגובות, אישורי רכישה מהאתר, הודעות מלקוחות וכו'). במקרים רבים שרות ה-Mail אינו מוגדר בצורה מיטבית או בצורה מאובטחת בצורה מספקת, כך שיכולים לקרות במקרים רבים בעיות של שליחה וקבלת הודעות מייל מכיוון שהשרת נחסם ע"י שרתים אחרים וההודעות שיוצאות מהשרת הוירטואלי יסומנו כ"זבל" (spam).
    אני ממליץ לבטל את שרות ה-Mail המתוקן בשרת ולהשתמש בשרות כמו של חברת Mailgun. החשבון החינמי שאותה חברה נותנת, מאפשר משלוח וקבלה של עד 10,000 אימיילים בחודש. האתר עצמו אינו מארח חשבונות אימייל, אלא משמש כ-redirect, כך שהשרות ישלח את המייל בשם האתר שלכם וכל מייל שיגיע אליכם, יופנה אוטומטית לחשבון מייל שיש לכם.
  3. התחברות דרך SSH: ישנם מאות אלפי סקריפטים שסורקים את רשת האינטרנט למצוא דרכים להיכנס לאתר שלכם, במיוחד דרך חיבור SSH (זהו החיבור שדרכו ניתן לבצע פעולות על השרת שלכם דרך מסוף [terminal]). יש לי 3 המלצות לגבי שרות זה (ההמלצות מיועדות למי שמתחזק את השרת):
    * להעביר את חיבור ה-SSH מכניסה 22 למספר פורט אחר (מעל 1024)
    * לחסום כניסת root ישירות (כך ששימוש ב-root יתאפשר ע"י sudo או su בלבד)
    * לעבור מכניסה של סיסמאות לכניסה עם מפתחות
    * לעבור להשתמש ב-Port Knocking.
  4. שימוש בפאנלים כמו WHM/cPanel או Direct Admin: פאנלים אלו הם פאנלים נוחים לעבודה למי שאינו מכיר לינוקס, אולם הבעיה המרכזית איתם שהם מוגבלים מדי לחסום הגדרות שבעל האתר עושה שיגרמו לכך שהשרת יהיה חשוף לפריצות.
    לכן, אם אתם מתעקשים לעבוד עם פאנל כלשהו, לכל הפחות מומלץ לגשת אל הפאנל מאחורי שרות VPN (כדי שהפאנל לא יהיה חשוף לנסיונות תקיפה). אם יש לכם הרבה אתרים והגדרות שונות שאתם צריכים תדיר, מומלץ במקום פאנל לקחת מישהו שמבין בלינוקס ובאבטחת מידע, כך שהשרת יהיה כמה שיותר מוגן.

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

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

המחיר הוא רק חלק מהמשוואה

מדי פעם מבקרים אצלנו באתר של “חץ ביז” לקוחות פוטנציאליים שמעוניינים בחבילות שרתי VPS שונים (בארץ או בחו”ל) ותוהים מדוע המחיר שלנו גבוה בהשוואה למתחרה X. מבחינת הלקוח, כשהוא משווה בין חבילות, אצלנו חבילה מסויימת כוללת ליבה ו-20 ג’יגהבייט דיסק במחיר של 200 שקלים ואצל המתחרה חבילה עם דיסק פי 3 בגודל ועוד ליבה עולה רק 100 ומשהו שקלים. מבחינה מספרית, עדיף כבר לסגור עם המתחרה עיסקה, הלא כן?

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

אבל, וכאן ה-אבל הגדול נכנס – זה רק תיאורתית.

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

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

כמה להרוויח? זה משתנה בין ספק VPS לספק מתחרה, אך אם ניקח שרת ממוצע שיש בו 32 ג’יגהבייט זכרון, 8 ליבות (כלומר 2 מעבדי אינטל XEON), ו-2 דיסקים של 500 ג’יגהבייט ב-RAID-1 (או 4 דיסקים של 500 ג’יגהבייט ב-RAID-10), אז סביר להניח שהרווח (ברוטו) הרצוי נע בין 1400 ל-3000 שקל פר שרת לחודש (מבוסס על חישוב של 7 שרתים וירטואליים קטנים, חלק מהליבות מחולקות וירטואלית במחיר ממוצע של 200 שקל לחודש). המציאות היא כמובן שאצל רוב הספקים יהיו הרבה יותר מ-7 מכונות פר שרת, משהו בכיוון ה-15 מכונות, כך שמגיעים ל-3000 שקל.

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

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

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

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

  • בדוק עם הספק כמה ליבות יש בשרת הפיזי ותחשוב על החישוב שציינתי לעיל. האם באמת אתה מחפש להיות “כלוא” בתוך שרת שמשרת לקוחות רבים נוספים ושלא יתן לך את הביצועים אותם אתה צריך לכשתידרש לכך?
  • מה בעצם הם צרכיך? אם אתה מחפש בעצם רק FTP או rsync לשמור נתונים בגודל כולל של 30 ג’יגהבייט לדוגמא, אז כח העיבוד אינו משנה, מה שחשוב הוא רוחב הפס ושיש באמת מקום מספיק בדיסק להכניס את התוכן שלך, כך שבדיקה פשוטה שלך יכולה לתת תשובות בכך שתשכור את החבילה מאותו ספק ואם לא קיבלת את מבוקשך מבחינת רוחב פס לדוגמא, הרי ששמורה לך הזכות לקבל את כספך תוך 14 יום.
  • אם יש לך אתר חשוב שדורש משאבים כי מגיעים אליך מאות עד אלפי גולשים, סביר להניח שהחסכון שלך יעלה לך בביצועי מערכת גרועים עד מצב שגולשים לא יוכלו להיכנס לאתר שלך, ואז החסכון הזה הופך עבורך להפסד כספי.

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

בהצלחה

VPS בארץ או בחו"ל?

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

השאלה הראשונה שצריכה להיענות היא: מהיכן מגיעים הגולשים שלך?

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

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

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

לאירופה יש, ויש ספקים שיכולים להציע זאת… (אההממ… גם אנחנו)

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

רוחב הפס האירופאי מאפשר להעביר קבצים גדולים במהירות של עשרות ומאות מגהביט גם בלי לשלם אלפי יורו נוספים מדי חודש. לעומת זאת, קחו שרת VPS ממוצע בארה"ב ותנסו לזרוק קבצים של ג'יגות מארה"ב לאירופה, תוך שניות ספורות תראו את המהירות… או חוסר מהירות. הסיבה לכך? ספקים רבים בארה"ב מפעילים QoS ברמת הראוטר שמאיט את קצב העברת הנתונים. לא מאיטים כמו בישראל, אבל יש האטה, אפשר לראות זאת באמזון, Rackspace, Softlayer ועוד.

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

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

בהצלחה

מבוך מבלבל בהבטחות

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

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

נעבור לספקי שרתי VPS: יש כאלו המציעים "ניהול מלא", אבל הם מתכוונים בעצם לכל מה שמוצע בפאנל, אולי גם בדיקת תקשורת ו-Boot, אבל כל דבר מעבר לכך – זה בתשלום נוסף. שיטה אחרת היא "הגדרות כלול בחבילת ניהול", אך בעצם מדובר בהגדרות ראשוניות, כך שאם לדוגמא השרת שלך צריך לקבל 10,000 איש ליום, אותן הגדרות אינן נכללות במחיר החבילה ויש לשלם עבור שינויי הגדרות בנפרד. נדפקו הגדרות? הקמת הגדרות חדשות בתשלום נוסף בלבד.

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

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

עוד נקודה: תוספות. חשוב מאוד להסתכל על עלות התוספות שתצטרך בהמשך הדרך. כמה עולה עוד IP נוסף? תעודת SSL? דיסק נוסף? לעיתים המחיר לחבילה יראה מאוד מפתה, אולם אם מוסיפים אפשרויות אחרות שתצטרך אותן בהמשך הדרך, העלות כבר לאת היה שווה כל כך.

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

בהצלחה