Nginx ვებ სერვერის უსაფრთხოების და გამკვრივების სახელმძღვანელო

Nginx უსაფრთხოების საუკეთესო პრაქტიკა.


Nginx ინდუსტრიაში ყველაზე სწრაფად მზარდი ვებ – სერვერია და ამჟამად, იგი ინაწილებს მეორე ადგილს ბაზრის წილში.

იგი თავდაპირველად გამოიცა 2004 წელს, და მას შემდეგ მან შესანიშნავი რეპუტაცია მოიპოვა და გამოიყენა ყველაზე მილიონ ყველაზე საინტერესო საიტებზე.

ამის მიზეზი არსებობს – ნგინქსია სწრაფად იფეთქებს.

ამ სტატიაში მე ვისაუბრებ რამდენიმე აუცილებელ სახელმძღვანელოზე, რათა უზრუნველყოს Nginx წარმოების გარემოსთვის. მოდით, დავიწყოთ ეს.

SSL / TLS

განახორციელეთ SSL სერთიფიკატი

პირველი ვებ – უსაფრთხოება SSL– ს განხორციელებაა, ასე რომ თქვენ შეგიძლიათ მიიღოთ ვებ – პროგრამები https– ით და დაამატოთ კომში დაშიფვრის ფენის დამატება..

  • გამოიყენეთ OpenSSL, CSR– ს შესაქმნელად 2048 bit და sha-2

opensl req – nodes –ახლა –sha256 –ახალი წრე rsa: 2048– საუკეთესო bestflare.key– საუკეთესო bestflare.csr

  • ზემოთ მოცემული ბრძანება წარმოქმნის CSR- ს და საკვანძო ფაილებს მიმდინარე უშუალოდ მუშაობის დროს. ნუ დაივიწყებთ .csr და .key ფაილის სახელის შეცვლას.

მიიღეთ CSR ხელმოწერილი სერტიფიკატის ორგანოს მიერ და ხელმოწერილი სერთიფიკატის მიღების შემდეგ, შეგიძლიათ განახორციელოთ ისინი Nginx– ში, როგორც ქვემოთ.

  • შესვლა Nginx სერვერზე
  • გადადით conf საქაღალდეში, სადაც თქვენ გაქვთ ssl.conf ფაილი.

შენიშვნა: ლინუქსზე ნაგულისხმევი ინსტალაციისას, თქვენ ამ ფაილს მოხვდებით /etc/nginx/conf.d.

  • შეცვალეთ ფაილი და დაამატეთ შემდეგი, რაც საშუალებას მისცემს Nginx მოუსმინოს 443 პორტზე

სერვერი {
მოუსმინეთ 443 ssl;
server_name bestflare.com;
ssl on;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
}

შენიშვნა: არ უნდა დაგვავიწყდეს სერთიფიკატის და ძირითადი ფაილის ბილიკის შეცვლა.

  • შეინახეთ კონფიგურაცია და გადატვირთეთ Nginx. SSL სერტიფიკატი წარმატებით ხორციელდება.

bestflare-sll-cert

SSL / TLS ოპტიმიზაცია

SSL- ის არსებობა არ ნიშნავს რომ ის მთლიანად დაცულია და ეს არის, როგორც ვებ უსაფრთხოების ექსპერტი, თქვენ უნდა გამოიყენოთ კონფიგურაცია ქსელის ქსელის უზრუნველსაყოფად.

დასაწყისისთვის, გირჩევთ გაუშვათ SSL სკანირება ვებგვერდის წინააღმდეგ, რომ ნახოთ ქულა და არსებითი დაუცველობა.

ssl-labs-rating-c

ასე რომ, SSL Labs- ის ამჟამინდელი რეიტინგია “C” და მიზნად ისახავს ის “A.” გახადოს.

გამორთეთ სუსტი 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 + aRSA!!!!! ! MD5! EXP! PSK! SRP! DSS";

  • შეინახეთ ფაილი და გადატვირთეთ Nginx

დააინსტალირეთ ქსელის სერთიფიკატი

ჯაჭვური სერტიფიკატის არ არსებობა ასევე გავლენას ახდენს საერთო რეიტინგზე და ამან შეიძლება გამოიწვიოს შეცდომა Chrome- ის მსგავსი თანამედროვე ბრაუზერის დათვალიერებისას. თქვენ უნდა მიიღოთ ჯაჭვის სერთიფიკატი უფლებამოსილებისგან. ძირითადად მათ ვებგვერდზე ან უბრალოდ Google- ში ნახავთ მას.

  • დაამატეთ ჯაჭვის სერტიფიკატის შინაარსი ვებგვერდის სერთიფიკატში, როგორც ქვემოთ. ჩემს მაგალითში ეს იქნებოდა /opt/cert/bestflare.pem

სერტიფიკატი

  • შეინახეთ ფაილი და გადატვირთეთ Nginx

უსაფრთხო Diffie-Hellman ამისთვის TLS

დიფეი-ჰელმანი ნაკლებად უსაფრთხოა ვიდრე ითვლებოდა. ბოლო დროს სიაში დამატებული ერთ-ერთი საუკეთესო პრაქტიკაა დიფეი-ჯელჰმენის უზრუნველყოფა. ამზადებს უნიკალურ DH GROUP- ს და ssl.conf ფაილში ssl_dhparam- ს დამატებას.

  • შექმენით უნიკალური DH ჯგუფი OpenSSL– ის გამოყენებით

opensl dhparam -ah dhparams.pem 4096

  • რამდენიმე წუთი დასჭირდება და შექმნის ფაილ dhparams.pem მიმდინარე სამუშაო დირექტორია
  • დააკოპირეთ dhparams.pem სერტიფიკატორ საქაღალდეში
  • შეცვალეთ ssl.conf და დაამატეთ შემდეგი სერვერის ბლოკში

ssl_dhparam /opt/cert/dhparams.pem;

  • შეინახეთ ფაილი და გადატვირთეთ Nginx

ეს საკმარისი უნდა იყოს SSL / TLS ოპტიმიზაციისთვის და მოდით, კვლავ შეამოწმოთ URL, რომ ნახოთ ნიშანი.

ssllabs-a-rating

ვაი ჰო! ასე რომ, ახლა თქვენ ხედავთ “ა” რეიტინგი SSLLabs- ის მიერ. კარგად გაკეთდა!

აქ არის სრული ssl.conf

# HTTPS სერვერის კონფიგურაცია
სერვერი {
მოუსმინეთ 443 ssl;
server_name bestflare.com;
ssl on;
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 + aRSA!!!!! ! MD5! EXP! PSK! SRP! DSS";
ssl_dhparam /opt/cert/dhparams.pem;
}

ინფორმაციის გაჟონვა

Nginx- ის ინსტალაციაში მოგიწევთ გაცილებით მგრძნობიარე ინფორმაცია გამოვლენილი, რაც ჰაკერებს დაეხმარება შეტევისთვის მომზადებაში.

თუ PCI– ს შესაბამისობის გარემოზე მუშაობთ, ეს განიხილება, როგორც ინფორმაციის გაჟონვის დაუცველობა და უნდა დააფიქსიროს ნივთი.

თქვენ უნდა გამოიყენოთ სერვერის_ტოკიანი გამორთვა ინფორმაციის გაჟონვის გასააქტიურებლად. ეს ავუხსენი ჩემს წინა სტატიაში. ამოიღეთ ვერსია სერვერის ჰედერის ბანერისგან Nginx– ში

ვებ პროგრამის უსაფრთხოება

ნაგულისხმევი ნაგულისხმევი კონფიგურაცია არ არის სრულყოფილი და შეიძლება ჰქონდეს მრავალი დაუცველობა, რის გამოც ჩვენ მათ ვახერხებთ მათი უსაფრთხოება.

გათიშეთ არასასურველი HTTP მეთოდები

უმეტეს დროს, თქვენ უბრალოდ გჭირდებათ, HEAD & დააყენეთ HTTP მოთხოვნა თქვენს ვებ – პროგრამაში. TRACE ან DELETE- ს დაშვება სარისკოა, რადგან ამან საშუალება მისცა Cross-Site Tracking შეტევა და პოტენციურად დაუშვას ჰაკერმა ქურდობის ინფორმაციის მოპარვა..

  • შეცვალეთ nginx.conf და დაამატეთ შემდეგი სერვერის ბლოკის ქვეშ

if ($ request_method! ^ (მიიღე | უფროსი | პოსტი) $)
{
დაბრუნება 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
შინაარსის ტიპი: text / html
შინაარსი-სიგრძე: 166
კავშირი: ახლოს

Clickjacking Attack

თქვენ შეგიძლიათ შეიყვანოთ X-FRAME-OPTIONS HTTP თავით, რათა თავიდან აიცილოთ დაჭერა თავდასხმისგან.

ეს მიიღწევა nginx.conf ფაილში ქვემოთ დამატებით

add_header X- ჩარჩო – პარამეტრები "SAMEORIGIN";

სათაურის ზემოთ დავალებას ბრაუზერს დაავალებს, რომ დატვირთონ მხოლოდ ერთი და იგივე წყაროდან.

X-XSS დაცვა

გააგზავნეთ HTTP თავსართი X-XSS დაცვით, რათა შეამცირონ ჯვარედინი სკრიპტის შეტევა.

  • Nginx.conf ფაილის შეცვლა შემდეგში დამატება

add_header X-XSS- დაცვა "1; რეჟიმი = ბლოკი";

  • შეინახეთ კონფიგურაციის ფაილი და გადატვირთეთ Nginx. შეგიძლიათ გამოიყენოთ ჰედერების ტესტი ინსტრუმენტი შესრულების შემდეგ გადამოწმების მიზნით.

თქვენ ასევე შეიძლება დაინტერესებული იქნოთ OWASP- ის რეკომენდირებული უსაფრთხო სათაურების იმპლემენტაციით, რაც აქ არის აღწერილი.

განახორციელოს Mod Security WAF

უსაფრთხოების დამატებითი ფენის დამატება დაამატეთ ვებ პროგრამის Firewall ModSecurity ერთად OWASP Core Rule Set.

ალტერნატივად, თუ შეიძლება ჩათვალოთ ღრუბელზე დაფუძნებული უსაფრთხოების გამოყენება სუკური 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