Suojautuminen DDoS-hyökkäyksiltä Rahti-palvelussa
Palvelunestohyökkäys (DoS-hyökkäys) on kyberhyökkäys, jossa hyökkääjä pyrkii tekemään koneen tai verkkoresurssin sen aiotuille käyttäjille saavuttamattomaksi häiritsemällä Internetiin yhdistetyn isännän palveluita tilapäisesti tai pysyvästi. Palvelunesto toteutetaan tyypillisesti tulvimalla kohteena oleva kone tai resurssi ylimääräisillä pyynnöillä, jotta järjestelmät ylikuormittuvat ja osa tai kaikki oikeutetut pyynnöt jäävät toteutumatta. Hajautettu palvelunestohyökkäys (DDoS) on laajamittainen DoS-hyökkäys, jossa hyökkääjä käyttää useampaa kuin yhtä yksilöllistä IP-osoitetta tai konetta, usein tuhansista haittaohjelmalla saastutetuista isännistä.
Rahdin reitittimet on jo valmiiksi määritetty sisältämään jonkin verran suojausta DDoS-hyökkäyksiä vastaan. Aikakatkaisu http-request ja muut vastaavat on lisätty oletusarvoiseen HAProxy-reititinkuvaan suojaamaan klusteria DDoS-hyökkäyksiltä (esimerkiksi slowloris). Tällä hetkellä määritetyt arvot ovat:
| Parameter | Default timeout | Description |
|---|---|---|
| http-request | 10s | HAProxy antaa asiakkaalle 10 sekuntia aikaa lähettää HTTP-pyynnön otsakkeet. http-request -ohje |
| connect | 10s | Asettaa enimmäisajan, jonka verran odotetaan palvelimeen kohdistuvan yhteysyrityksen onnistumista. connect -ohje |
| http-keep-alive | 10s | Asettaa suurimman sallitun ajan odottaa uuden HTTP-pyynnön saapumista. http-keep-alive -ohje |
| check | 10s | Asettaa ylimääräisen tarkistuksen aikakatkaisun, mutta vasta sen jälkeen kun yhteys on jo muodostettu. check -ohje |
On mahdollista ottaa käyttöön lisäsuojauksia reittikohtaisesti. Nämä annotaatiot täytyy lisätä sen Route-resurssin määrityksiin, jota haluat suojata:
| Setting | Description |
|---|---|
| haproxy.router.openshift.io/rate-limit-connections | Ottaa määritettävät asetukset käyttöön (esimerkiksi kun arvoksi asetetaan true). |
| haproxy.router.openshift.io/rate-limit-connections.concurrent-tcp | Samasta IP-osoitteesta tähän reittiin muodostettavien samanaikaisten TCP-yhteyksien määrä. |
| haproxy.router.openshift.io/rate-limit-connections.rate-tcp | TCP-yhteyksien määrä, jonka asiakas-IP voi avata. |
| haproxy.router.openshift.io/rate-limit-connections.rate-http | HTTP-pyyntöjen määrä, jonka asiakas-IP voi tehdä 3 sekunnin aikana. |
Voit esimerkiksi ottaa HTTP-suojauksen käyttöön suorittamalla tämän komennon:
oc annotate route test-rates haproxy.router.openshift.io/rate-limit-connections='true' \
haproxy.router.openshift.io/rate-limit-connections.rate-http='10'
Tämä ottaa käyttöön rajoituksen, jossa yhtä lähde-IP-osoitetta kohden sallitaan 10 yhteyttä 3 sekunnin aikana.
- Katso päädokumentaatiomme Route -resurssista.
- Katso myös upstream-dokumentaatio reittikohtaisista annotaatioista