Tekniska bloggspel, Android-app-apk, tips och tricks

Hur man förhindrar DDoS-attacker med Nginx

Distribuerade Denial of Service eller “DDoS” -attacker attackerar serverresurser genom grym digital kommunikationstaktik. Dessa typer av attacker är organiserade attacker i datorvärlden. Många irriterande anti-liknande åtgärder kombineras för att skapa hot som är tillräckligt kraftfulla för att stoppa erfarna servrar i deras spår. I värsta fall finns det flera sätt att göra gerilla-krig på nätet som att slåss mot en intetanande server. Lyckligtvis kan servern konfigureras för att slå tillbaka.

Nginx, ett mycket populärt serversystem för Unix-maskiner, har tillräckligt med inbyggd funktionalitet för att i hög grad begränsa effektiviteten hos DDoS-attacker.

Här är några effektiva alternativ för att hantera sådana hot på servrar som Nginx stöder:

Säkerhetskopiera din konfigurationsfil

Innan du ändrar några inställningar, se till att du gör en snabb säkerhetskopia av serverkonfigurationen. Följande kommando fungerar för detta:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Kopiera Nginx-konfiguration

När du är klar är du redo att gå vidare.

Trafikkontroll

Övervakning av din servertrafik gör det lättare att optimera säkerheten och implementera ytterligare taktik på linjen. Nginx har en modul speciellt gjord för detta.

Ställ in statussidan

Nginx är vanligtvis utrustad med en modul som heter “stubstatus” (http_stub_status_module) som gör att den här typen av funktioner lättare kan integreras i din servermiljö. Kontrollera först med följande kommando:

Nginx sökmodul

Eller röret ovan för att fånga snabbare:

nginx -V 2>&1 | grep -o with-http_stub_status_module

Nginx Grep Module

Om din produktion ser ut som ovan, gör du gärna det; om inte, måste du installera om eller kompilera din Nginx-installation med de inkluderade modulerna.

Det är enkelt att ställa in en statussida som du kan kontrollera, men du måste också begränsa åtkomsten till endast minsta (din maskin) för att skydda den. Börja med att öppna din huvudserverkonfigurationsfil som finns i “/etc/nginx/nginx.conf.”

Nginx-konfigurationsfil

Öppna och lägg till följande kod i “http-direktivet” för att aktivera modulen, ersätt din egen information snarare än “localhost,” “/ status_page” och “127.0.0.1”:

Notera: Du behöver sudo-rättigheter för att ändra den här filen.

Nginx statuskod

Prova nu din konfiguration:

Nginx-testkonfiguration

Om allt är bra kan du skicka en omlastningssignal till din server:

sudo systemctl reload nginx

Nginx Reload Server

För att komma åt din statussida, besök din servernamnplats följt av “/ status_sida” i en webbläsare eller med ett kommandoradsverktyg som curl. (Detta hjälper om webbläsarens cache inte automatiskt uppdateras.) Följande är curl-kommandot för att komma åt sidan i vårt exempel:

curl localhost/status_page

Nginx Curl Status

I webbläsaren ser ovanstående ut följande bild.

Nginx webbläsarstatus

Kontrollera åtkomstloggen

Om du ser onormal trafik när du kontrollerar statussidan konfigurerad ovan kan det vara en bra idé att kontrollera serveråtkomstloggen. Detta kan hittas på “/var/log/nginx/access.log.” Den här loggen visar HTTP-metoden som används, datum / tid för åtkomstförsöket, användaragent och åtkomst till sida.

Nginx åtkomstlogg

Begränsa anslutningar

Bland de många användbara taktikerna som är värda att försöka förhindra DDoS-attacker, är en av de enklaste och mest effektiva att begränsa nivån på inkommande trafik.

Helst bör du begränsa åtkomsten för att förhindra skadliga bots från att slå din server till ett omänskligt pris och samtidigt behålla ett rimligt pris för mänskliga klienter. I Nginx kan detta göras med anvisningarna limit_req_zone och limit_req. Följande kod anger minnes- och hastighetsgränser för användning på vilken plats som helst som är konfigurerad för att servern ska visas:

“Zone” bestämmer namnet och storleken (i detta fall i Megabyte) på det utrymme i minnet där användarbegäranden lagras. “Value” anger det totala antalet förfrågningar som Nginx kommer att ta emot varje sekund (10 i detta exempel). Tänk på den här koden som en regel och kod som följer användningen av den regeln:

Koden ovan är faktiskt lite mer än bara att tillämpa våra begränsningsregler; det lägger också till en liten kö på upp till tjugo förfrågningar för att försiktigt hantera legitima anslutningar som verkar något snabbare än vanligt, överskrider reglerna och köen genererar ett 503-fel för klienten. Så här ser de två direktiven ut i nginx.conf:

Nginx gränskod

Svartlista med IP-adresser

Om du kan få IP-adressen som DDoSing din server kan du enkelt svartlista och släppa anslutningar från denna IP-adress.

Lägg till följande kod i serverns riktning:

Blockera förfrågningar till vissa filer

Om en DDoS-attack riktar sig mot vissa filer på din server – till exempel xmlrpc.php-filen på WordPress (detta är en mycket riktad fil på de flesta WordPress-servrar) – kan du blockera alla förfrågningar om den. Lägg till den här koden till ditt servicedirektiv:

Följ proceduren ovan så kan du begränsa de flesta DDoS-attacker. Se till att kontrollera Nginx-dokumentation för ytterligare säkerhetsalternativ kan du placera det.

var den här artikeln hjälpsam? Ja Nej