Katika ukurasa huu tunawasilisha njia chache za kupunguza mashumbulizi ya DoS kwa sasa. Mbinu hizi zote zinaweza kuunganishwa. Japokuwa hakuna suluhisho la-ukubwa-mmoja katika tatizo hii kwa sasa. Kulinda tovuti inayotaka kushambuliwa kunahitaji ubunifu na mbinu-maalum iliyoundwa.

An overview of implemented defenses at the tor daemon is given in the Overview section from the Denial-of-service prevention mechanisms in Tor specification, and here we give some practical tips.

Vikwazo vya viwango katika Pointi za Utangulizi

Tangu Proposal 305 ilipotekelezwa, baadhi ya machaguo ya torrc yaliongezwa ili kusaidia kupunguza mashambulizi ya DoS katika maeneo ya utangulizi:

*HiddenServiceEnableIntroDoSDefense: Huwezesha ulinzi wa DoS katika kiwango cha utangulizi. Wakati huduma hii imewezeshwa, Kiasi na kigezo cha data kitatumwa katika sehemu ya utangulizi ambacho kitazitumia data kuomba kikomo cha utangalizi wa huduma hii.

*HiddenServiceEnableIntroDoSBurstPerSec: Utangulizi wa mtumiaji aliyeruhusiwa hutokea kwa sekunde katika sehemu ya utangulizi. Ikiwa chaguo hili ni 0, inachukuliwa kuwa haina mwisho na kwa hivyo ikiwa HiddenServiceEnableIntroDoSDefense ni seti, basi inalemaza ulinzi kwa ufanisi.

*HiddenServiceEnableIntroDoSRatePerSec: Kiwango cha utangulizi wa mtumiaji kinacho ruhusiwa kwa sekunde katika sehemu ya utangulizi. Ikiwa chaguo hili ni 0, inachukuliwa kuwa haina mwisho na kwa hivyo ikiwa HiddenServiceEnableIntroDoSDefense ni seti, basi inalemaza ulinzi kwa ufanisi.

For more information on how they work, check the tor(1) manpage and the Denial-of-Service defense extension (DOS_PARAMS) section of the Onion Services v3 specification.

Uthibitisho wa Kazi (PoW) kabla ya kuanzisha sakiti ya makutano

A Proof of Work (PoW) defense mechanism is explained in length at the PoW FAQ, and can be configured for each Onion Service with the following torrc options:

  • HiddenServicePoWDefensesEnabled: Washa upunguzaji wa uthibitisho wa kazi kulingana na huduma ya DoS. Ikiwa imewezeshwa Tor itajumuisha vigezo vya fumbo la mteja la hiari katika sehemu iliyosimbwa kwa njia fiche ya kifafanuzi cha huduma hii iliyofichwa. Maombi yanayokuja ya mikutano yatapewa kipaumbele kulingana na kiasi cha juhudi mteja atachagua kufanya wakati wa kuandaa suluhu la fumbo. Huduma itasasisha mara kwa mara kiasi kilichopendekezwa cha juhudi kulingana na mzigo wa mashambulizi na kuzima fumbo kabisa wakati huduma haijapakiwa.

  • HiddenServicePoWQueueRate: Kiwango endelevu cha maombi ya mikutano ya kutuma kwa sekunde kutoka kwa foleni ya kipaumbele.

  • HiddenServicePoWQueueBurst: Upeo wa ukubwa wa mlipuko wa maombi ya mikutano yanayoshughulikiwa mara moja kutoka kwa foleni ya kipauambele.

Chaguo lifuatalo la kimataifa linatumika kwa huduma za onion na wateja wao:

  • CompiledProofOfWorkHash:Wakati upunguzaji wa uthibitisho wa kazi wa DoS unatumika huduma zenyewe na wateja wanaounganisha zitatumia kitendakazi cha heshi kinachozalishwa kwa nguvu kama sehemu ya ukokotoaji wa mafumbo.

PoW imewezeshwa kwa chaguomsingi kwenye matoleo ya C Tor 0.4.8.1-alpha kuendelea (lakini inaweza kuzimwa ikiwa imejumuishwa na --disable-module-pow). Msaada wa msingi wa PoW unaweza kukaguliwa kwa kuendesha amri hii:

tor --list-modules
relay: yes
dirauth: yes
dircache: yes
pow: yes

Ikiwa una pow: yes basi uko na utaratibu wa ulinzi wa PoW uliojengwa ndani ya C Tor.

Kutokana na mahitaji ya leseni, maktaba za chemshabongo za mteja wa PoW v1 (Equi-X na HashXna tevador zote mbili chini ya LGPL-3.0) huwashwa tu ikiwa tor imeundwa na --enable-gpl. Hii inaweza kuthibitishwa kwa kuendesha amri ifuatayo:

tor --version
Toleo la Tor 0.4.8.3-rc.
Muundo huu wa Tor unafunikwa na Leseni ya Umma ya GNU (https://www.gnu.org/licenses/gpl-3.0.en.html)
Tor inaendeshwa kwenye Linux na Libevent 2.1.12-stable, OpenSSL 3.0.9, Zlib 1.2.13, Liblzma 5.4.1, Libzstd N/A na Glibc 2.36 kama libc.
Tor imejumuishwa na toleo la GCC 12.2.0

Ikiwa C Tor yako iliyosakinishwa haina PoW iliyowezeshwa au haijajengwa kwa usaidizi wa GNU GPL basi itabidi utafute vifurushi vingine au uikusanye mwenyewe.

Vikomo vya mkondo katika sakiti iliyoanzishwa ya makutano

Chaguzi zifuatazo za usanidi zinaweza kutumika kupunguza muunganiko katika sakiti ya rendezvous:

  • HiddenServiceMaxStreams: Idadi ya kubwa zaidi ya mtiririko ya njia za usafirishaji wa data (vilivyoungana) kwa rendezvous circuit. Thamani ya juu zaidi inayoruhusiwa ni 65535. (Kuweka hii kuwa 0 kutaruhusu idadi isiyo na kikomo katika njia kwa wakati mmoja.)

  • HiddenServiceMaxStreamsCloseCircuit:Ikiwa imewekwa 1, Na ikaongezeka HiddenServiceMaxStreams itasababisha offending rendezvous circuit kuzima, ikiwa inaendana kinyume na maombi ya kuunda njia za usafirishaji ambayo imezidi kiwango kilichokataliwa kimya kimya.

Onionbalance

Onionbalanceinaruhusu watumiaji wa Onion Service kufikia sifa ya upatikanaji wa hali ya juu kwa kuruhusu mashine nyingi kushughulikia maombi ya Onion Service. Unaweza kutumia Onionbalance kwa kiwango cha usawa. Kadri unavyo ongeza kiwango, ndivyo inavyokuwa vigumu wadukuzu kukuelemea. Onionbalance inapatikana katika toleo la 3 la Onion Services.

Kizuizi cha kiwango cha seva ya wavuti

Iwapo wadukuaji wanakuelema katika sakiti ya kawaida inayofanya maswali mengi, jaribu kugundua matumizi yaliyopita kiasi na uwaue kwa kuchagua HiddenServiceExportCircuitIDtorrc. Unaweza kutumia tafiti yako mwenyewe au seva yako ya wavuti rate limiting module.

Vidokezo hapo juu vinapaswa kukusaidia nyakati za hatari. Wakati huo tunafanyia kazi ulinzi wa juu zaidi, hivyo basi unavyohitaji kusaindi kwa kiasi kidogo na kurekebisha kwa kutumia viendesha onion.

Akiba

Njia nyingine ya kupunguza mzigo kwenye huduma yako ni kutekeleza akiba ya yaliyomo, moja kwa moja kwenye programu ya nyuma au kwa kusanidi utaftaji wa mbele wa seva mbadala.

Client authorization au anwani zaidi ya moja ya onion ili kutenganisha watumiaji wako

Ikiwa una watumiaji unaowamini, wapatie sifa za kutumia Onion Service na client authorization ili iweze kupatikana kila wakati. Kwa watumiaji usiowaamini, wagawanywe katika anwani nyingi. Hivyo tunasema, kuwa na anwani nyingi za onion ni mbaya kwa usalama wako (kwa sababu matumizi ya guard nyingi za ulinzi), Hivyo basi jaribu kutumia client authorization ikiwa inawezekana.

Vihifadhi na Vidakuzi

Ikiwa unahitaji kikomo-zaidi kwa watumiaji, gawanya miundombinu yako katika matabaka na uweke Captchas mwishoni. Kwa njia hii wadukuzi hulazimika kusuluhisha Captchas kabla ya kuweza zaidi kushambulia kwenye miundombinu yako.

Captchas ni njia ya kupunguza mashambulizi ya DDoS. Ombi linapotoka mtumiaji hukagua kama mtumiaji ana cookie sahihi kilicho salama vinginevyo huelekeza upya kwenye ukurasa wa recaptcha. Watumiaji huingiza herufi za captcha. Nginx hutuma herufi ya ingizo katika seva ya recaptcha kwa ajili ya uthibitisho.

Jibu sahihi kutoka katika seva ya recaptcha huanza na "true...", vinginevyo huanza na "false...". Ongeza cookie salama kwa mtumiaji sahihi aliyethibitishwa, muelekeze mtumiaji katika ukurasa ambao anataka kuutuzama.

Inawezekana kutengeneza Vihifadhi moja kwa moja kwenye webserver yako katika Nginx na OpenResty kwa kutumia Lua to generate and verify the captcha images. Utekelezaji huu unaweza usiwe rahisi kusanidi.

Njia mbadala inayoweza kutekeleza changamoto ya kupima-cookie. Katika webserver angalia kama watumiaji wanaweza kuweka vidakuzi halali, watumiaji hatarishi mara nyingi hawana kipengele hichi. Katika Nginx, Cloudfare hutoa library ili kuingiliana na vidakuzi.

Mbinu zingine ni pamoja kuhakikisha wateja wanaunganishwa na .onion yako ni kuwa na Wakala-Mtumiaji halali na Referer header haijawekwa kwa thamani inayoweza kuhusishwa na shambulio hilo.