מדריך אבטחת והקשחת שרת אינטרנט Nginx

שיטות עבודה מומלצות לאבטחת Nginx.


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

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

יש סיבה לכך – נגינקס כן בוערת במהירות.

במאמר זה אדבר על כמה מהמדריכים החיוניים להבטחת ה- Nginx לסביבת ייצור. אז בואו נתחיל.

SSL / TLS

הטמיע תעודת SSL

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

  • השתמש ב- OpenSSL כדי ליצור CSR עם 2048 ביט ו- sha-2

openssl req -nodes -new -sha256 -newkey rsa: 2048 -keyout bestflare.key -out bestflare.csr

  • הפקודה שלעיל תייצר קבצי CSR וקבצים מרכזיים בזמן העבודה הנוכחי. אל תשכח לשנות את שם הקובץ .csr ו- .key.

קבל את CSR חתום על ידי רשות אישורים וברגע שיש לך את האישור החתום, אתה יכול ליישם אותם ב- Nginx כמפורט להלן.

  • התחבר לשרת Nginx
  • עבור לתיקיית conf שבה יש לך קובץ ssl.conf.

הערה: בהתקנת ברירת המחדל ב- Linux, יהיה לך קובץ זה תחת /etc/nginx/conf.d.

  • ערוך את הקובץ והוסף את הדברים הבאים, שיאפשרו ל- Nginx להאזין ביציאה 443

שרת {
האזן 443 ssl;
שם השרת bestflare.com;
ssl ב;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
}

הערה: אל תשכח לשנות את האישור ואת נתיב קובץ המפתח.

  • שמור את התצורה והפעל מחדש את ה- Nginx. אישור SSL מיושם בהצלחה.

bestflare-ssl-cert

אופטימיזציה של SSL / TLS

השימוש ב- SSL לא אומר שהוא מאובטח לחלוטין וכאן כמומחה לאבטחת אינטרנט, עליך להחיל תצורה כדי לאבטח את שרת האינטרנט.

ראשית, הייתי ממליץ להריץ סריקת SSL נגד האתר כדי למצוא את הניקוד ואת הפגיעות החיונית.

ssl-labs-rating-c

אז הדירוג הנוכחי של מעבדות SSL הוא “C” והמטרה היא להפוך את זה ל”א ‘. “

השבת פרוטוקולי חלש SSL / TLS

SSL 3, TLS 1.0 ו- TLS 1.1 פגיעים, ואנחנו נאפשר רק פרוטוקול TLS 1.2 חזק.

  • ערוך את קובץ ssl.conf והוסף למטה בבלוק השרת

ssl_protocols TLSv1.2;

  • שמור את קובץ ה- ssl.conf והפעל מחדש את ה- Nginx

השבת סוויטות צופן חלשות

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

  • הוסף את הבא לבלוק השרת בקובץ ssl.conf

ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 EECDH + aRSA + RC4 EECDH EDH + aRSAULES! ! MD5! EXP! PSK! SRP! DSS";

  • שמור את הקובץ והפעל מחדש את Nginx

התקן תעודת שרשרת

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

  • הוסף את תוכן אישור השרשרת בתעודת האתר כמו להלן. בדוגמה שלי, זה יהיה /opt/cert/bestflare.pem

שרשרת cert

  • שמור את הקובץ והפעל מחדש את ה- Nginx

אבטח את דיפי-הלמן עבור TLS

דיפי-הלמן פחות בטוחה ממה שהאמינו. אחת השיטות הטובות ביותר שנוספו לאחרונה ברשימה היא לאבטח את דיפי-הלמן. יצירת DH GROUP ייחודית והוספת ssl_dhparam בקובץ ssl.conf עושה זאת.

  • צור קבוצת DH ייחודית באמצעות OpenSSL

openssl dhparam -out dhparams.pem 4096

  • זה ייקח כמה דקות וייצר קובץ dhparams.pem בספריית העבודה הנוכחית
  • העתק את dhparams.pem לתיקיית cert
  • שנה את ssl.conf והוסף הבא בבלוק השרתים

ssl_dhparam /opt/cert/dhparams.pem;

  • שמור את הקובץ והפעל מחדש את ה- Nginx

זה אמור להספיק לאופטימיזציה של SSL / TLS ונבדוק שוב את כתובת האתר כדי לראות את הדירוג.

ssllabs-a- דירוג

וו הו! אז עכשיו תוכלו לראות את זה “א” דירוג על ידי SSLLabs. כל הכבוד!

להלן ssl.conf המלא

# תצורת שרת HTTPS
שרת {
האזן 443 ssl;
שם השרת bestflare.com;
ssl ב;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers ב;
ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 EECDH + aRSA + RC4 EECDH EDH + aRSAULES! ! MD5! EXP! PSK! SRP! DSS";
ssl_dhparam /opt/cert/dhparams.pem;
}

דליפת מידע

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

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

עליך להפעיל את server_tokens כדי להשבית את זליגת המידע. הסברתי זאת במאמר הקודם שלי. הסר את הגרסה מכרז הכותרת של השרת ב- Nginx

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

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

השבת שיטות HTTP לא רצויות

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

  • שנה nginx.conf והוסף הבא תחת חסימת השרת

if ($ request_method! ~ ^ (GET | HEAD | POST) $)
{
תשואה 405;
}

שמור את הקובץ והפעל מחדש את ה- Nginx. כעת יופיע 405 לא מורשה אם מישהו מנסה להשתמש ב- TRACE, DELETE, PUT, OPTIONS.

Chandans-iMac: ~ chandan $ telnet bestflare.com 80
מנסה 128.199.100.162…
מחובר ל bestflare.com.
דמות הבריחה היא ‘^]’.
TRACE / HTTP / 1.1
מארח: בדיקה
HTTP / 1.1 405 אסור
שרת: nginx
תאריך: שבת, 11 ביולי 2015 06:04:34 GMT
סוג תוכן: טקסט / HTML
אורך תוכן: 166
חיבור: קרוב

התקפת קליקים

אתה יכול להזריק X-FRAME-OPTIONS בכותרת HTTP כדי למנוע התקפת jackjacking.

זה מושג על ידי הוספת להלן בקובץ nginx.conf

add_header אפשרויות X-Frame "SAMEORIGIN";

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

הגנת X-XSS

הזרק כותרת HTTP עם הגנת X-XSS כדי להקל על התקפת סקריפטים בין אתרים.

  • שנה את קובץ nginx.conf כדי להוסיף את הדברים הבאים

add_header הגנת X-XSS "1; מצב = חסום";

  • שמור את קובץ התצורה והפעל מחדש את Nginx. אתה יכול להשתמש ב- מבחן כותרות כלי לאימות לאחר יישום.

יתכן ויהיה מעוניין ביישום כותרות מאובטחות של OWASP המומלצות כאן.

יישום אבטחת Mod WAF

הוסף שכבת אבטחה נוספת על ידי יישום חומת האש של יישומי האינטרנט ModSecurity באמצעות OWASP Core Rule Set.

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

שמור על Nginx מעודכן

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

אני מקווה שזה יעזור לך לשמור על Nginx שלך מאובטח.

בשלב הבא יתכן ותהיה מעוניין ללמוד בנה Nginx לביצועים גבוהים מאפס.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map