להגן על האתר שלך

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

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

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

אם לדוגמא ברגע זה אתה מבין שהאתר שלך אינו נגיש ואתה שומע מהספק שאתה מותקף, אתה יכול לגשת לאתר של CloudFlare, לבחור את הדומיין שלך (אם יש לך מספר דומיינים שמציגים אתרים מאותו שרת – עבור על כל אחד מהדומיינים), ללחוץ על כפתור ה-Firewall ופשוט לבחור "I'm Under Attack", כמו בתמונה הבאה:

cf

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

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

אפשרות מעולה שקיימת (בחבילה של ה-20$) היא שימוש ב-WAF (ר"ת Web Application Firewall). עם WAF החיים יותר קלים כשצריכים להגן על אתרים רציניים. חלק לא קטן מהתקפות דרך רשתות Botnet הם התקפות שנראות במקרים מסויימים כמו כמות גולשים גדולה שנכנסת, אבל מדובר בהתקפה. הנה דוגמא:

cf2

מי שלא מכיר לוגים של כניסות לאתרים לא יבין מה הבעיה, מי שמבין רואה שיש כאן נסיונות כניסה עם מחרוזות רנדומליות שנועדו לעקוף חוקים שחוסמים כניסה. במקרים כאלו ה-WAF יכול לסייע ולחסום דבר כזה בשניות (תומכי CloudFlare כותבים עבורך את החוק אם תתן להם קובץ access_log או שאתה יכול לכתוב בעצמך). מעבר לכך, חוקי ה-WAF מתעדכנים מצד CloudFlare נון סטופ, כך שאתה מקבל הגנה גם על דברים שאינך מודע אליהם (לדוגמא אם אתה משתמש בתוכנה כמו WHMCS (זו תוכנה שקשורה ל-Billing ואוטומציה של שרותי Hosting), אז בעבר היו מספר פריצות לתוכנה, ועד שיצרן התוכנה תיקן אותם, ב-CloudFlare הכניסו חוקי הגנה ל-WAF ללקוחותיהם, כך שאם מישהו היה מנסה לפרוץ ל-WHMCS שלך, הוא היה נכשל בשעה שאצל אחרים הפורץ היה "חוגג".

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

לסיכום, חשוב לזכור את הנקודות הבאות:

  • עדיף שההגנות לאתרך לא יבוצעו בשרת הפרטי שלך אלא ברמת ספק ה-CDN, ובמקביל – לא מומלץ לאפשר גלישה ישירה לאתר שלך, אלא גלישה רק דרך ספק ה-CDN.
  • אל תסמוך על הבטחות ההגנה של ספק התשתית שלך. במקרים מסויימים הוא יפיל את האתר שלך, ובמקרים אחרים אתה עלול ליפול לתומכים שלא ממש יודעים מה הם עושים. יש להם הגנות מכאן עד הודעה חדשה? זה לא רלוונטי לגביך.
  • הגנה רצינית אינה עניין של להגן על הוורדפרס/ג'ומלה/דרופל שאתרך מריץ, אלא על המון פרמטרים אחרים שחלקם אולי אינך מודע אליהם. מומלץ לשכור מישהו חד פעמית כדי לבצע הערכה ותוכנית מה צריך להגן, מה צריך להסיר ואם אפשר – איך להגיע לביצועים אופטימליים עם הגנה.
  • הגנות טובות גם מצריכות תחזוקה מתמשכת, ולכן כדאי לסגור עם מי שמטפל בך טכנית שגם יעדכן את השרת שלך אחת לכמה שבועות.
  • חשוב: אם האתר שלך חשוב מאוד ו/או מייצר לך רווחים, אל תאחסן אותו באחסון משותף (Shared Hosting). לצערי כמות ההגנה שניתן לבצע על אתר שמאוחסן באחסון משותף היא מאוד קטנה (לא ניתן להגן עליו מ-DDoS, לא ניתן להטמיע WAF "מבחוץ", לא ניתן להגן על המכונה ועוד).

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

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

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

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

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

הגנה פשוטה נגד Defacement – לבעלי VPS

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

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

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

הטריק שאנחנו הולכים להשתמש, הוא טריק שמשנה הרשאות ברמת ה-File system אך לא ברמת ה-UNIX אלא ברמה של ה-EXT2/3/4, כלומר ברמה של הקבצים ב-Partition. שם ההרשאות הן שונות מרמת הלינוקס הרגילה שאנחנו מכירים וניתן לעשות דברים רבים עם זה. אפשר לקרוא על כך עוד כאן.

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

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

ההרשאה שאנו מדברים עליה נקראת immutable bit, וכפי שהסברתי מקודם, שינוי הרשאה של קובץ עם הביט הזה, ולא ניתן יהיה לשנות או למחוק אותו. על מנת לשנות את הקובץ ולהגן עליו, בצעו את הפקודה הבאה כ-root או עם sudo:

chatter +i index.php

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

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

chatter -i index.php

עכשיו תוכלו לעדכן.

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

השיטה הזו אינה מגינה 100%. אם פורץ הצליח לקבל הרשאות root ע"י שימוש ב-exploit כלשהו, הוא יגיע לקבצים ואם הוא יודע קצת לינוקס, הוא יוכל לשנות עם פקודת chattr, אבל גם בלי זה, אם האתר שלכם נפרץ, אז יש מצב שהפורץ יעלה לשם קבצים או שישנה לכם את ה-DB, ולכן אם אכפת לכם מהאתרים, מומלץ מדי פעם להציץ ב-DB לראות שהכל תקין, שאתם יכולים להיכנס ל-wp-admin (אם זה וורדפרס) או administrator (אם זה ג'ומלה), ובדקו שאין בתיקיית האתר קבצים שלא אתם הוספתם. כבר ראיתי מקרים שמישהו הגן על האתר שלו אבל הצצה לתיקיית ה-public_html שלו הראתה ערימות של קבצי פריצה רק מחכים לשימוש.

 

חנות באינטרנט

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

זו שיטה נחמדה, אבל בעייתית מכמה סיבות.

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

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

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

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

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

  1. מצא לך בונה אתרים מקצועי (אחד שיש לו כמה שנות ותק ונסיון עשיר) ותאר לו מה אתה רוצה להקים, איך זה יראה, מה הדברים שיהיו בו ועוד. בונה האתרים יוכל לאמר לך מה תצטרך, מה העלויות וסביר להניח שהוא גם יקשר אותך לגרפיקאי שיבצע עבורך את העיצוב (ניתן לרכוש גם עיצובים בחו"ל ובונה האתר יוכל "לגייר" אותם בתשלום לעברית)
  2. מצא לך אחסון אתרים אמין (יש מספר ספקים גדול בארץ שמספק זאת. אם אינך מבין באחסון אתרים, תוכל לשאול את בונה האתרים על כך והוא יוכל להמליץ לך על ספק זה או אחר) וסגור חבילה עם הספק, ותן את הפרטים הטכניים לבונה האתר שלך (הסיבה שעדיף לך לעשות זאת בעצמך ולא עם בונה האתרים היא פשוטה: עדיף שהשליטה בנושא אחסון האתר תהיה שלך, אתה בסופו של דבר הלקוח).
  3. אם יש לך המון (מאות או אלפי פריטים), אתה רוצה להחזיק מאגר לקוח, לעשות סליקת כרטיסים מאובטחת, כדאי לך לקחת במקום חבילת אחסון אתרים, שרת וירטואלי (VPS). המחיר הוא יותר גבוה בהשוואה לאחסון אתרים, אולם ב-VPS יש לך שליטה מלאה ומי שינהל לך את האתר והשרת יוכל לדאוג למקסימום אבטחה.
  4. במרבית המקרים בונה האתרים יקח פלטפורמה לניהול תוכן כדי להקים את אתר המכירות שלך, בקש ממנו שיוודא כי הגירסה של התוכנות תהיה עדכנית.
  5. לקראת סיום הבניה, ודא כי האתר שלך עולה ונראה טוב בכל הדפדפנים הסטנדרטיים כמו פיירפוקס, כרום, אופרה ואקספלורר, ומומלץ לוודא כי האתר עולה ונראה טוב גם באייפון או טלפונים כמו גלקסי.
  6. ודא כי החוזה בינך לבין בונה האתר כולל: תחזוקה חודשית ועדכוני תוכנה, ותמיכה. סביר להניח שזה יוסיף מעט למחיר, אך זה שווה את הסכום: הדבר האחרון שתרצה לראות שקורה לאתר שלך שהוא נהפך מחנות לאתר עם דגל פלסטין וקללות.

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

בהצלחה

על שרתים וירטואליים (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

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

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

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

אני יכול לתת דוגמא מהעסק שלנו: אנחנו מתמקדים בשרתי VPS המיועדים לתחום ה-Prosumer  כלומר לשוק שמורכב גם ממקצוענים שמכירים היטב ולעומק מה זה VPS, מה זה שרת וירטואלי, מה ניתן ומה לא ניתן לעשות איתו, איך להגדיר אותו, איך לשנות אותו מכל צד אפשרי, לעשות לו אופטימיזציה ועוד, וגם לאנשים עצמם שמתכנתים, אנשי סיסטם (שיש להם בעבודה שרתים וירטואליים והם מנהלים אותם או שהם מנהלים של המחלקות הללו), אינטגרטורים, בוני אתרים מקצועיים, אנשי QA ועוד. גם האחסון המשותף שלנו שונה מאוד מאחסון אתרים שאחרים נותנים, כי אצלנו שמים דגש יותר על תמיכה של שפות נוספות, כלים (כמו GIT,SVN וכו') לניהול קוד, בקרה, והגבלת המשתמש כדי שלא יוכל "לחנוק" משתמש אחר (כן, גם באחסון משותף). אם מישהו שלא מבין כלל בתחום מגיע אלינו והוא רוצה לאחסן אתר, אנחנו נבקש לסגור את הפרטים הטכניים מול בונה האתרים שלו ולא איתו. אם אין לו בונה אתרים והוא לא מבין כלום בנושא ורוצה להרים בלוג משלו, נשמח להפנות אותו למתחרים, כי זה לא התחום שלנו. אנחנו לא נותנים שרות ל-End Users אבל רוב הספקים הישראלים שנותנים שרותי אחסון אתרים (אחסון משותף) נותנים בשמחה למשתמשי קצה, אז שירוויחו, בשמחה.

זה הפוקוס אצלנו.

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

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

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

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

בהצלחה

היכן לאחסן ומה לבדוק

שנים רבות אני שומע את השאלה הבאה בגרסאות שונות "אני בונה אתר ואני רוצה לאחסן אותו. מכיר מישהו מומלץ?" או "יש לי אתר באחסון XYZ אבל אני לא מרוצה מהשרות. מכיר חברה אחרת מומלצת?"

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

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

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

  • אתר קטן או מספר אתרים קטנים: אם יש לך אתר קטן או מספר אתרים קטנים ואין חשיבות לזמן הטעינה שלהם, כמו בלוגים אישיים עם מספר מבקרים קטן, אתרים אישיים קטנים עם מספר נמוך של מבקרים ואתרים קטנים נוספים אשר אינם מקודמים (SEO) – אז אפשר לאחסן את האתר בארץ, בארה"ב או אירופה באחסון משותף.
  • בלוגים או אתרים קטנים עם מספר גולשים של מאות ביום או בלוגים מקודמים (SEO) עם קהל יעד ישראלי : בקידום אתרים יש חשיבות גדולה האם האתר נטען מהר או לא (לא רק ה-HTML של הדף הראשי אלא גם תמונות וכו') , ואתר קטן/בלוג עם כמות קוראים רבים צריך שהמידע יגיע כמה שיותר מהר לגולש – אתרים כאלו מומלץ לאחסן בארץ, ואם הפתרונות בארץ יקרים מדי לפונה, אחסון משותף באירופה יכול לתת תוצאות לא רעות (אם כי המהירות מאירופה וחו"ל אל ישראל יכולה להשתנות עקב האטת תקשורת מכוונת מצד ספקי התקשורת הישראליים).
  • אתרים בינוניים המיועדים לקהל הישראלי (מושכים כמות של אלפי גולשים ליום) – חד וחלק, חפשו אחסון משותף או שרת VPS (שרת וירטואלי) כאן בישראל. יכול להיות שהמחיר יהיה טיפה יותר יקר (על הבדלי המחירים אכתוב כאן בפוסט אחר), אך מצד שני הגולשים שלכם יקבלו את המידע בצורה מהירה וזורמת (תלוי כמובן בספק, רוחב הפס שלו, שרת VPS שלו וכו' – ואלו עניינים לפוסט אחר).
  • אתרים גדולים (עשרות אלפי גולשים, אלפי גולשים שמעלים תוכן ביום) המיועדים לקהל ישראלי – מומלץ לרכוש שרתים יעודיים מיבואני שרתים (DELL, HP, IBM וכו') ולארח אותם בחווה שהספק מארח. המחיר יצא זול בהרבה מאשר לקחת שרת וירטואלי מפלצתי שלא בטוח שיעמוד בעומסים ויהיה יקר בצורה משמעותית מאירוח שרת פיזי בחווה.
  • אתרים/שרותים בינוניים וגדלים המיועדים לקהל עולמי: כאן לצערי פתרון בישראל לא יסייע לך ("תודות" לספקי התקשורת הישראליים) אולם פתרון מקובל אחר שרבים משתמשים בו (השכרת שרתים/VPS בארה"ב) גם אינו הפתרון הכי יעיל. אם אתה מייעד את הפתרון שלך ככלל עולמי, עדיף לקחת פתרון באירופה (ישירות או דרך ספק ישראלי שיש לו שרתים באירופה). מדוע? כי רוחב הפס בין אירופה לשאר המקומות בעולם גדול משמעותית ממה שיש בין ארה"ב לשאר העולם.
  • פתרונות מורכבים (מספר שרתים וירטואליים ו/או יעודיים עם Load Balancer וכו') – רבים מעדיפים לקחת פתרונות כאלו מ-Amazon (כשמדובר בשרתים וירטואליים, אמזון אינה משכירה שרתים יעודיים ואינה נותנת שרותי Colo), אולם מומלץ לחשוב גם על פתרונות מספקים אחרים ולשקול אותם בגלל סיבה פשוטה: הפתרון של Amazon (ו-Amazon היא רק דוגמא אחת) הוא פתרון "נעול", כלומר אם מחר בבוקר לא תהיה מרוצה מהשרות שלהם/שרתים שלהם, אינך יכול לקום ולעבור ספק תוך יום יומיים, תצטרך לשנות מהקצה אל הקצה את כל התשתית שלך, דבר שיעלה לך לא מעט, ולכן לפעמים דווקא כדאי לקחת פתרונות סטנדרטיים (לדוגמא: מספר שרתים וירטואליים ו-Load Balancer בחומרה או תוכנה) כשהאיש הטכני שלך מגדיר אותם, ואם תרצה לעבור, כל מה שיהיה צריך לעשות זה לשכור חבילות זהות, וכל מה שנותר לאיש הטכני שלך יהיה להעתיק את התוכן מהשרתים הישנים לחדשים, לשנות כתובות, ולהגדיר את ה-LB מחדש, וזה לוקח רק חלקיק מהזמן שלוקח לעבור מ-Amazon.
  • לא להיות "יד רביעית": ישנם ספקים גדולים בעולם (המקרה הכי ידוע: חברת OVH) שמעדיפים לא לעבוד עם מדינות שונות (ובכללן ישראל) מסיבותיהן הפרטיות. מה קורה אז? מישהו באותה מדינה שוכר שרת/ים, משכיר אותם למישהו אחר (נניח בישראל) ואותו ישראלי משכיר לך את השרת, כלומר אתה בעצם "יד רביעית" (הספק עצמו, האזרח הזר, המשכיר הישראלי, ואתה) וכולם מרוויחים עליך לא רע. במקרה ויש לך תקלה או בקשת שדרוג והמשכיר הישראלי לא יודע או לא יכול  לפתור אותה, התקלה צריכה "להשתרשר למעלה" בכל המסלול, לכן מומלץ מאוד לשכור דרך נציג ישראלי שיש לו שרתים משלו (או שהוא שוכר שרתים) אצל הספק עצמו ולא דרך צד שלישי. זכור כי במידה והספק מצא לדוגמא שאתה ישראלי והוא אינו מעוניין לעשות עסקים עם ישראליים, הוא יכול פשוט לקום ולנתק את השרת, ולך תריב עם המוכר הישראלי או הבחור במדינה זרה שמכר לישראלי.
  • לא לשכור שרת VPS על סמך אתר בלבד: באתרים של ספקים הכל כתוב בצורה יפה ומושכת. המפרט הטכני מדבר על מעבדים חזקים, רוחב פס נדיב וכו'. אם אתה מעוניין בחבילה, בקש אותה ליום יומיים נסיון ותנסה "להתיש" את השרת VPS (לדוגמא) בסימולציות של מבקרים רבים, (בכמות שאתה מתכנן) ותוודא כי השרת עומד ביעדים שהגדרת. רק לאחר מכן כדאי שתסגור את העיסקה ותוודא שהשרת שקיבלת לניסוי – הוא זה שתקבל ולא אחר (טריק שיווקי ידוע).
  • חשוב לוודא שהספק נותן לך דברים מסויימים שאותם תצטרך בהמשך הדרך:
    • רוחב פס המוקצה לשרת שלך בכל הזמן (לא "מתפרץ"). מומלץ שתבדוק מדי פעם אם יש ברשותך את הרוחב הפס הנ"ל.
    • גישה לקונסולה ו/או KVM באופן מיידי (במקרה ואינך מצליח לגשת לשרת מרחוק אם בטעות נעלת את עצמך מרחוק). ספקים מסויימים לא נותנים זאת ובמקום זה מבקשים ממך סיסמת root על מנת לבצע מה שאתה רוצה – אל תיתן סיסמת root. אינך יודע מי הולך לטפל בשרת, מה הידע שלו ומה באמת הוא עושה.
    • הצמד שרות ניטור משלך לשרת הוירטואלי/יעודי שלך, לא תמיד תקבל התראה אם השרת שלך נפל.
    • ודא כי אם מדובר בשרת VPS, שהוירטואליזציה היא מלאה ואתה יכול לשדרג כל חלק במערכת עצמה ולא רק חלקים מסויימים, וכדאי שתבדוק באיזו וירטואליזציה מדובר.
    • החלף סיסמת root לאחר שקיבלת את המכונה וודא כי איש אינו נמצא במכונה זולתך.
    • ודא כי ישנה אפשרות התקנת כל העדכונים במערכת וודא כי האיש הטכני שלך מריץ עדכונים לפחות אחת לשבוע.

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

בהצלחה