{"id":20882,"date":"2026-08-22T08:31:38","date_gmt":"2026-08-22T06:31:38","guid":{"rendered":"https:\/\/webhosting.de\/tcp-syn-cookies-schutz-syn-flood-kernel\/"},"modified":"2026-08-22T08:31:38","modified_gmt":"2026-08-22T06:31:38","slug":"ochrona-przed-atakami-syn-cookie-w-protokole-tcp-ataki-syn-flood-jadro-systemu","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/tcp-syn-cookies-schutz-syn-flood-kernel\/","title":{"rendered":"Pliki \u201eTCP SYN Cookies\u201d w j\u0105drze systemu Linux: ochrona przed atakami typu SYN-flood"},"content":{"rendered":"<p><strong>Pliki cookie TCP SYN<\/strong> W j\u0105drze systemu Linux obci\u0105\u017cenie zwi\u0105zane z uzgadnianiem po\u0142\u0105czenia jest ograniczane poprzez kryptograficzne zakodowanie informacji o stanie w pocz\u0105tkowym numerze sekwencji (Initial Sequence Number) oraz poprzez pe\u0142ne nawi\u0105zanie po\u0142\u0105czenia dopiero po otrzymaniu prawid\u0142owego potwierdzenia (ACK). W ten spos\u00f3b zapobiegam sytuacji, w kt\u00f3rej ataki typu SYN-flood zatyka\u0142yby kolejk\u0119 po\u0142\u0105cze\u0144 p\u00f3\u0142otwartych i blokowa\u0142yby legalnych klient\u00f3w.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<ul>\n  <li><strong>Funkcjonalno\u015b\u0107<\/strong>: Cookie w ISN, stan dopiero po otrzymaniu potwierdzenia (ACK)<\/li>\n  <li><strong>Sterowanie w systemie Linux<\/strong>: net.ipv4.tcp_syncookies z trybami 0\/1\/2<\/li>\n  <li><strong>Korzy\u015bci<\/strong>: niewielkie zapotrzebowanie na pami\u0119\u0107 przy obci\u0105\u017ceniu atakiem<\/li>\n  <li><strong>Granice<\/strong>: nie chroni przed atakami na przepustowo\u015b\u0107 ani atakami na aplikacje<\/li>\n  <li><strong>Strojenie<\/strong>: Nale\u017cy starannie ustawi\u0107 warto\u015bci zaleg\u0142o\u015bci i ponownych pr\u00f3b<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/tcp-syn-schutz-8574.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>W jaki spos\u00f3b ataki typu SYN-Flood spowalniaj\u0105 proces uzgadniania po\u0142\u0105czenia TCP<\/h2>\n\n<p>Atakuj\u0105cy zalewa serwer <strong>Pakiety SYN<\/strong> i ignoruje kolejne odpowiedzi SYN\/ACK, przez co wpisy p\u00f3\u0142otwarte zajmuj\u0105 miejsce w kolejce SYN. Zauwa\u017cam wtedy, \u017ce nowe, prawid\u0142owe \u017c\u0105dania nie znajduj\u0105 miejsca, co prowadzi do cz\u0119stych przekrocze\u0144 limitu czasu. W\u0142a\u015bnie w tym miejscu wkraczaj\u0105 <strong>Syncookies<\/strong> : J\u0105dro pocz\u0105tkowo nie zapisuje stanu po\u0142\u0105czenia i przenosi niezb\u0119dne dane do numeru sekwencyjnego. Dopiero prawid\u0142owe potwierdzenie ACK potwierdza istnienie prawdziwego odbiorcy, dzi\u0119ki czemu nawi\u0105zywanie po\u0142\u0105czenia przebiega normalnie. Serwis LWN.net oraz dokumentacja TUM opisuj\u0105 t\u0119 zasad\u0119 jako sprawdzon\u0105 i skuteczn\u0105 ochron\u0119 przed atakami typu handshake, kt\u00f3ra nie wymaga du\u017cego zu\u017cycia pami\u0119ci. Architektura ta pozwala serwerowi zachowa\u0107 wydajno\u015b\u0107 nawet przy nat\u0142oku ruchu, poniewa\u017c kosztowne stany s\u0105 tworzone dopiero w bardzo p\u00f3\u017anym etapie.<\/p>\n\n<h2>Schemat techniczny: plik cookie zamiast dawnego systemu stanu<\/h2>\n\n<p>J\u0105dro odpowiada na <strong>SYN<\/strong> za pomoc\u0105 specjalnie zakodowanego pakietu SYN\/ACK, kt\u00f3rego numer ISN jest wyprowadzony z tajnego klucza, opcji TCP i przedzia\u0142\u00f3w czasowych. Je\u015bli nadejdzie pakiet ACK z odpowiednim numerem, odtwarzam na podstawie ISN parametry sesji i otwieram gniazdo w normalny spos\u00f3b. Je\u015bli odpowied\u017a nie nadejdzie, nie powstaje zaj\u0119ty stan p\u00f3\u0142otwarty, co oszcz\u0119dza pami\u0119\u0107 i procesor. Takie podej\u015bcie radykalnie zmniejsza podatno\u015b\u0107 fazy przyjmowania po\u0142\u0105cze\u0144 na awarie, nie zmieniaj\u0105c trwale standardowej \u015bcie\u017cki. Zgodnie z dokumentacj\u0105 Ubuntu i Red Hat technika ta dzia\u0142a niezawodnie od wielu generacji j\u0105dra i uruchamia si\u0119 dopiero wtedy, gdy kolejka grozi przepe\u0142nieniem.<\/p>\n\n<h2>W\u0142\u0105czanie i sprawdzanie: tcp_syncookies w praktyce<\/h2>\n\n<p>O prze\u0142\u0105czniku sysctl <strong>net.ipv4.tcp_syncookies<\/strong> kontroluj\u0119 zachowanie: 0 = wy\u0142\u0105czone, 1 = tylko w przypadku przeci\u0105\u017cenia, 2 = stale. W \u015brodowiskach produkcyjnych zazwyczaj ustawiam tryb 1, aby standardowy proces uzgadniania pozosta\u0142 nienaruszony, a ochrona uruchamia\u0142a si\u0119 dopiero w razie potrzeby. Stan mog\u0119 szybko sprawdzi\u0107 w pow\u0142oce, a zmiany wprowadzam za pomoc\u0105 sysctl lub na sta\u0142e w katalogu \/etc\/sysctl.d\/. Odpowiedni artyku\u0142 wprowadzaj\u0105cy na temat zachowania gniazd i schemat\u00f3w atak\u00f3w pomaga w planowaniu ca\u0142o\u015bci; szczeg\u00f3\u0142y om\u00f3wi\u0119 w artykule <a href=\"https:\/\/webhosting.de\/pl\/syn-ochrona-przed-zalaniem-obsluga-gniazd-obrona-serwera\/\">Ochrona przeciwpowodziowa SYN<\/a>. Regularnie korzystam z nast\u0119puj\u0105cych polece\u0144:<\/p>\n\n<pre><code>Wy\u015bwietlenie stanu #\nsysctl net.ipv4.tcp_syncookies\n\nTymczasowe w\u0142\u0105czenie # (do ponownego uruchomienia)\nsudo sysctl -w net.ipv4.tcp_syncookies=1\n\nUstaw # na sta\u0142e\necho \"net.ipv4.tcp_syncookies = 1\" | sudo tee \/etc\/sysctl.d\/60-syncookies.conf\nsudo sysctl --system\n<\/code><\/pre>\n\n<h2>Ograniczenia: Czego pliki cookie SYN nie potrafi\u0105<\/h2>\n\n<p>Pliki cookie SYN dotycz\u0105 przede wszystkim <strong>Syn-Queue<\/strong> i zapobiegaj\u0105 zajmowaniu pami\u0119ci przez stany p\u00f3\u0142otwarte. Nie chroni\u0105 jednak przed przeci\u0105\u017ceniem \u0142\u0105cza, przeci\u0105\u017ceniem logiki aplikacji ani nasyceniem procesora. W przypadku atak\u00f3w wolumetrycznych potrzebuj\u0119 filtr\u00f3w na wcze\u015bniejszych etapach, QoS i, w razie potrzeby, scrubbingu. R\u00f3wnie\u017c ataki na poziomie aplikacji, takie jak zalewy HTTP GET, wymagaj\u0105 dodatkowych mechanizm\u00f3w kontroli, limit\u00f3w i pami\u0119ci podr\u0119cznych. Dlatego zawsze w\u0142\u0105czam syncookies do wielopoziomowej strategii obrony, \u0142\u0105cz\u0105cej poziom sieci, j\u0105dra i us\u0142ug.<\/p>\n\n<h2>Optymalizacja: zaleg\u0142o\u015bci, kolejki i ponowne pr\u00f3by<\/h2>\n\n<p>Zanim dojdzie do sytuacji kryzysowej, zgadzam si\u0119 <strong>zaleg\u0142o\u015bci<\/strong> oraz liczb\u0119 ponownych pr\u00f3b, aby uzasadnione skoki obci\u0105\u017cenia nie uruchamia\u0142y niepotrzebnie trybu ochronnego. tcp_max_syn_backlog wp\u0142ywa na kolejk\u0119 po\u0142\u0105cze\u0144 cz\u0119\u015bciowo otwartych, a somaxconn na maksymaln\u0105 d\u0142ugo\u015b\u0107 kolejki akceptacji dla po\u0142\u0105cze\u0144 oczekuj\u0105cych na funkcj\u0119 accept(). Za pomoc\u0105 parametru tcp_synack_retries okre\u015blam, ile razy j\u0105dro b\u0119dzie pr\u00f3bowa\u0142o powt\u00f3rzy\u0107 wys\u0142anie SYN\/ACK, zanim zrezygnuje. Wy\u017csze warto\u015bci backlog\u00f3w pozwalaj\u0105 z\u0142agodzi\u0107 kr\u00f3tkie szczyty obci\u0105\u017cenia, ale zajmuj\u0105 pami\u0119\u0107; mniejsza liczba ponownych pr\u00f3b szybciej zwalnia sloty, ale wi\u0105\u017ce si\u0119 z ryzykiem zbyt surowego potraktowania od\u0142\u0105czonych klient\u00f3w. Te kompromisy testuj\u0119 przy realistycznym obci\u0105\u017ceniu za pomoc\u0105 narz\u0119dzi takich jak hping3 lub tcp_syn_flooder w izolowanej sieci.<\/p>\n\n<pre><code># \u2013 ustawienia na okresy szczytowego obci\u0105\u017cenia\nsudo sysctl -w net.core.somaxconn=4096\nsudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192\nsudo sysctl -w net.ipv4.tcp_synack_retries=3\n<\/code><\/pre>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/tcpsyncookies_7432.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Por\u00f3wnanie tryb\u00f3w pracy: skutki i zastosowanie<\/h2>\n\n<p>Na co dzie\u0144 wybieram <strong>Tryby<\/strong> nale\u017cy o tym pami\u0119ta\u0107, poniewa\u017c wp\u0142ywaj\u0105 one na diagnostyk\u0119, wska\u017aniki i zachowanie w sytuacjach stresowych. Trwa\u0142e pliki cookie (2) pozwalaj\u0105 unikn\u0105\u0107 wczesnego ustalania stanu, jednak zmieniaj\u0105 warto\u015bci pomiarowe dotycz\u0105ce ponownych pr\u00f3b i mog\u0105 wp\u0142ywa\u0107 na rzadkie przypadki graniczne zwi\u0105zane z opcjami TCP. Tryb adaptacyjny (1) pozwala stosowi dzia\u0142a\u0107 normalnie i interweniuje w przypadku zagro\u017cenia przepe\u0142nieniem. Tryb wy\u0142\u0105czony (0) ma sens co najwy\u017cej w warunkach laboratoryjnych lub w sieciach zamkni\u0119tych. Poni\u017csza tabela zawiera zwi\u0119z\u0142e podsumowanie:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Tryb<\/th>\n      <th>Opis<\/th>\n      <th>Przewaga<\/th>\n      <th>Potencjalne skutki uboczne<\/th>\n      <th>Przyk\u0142ad<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>0<\/td>\n      <td><strong>Wy\u0142\u0105czone<\/strong>, brak plik\u00f3w cookie<\/td>\n      <td>Wyra\u017ane zachowanie linii bazowej<\/td>\n      <td>Atakuj\u0105cy zape\u0142nia kolejk\u0119 Syn<\/td>\n      <td>Izolowana sie\u0107 testowa<\/td>\n    <\/tr>\n    <tr>\n      <td>1<\/td>\n      <td><strong>Adaptacyjne<\/strong>, tylko w przypadku przepe\u0142nienia<\/td>\n      <td>Standardowy protok\u00f3\u0142 TCP w stanie spoczynku<\/td>\n      <td>Kalibracja punktu prze\u0142\u0105czania<\/td>\n      <td>Us\u0142ugi publiczne<\/td>\n    <\/tr>\n    <tr>\n      <td>2<\/td>\n      <td><strong>Wymuszone<\/strong>, zawsze aktywny<\/td>\n      <td>Wczesne odci\u0105\u017cenie<\/td>\n      <td>Warto\u015bci analityczne ulegaj\u0105 zmianie<\/td>\n      <td>Trudna sytuacja ofensywna<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Wymierne efekty: op\u00f3\u017anienia i wska\u017anik skuteczno\u015bci<\/h2>\n\n<p>Pod ci\u015bnieniem spada <strong>Wymagania dotycz\u0105ce pami\u0119ci<\/strong> jest wyra\u017anie widoczne przy nawi\u0105zaniu ka\u017cdego po\u0142\u0105czenia, poniewa\u017c nie powstaje stan p\u00f3\u0142otwarty. Dzi\u0119ki temu pliki SYN Cookies utrzymuj\u0105 wysoki wska\u017anik akceptacji, a kr\u00f3tkie impulsy powoduj\u0105 mniej przerw. W warunkach nat\u0119\u017conego ruchu obserwuj\u0119 szybsz\u0105 regeneracj\u0119, gdy tylko \u017ar\u00f3d\u0142o ruchu wysycha. Wytyczne Ubuntu i Tenable zalecaj\u0105 stosowanie adaptacyjne, aby zwyk\u0142e klienty dzia\u0142a\u0142y bez zmian. W ramach test\u00f3w regresyjnych sprawdzam retransmisje, wska\u017aniki utraty pakiet\u00f3w oraz op\u00f3\u017anienia serwera podczas przechodzenia w tryb plik\u00f3w cookie.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/tcp-syn-cookies-lnx-protection-4281.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Dodatkowe warstwy zabezpiecze\u0144: zapora sieciowa i limity<\/h2>\n\n<p>Pliki syncookies usuwam za pomoc\u0105 <strong>Regu\u0142y filtrowania<\/strong> oraz ograniczenia szybko\u015bci, aby obci\u0105\u017cenie w og\u00f3le nie dotar\u0142o do stosu TCP. W systemie Linux najch\u0119tniej stosuj\u0119 regu\u0142y nftables, aby ogranicza\u0107 lub wcze\u015bnie odrzuca\u0107 podmioty naruszaj\u0105ce zasady na podstawie szybko\u015bci po\u0142\u0105cze\u0144. Zwi\u0119z\u0142y przegl\u0105d nowoczesnych filtr\u00f3w pakiet\u00f3w zawiera ten przewodnik <a href=\"https:\/\/webhosting.de\/pl\/netfilter-kontra-nftables-nowoczesne-technologie-zapory-sieciowej-w-systemie-linux-shield\/\">nftables a Netfilter<\/a>. Dodatkowo pomocne s\u0105 scenariusze SYNPROXY w zaporach brzegowych, kt\u00f3re przerywaj\u0105 proces uzgadniania po\u0142\u0105czenia i przepuszczaj\u0105 wy\u0142\u0105cznie prawid\u0142owe po\u0142\u0105czenia. W przypadku nara\u017conych port\u00f3w definiuj\u0119 \u015bcis\u0142e ustawienia otwarcia, progi rejestrowania oraz maksymaln\u0105 liczb\u0119 pr\u00f3b nawi\u0105zania po\u0142\u0105czenia na adres \u017ar\u00f3d\u0142owy.<\/p>\n\n<h2>Rozwi\u0105zania o wysokiej wydajno\u015bci: XDP i inne.<\/h2>\n\n<p>Gdy ataki masowe powoduj\u0105, \u017ce <strong>Wsp\u00f3\u0142czynnik PPS<\/strong> Aby zwi\u0119kszy\u0107 wydajno\u015b\u0107, przenosz\u0119 logik\u0119 filtrowania za pomoc\u0105 XDP na brzeg sieciowy karty sieciowej (NIC). W ten spos\u00f3b odrzucam podejrzane pakiety SYN jeszcze przed warstw\u0105 gniazda, co zmniejsza obci\u0105\u017cenie procesora i odci\u0105\u017ca kolejk\u0119 przyjmowania. Rozpocz\u0119cie pracy z t\u0105 technik\u0105 u\u0142atwia wprowadzenie do <a href=\"https:\/\/webhosting.de\/pl\/xdp-wysokowydajne-przetwarzanie-pakietow-z-predkoscia-jadra-systemu\/\">Przetwarzanie pakiet\u00f3w XDP<\/a>. W po\u0142\u0105czeniu z plikami cookie SYN powstaje system dwuetapowy: najpierw zgrubna selekcja na karcie, a nast\u0119pnie niezawodna weryfikacja protoko\u0142u handshake w j\u0105drze systemu. Ten \u0142a\u0144cuch znacznie ogranicza powierzchni\u0119 ataku i zapewnia dost\u0119pno\u015b\u0107 us\u0142ug.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/tech_office_tcp_syn_cookies_4823.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Diagnoza: jak prawid\u0142owo interpretowa\u0107 wska\u017aniki i wpisy w dzienniku<\/h2>\n\n<p>W przypadku widocznych <strong>Limity czasu<\/strong> Sprawdzam statystyki netstat\/ss, komunikaty dmesg oraz panele Grafana z danymi dotycz\u0105cymi szybko\u015bci po\u0142\u0105cze\u0144. Rosn\u0105cy odsetek pakiet\u00f3w SYN-RECV, du\u017ca liczba retransmisji i utraty pakiet\u00f3w wskazuj\u0105 na przej\u015bcie w tryb ochronny. Zwracam uwag\u0119 na komunikaty o przepe\u0142nieniu kolejki SYN i koreluj\u0119 je z obci\u0105\u017ceniem procesora oraz IRQ. Przechwytywanie pakiet\u00f3w za pomoc\u0105 tcpdump potwierdza logik\u0119 numer\u00f3w sekwencyjnych i pomaga wykrywa\u0107 fa\u0142szywe alarmy. Za pomoc\u0105 licznik\u00f3w iptables\/nftables dodatkowo mierz\u0119 liczb\u0119 trafie\u0144 w regu\u0142ach ograniczania przepustowo\u015bci.<\/p>\n\n<h2>Zgodno\u015b\u0107: opcje TCP i skrajne przypadki<\/h2>\n\n<p>Programowanie nowoczesnych j\u0105dra <strong>Opcje<\/strong> takie jak MSS, SACK czy Timestamp, tak aby pliki cookie by\u0142y przesy\u0142ane w spos\u00f3b umo\u017cliwiaj\u0105cy ich odtworzenie. Starsze lub nietypowe stosy protoko\u0142\u00f3w mog\u0105 wykazywa\u0107 pewne specyficzne zachowania, dlatego przed wdro\u017ceniem sprawdzam \u015bcie\u017cki krytyczne. Szczeg\u00f3lnie w przypadku serwer\u00f3w proxy, NAT i topologii anycast dok\u0142adnie obserwuj\u0119 zachowanie systemu. Serwis LWN.net omawia szczeg\u00f3\u0142y projektowe, kt\u00f3re wyja\u015bniaj\u0105, dlaczego wsp\u00f3\u0142czesne implementacje dzia\u0142aj\u0105 niezawodnie. W bardzo specyficznych scenariuszach wymuszony tryb pracy (2) pozostaje narz\u0119dziem, z kt\u00f3rego korzystam wy\u0142\u0105cznie w konkretnych przypadkach.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/developer_desk_tcp_syn_8793.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Typowe b\u0142\u0119dne przekonania: to, co cz\u0119sto prostuj\u0119<\/h2>\n\n<p>Syncookies nie zast\u0119puj\u0105 <strong>Obrona przed atakami DDoS<\/strong> na obrze\u017cach sieci; chroni\u0105 one przede wszystkim faz\u0119 uzgadniania po\u0142\u0105czenia. Sama wysoka warto\u015b\u0107 somaxconn nie zapobiega przepe\u0142nieniom, je\u015bli na pakiety SYN\/ACK nigdy nie udziela si\u0119 odpowiedzi. R\u00f3wnie mylne jest za\u0142o\u017cenie, \u017ce trwa\u0142e pliki cookie (2) s\u0105 zawsze najlepszym wyborem; negatywnie wp\u0142ywa to na diagnostyk\u0119 i przypadki szczeg\u00f3lne. Bez monitorowania brakuje mi sygna\u0142\u00f3w niezb\u0119dnych do dostosowania punkt\u00f3w prze\u0142\u0105czania i limit\u00f3w. Testy obci\u0105\u017ceniowe pozostaj\u0105 niezb\u0119dne, aby konfiguracja i sprz\u0119t by\u0142y dostosowane do rzeczywistej dynamiki dost\u0119pu.<\/p>\n\n<h2>Sprawdzenie w praktyce: kroki prowadz\u0105ce do sformu\u0142owania wiarygodnego za\u0142o\u017cenia<\/h2>\n\n<p>Zaczynam od <strong>Tryb 1<\/strong> dla tcp_syncookies i sprawdzam punkt interwencji pod obci\u0105\u017ceniem. Nast\u0119pnie umiarkowanie zwi\u0119kszam warto\u015bci tcp_max_syn_backlog i somaxconn, jednocze\u015bnie zmniejszaj\u0105c tcp_synack_retries i mierz\u0105c wska\u017aniki skuteczno\u015bci. Ograniczenia przepustowo\u015bci zapory oraz filtry geograficzne i ASN odfiltrowuj\u0105 szum przed stosem. Filtry XDP lub SmartNIC zachowuj\u0119 na sytuacje wymagaj\u0105ce wysokiej liczby PPS, aby m\u00f3c celowo wykorzystywa\u0107 zasoby. Na koniec dokumentuj\u0119 wska\u017aniki, aby p\u00f3\u017aniejsze dostosowania opiera\u0142y si\u0119 na danych.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/netzsicherheit-datenzentrum-8173.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>IPv6 i Dual-Stack: ten sam prze\u0142\u0105cznik, ta sama logika<\/h2>\n\n<p>W \u015brodowiskach typu dual-stack zachowuj\u0105 si\u0119 <strong>IPv4 i IPv6<\/strong> jest sp\u00f3jny w kontek\u015bcie plik\u00f3w cookie. Przycisk <em>net.ipv4.tcp_syncookies<\/em> zarz\u0105dza ochron\u0105 globalnie dla protoko\u0142u TCP, a wi\u0119c r\u00f3wnie\u017c dla gniazd v6. Dlatego testuj\u0119 przej\u015bcie do trybu cookie w obu protoko\u0142ach \u2013 zw\u0142aszcza gdy urz\u0105dzenia upstream w sieci IPv6 korzystaj\u0105 z innych \u015bcie\u017cek filtrowania. Wa\u017cne: pliki cookie SYN chroni\u0105 wy\u0142\u0105cznie protok\u00f3\u0142 TCP. Us\u0142ugi UDP lub QUIC wymagaj\u0105 w\u0142asnych limit\u00f3w przepustowo\u015bci i polityki brzegowej, aby ruch oparty na obj\u0119to\u015bci nie przeci\u0105\u017ca\u0142 procesora.<\/p>\n\n<h2>Wska\u017aniki w j\u0105drze systemu: wiarygodne wska\u017aniki<\/h2>\n\n<p>Aby zapewni\u0107 niezawodny monitoring, korzystam z licznik\u00f3w j\u0105dra, kt\u00f3re wyra\u017anie identyfikuj\u0105 pliki cookie. Opr\u00f3cz <em>ss -s<\/em> Aby monitorowa\u0107 rozk\u0142ady stan\u00f3w, obserwuj\u0119 liczniki wys\u0142anych, przyj\u0119tych i nieudanych plik\u00f3w cookie. W ten spos\u00f3b mog\u0119 stwierdzi\u0107, czy zabezpieczenia dzia\u0142aj\u0105, czy legalni klienci maj\u0105 dost\u0119p oraz czy wyst\u0119puj\u0105 b\u0142\u0119dy w konfiguracji.<\/p>\n\n<pre><code>Przegl\u0105d #\nss -s\nss -ant state syn-recv | wc -l\n\nLicznik plik\u00f3w cookie # (j\u0105dro: \/proc\/net\/netstat)\ngrep -E 'Syncookies|ListenOverflows|ListenDrops' \/proc\/net\/netstat\n\n# Widok na \u017cywo\nwatch -n1 'grep -E \"Syncookies(Sent|Recv|Failed)|Listen(Overflows|Drops)\" \/proc\/net\/netstat'\n\n# Wskaz\u00f3wki z log\u00f3w (przyk\u0142adowy komunikat)\n# dmesg wy\u015bwietla m.in.:\n# TCP: Mo\u017cliwe zalanie pakietami SYN na porcie 443. Wysy\u0142anie plik\u00f3w cookie. Sprawd\u017a liczniki SNMP.\n<\/code><\/pre>\n\n<p>Wznosi\u0107 si\u0119 <em>Przepe\u0142nienia list<\/em> oraz <em>ListenDrops<\/em> r\u00f3wnolegle do <em>SyncookiesSent<\/em> , dostosowuj\u0119 zaleg\u0142o\u015bci, ponowne pr\u00f3by i filtry upstream. Pozostaj\u0105 <em>SyncookiesRecv<\/em> ... to wskazuje na zwyk\u0142\u0105 fal\u0119 bot\u00f3w; je\u015bli natomiast cz\u0119\u015bciej zdarzaj\u0105 si\u0119 <em>SyncookiesFailed<\/em>, sprawdzam \u015bcie\u017cki NAT\/proxy oraz ewentualne manipulacje w trakcie transmisji.<\/p>\n\n<h2>Serwery proxy, urz\u0105dzenia r\u00f3wnowa\u017c\u0105ce obci\u0105\u017cenie i Kubernetes<\/h2>\n\n<p>Na stronie <strong>\u0141a\u0144cuchy serwer\u00f3w proxy i r\u00f3wnowa\u017cenia obci\u0105\u017cenia<\/strong> Decyduje o tym rozmieszczenie mechanizmu ochrony plik\u00f3w cookie. Je\u015bli modu\u0142 r\u00f3wnowa\u017cenia obci\u0105\u017cenia L4\/L7 przerywa proces uzgadniania po\u0142\u0105czenia TCP, zalew pakiet\u00f3w SYN w og\u00f3le nie dociera do serwer\u00f3w backendowych; w takim przypadku aktywuj\u0119 pliki cookie na obrze\u017cu sieci. Je\u015bli modu\u0142 r\u00f3wnowa\u017cenia obci\u0105\u017cenia dzia\u0142a wy\u0142\u0105cznie pasywnie (DSR, ECMP), w\u0119z\u0142y backendowe musz\u0105 zapewni\u0107 ochron\u0119 samodzielnie. W Kubernetes dostosowuj\u0119 ustawienia sysctl na w\u0119z\u0142ach roboczych, zw\u0142aszcza w przypadku obci\u0105\u017ce\u0144 korzystaj\u0105cych z NodePort lub HostNetwork. W przypadku kontroler\u00f3w Ingress z w\u0142asn\u0105 ochron\u0105 przed atakami SYN (SYNPROXY, eBPF) dostosowuj\u0119 zasady tak, aby nie hamowa\u0142y one wzajemnie swojego dzia\u0142ania. W testach uwzgl\u0119dniam kontrole stanu (health checks) modu\u0142u r\u00f3wnowa\u017cenia obci\u0105\u017cenia, poniewa\u017c w przeciwnym razie kr\u00f3tkie okna testowe z ma\u0142\u0105 liczb\u0105 ponownych pr\u00f3b mog\u0105 fa\u0142szywie wskazywa\u0107 na niestabilno\u015b\u0107.<\/p>\n\n<h2>Przypadki graniczne w szczeg\u00f3\u0142ach: opcje, przedzia\u0142y czasowe, NAT<\/h2>\n\n<p>Pliki cookie koduj\u0105 jedynie <strong>parametry ograniczone<\/strong>. Nowoczesne implementacje systemu Linux zazwyczaj niezawodnie odtwarzaj\u0105 MSS, SACK i skalowanie okna; jednak znaczniki czasu i rzadko stosowane opcje mog\u0105 podlega\u0107 ograniczeniom w zale\u017cno\u015bci od wersji j\u0105dra. Dlatego preferuj\u0119 tryb pracy (1), aby dominowa\u0142a \u015bcie\u017cka standardowa, a pliki cookie mia\u0142y zastosowanie tylko w przypadku przepe\u0142nienia. Wa\u017cno\u015b\u0107 pliku cookie jest powi\u0105zana z przedzia\u0142ami czasowymi \u2013 w przypadku silnie asymetrycznych \u015bcie\u017cek lub szczyt\u00f3w op\u00f3\u017anie\u0144 prawid\u0142owe potwierdzenie (ACK) mo\u017ce znajdowa\u0107 si\u0119 tu\u017c poza oknem. W scenariuszach sieci WAN i satelitarnych mierz\u0119 zatem wariancj\u0119 czasu przelotu w obie strony, zanim zmniejsz\u0119 liczb\u0119 ponownych pr\u00f3b. NAT i urz\u0105dzenia po\u015brednicz\u0105ce, kt\u00f3re modyfikuj\u0105 numery sekwencyjne lub opcje, s\u0105 kolejnymi potencjalnymi \u017ar\u00f3d\u0142ami skrajnych przypadk\u00f3w; za pomoc\u0105 ukierunkowanych przechwyce\u0144 ustalam, gdzie dochodzi do utraty bit\u00f3w.<\/p>\n\n<h2>Ataki typu ACK\/RST flood i ich odmiany wykraczaj\u0105ce poza burz\u0119 SYN<\/h2>\n\n<p>Nie ka\u017cdy <strong>Atak transportowy<\/strong> to czysta zalewka SYN. Zalewki ACK lub RST atakuj\u0105 procesor i \u015bcie\u017cki pakiet\u00f3w, nie uruchamiaj\u0105c procedury uzgadniania po\u0142\u0105czenia \u2013 pliki cookie niewiele tu pomagaj\u0105. W takich przypadkach stosuj\u0119 wczesne filtry (nftables\/XDP) z logik\u0105 stanow\u0105 lub minimalnym ograniczeniem cz\u0119stotliwo\u015bci ACK. W szczeg\u00f3lno\u015bci fale RST skierowane przeciwko nawi\u0105zanym po\u0142\u0105czeniom przerywam za pomoc\u0105 zestawu regu\u0142, kt\u00f3ry odrzuca nieoczekiwane pakiety RST bez odpowiedniego okna. R\u00f3wnie\u017c p\u00f3\u0142otwarte powt\u00f3rzenia (pakiety SYN ze spoofingiem oraz op\u00f3\u017anionymi potwierdzeniami ACK) blokuj\u0119 poprzez ograniczenia szybko\u015bci dla poszczeg\u00f3lnych przestrzeni sieciowych \u017ar\u00f3d\u0142owych.<\/p>\n\n<h2>Dalsze dostosowania: kolejki listy\/akceptacji i szybkie b\u0142\u0119dy<\/h2>\n\n<p>Opr\u00f3cz klasycznych parametr\u00f3w stosuj\u0119 dodatkowe prze\u0142\u0105czniki, kt\u00f3re wp\u0142ywaj\u0105 na zachowanie w warunkach granicznych:<\/p>\n\n<ul>\n  <li><strong>Backlog kontra somaxconn<\/strong>: Warto\u015b\u0107 w <em>listy (zaleg\u0142o\u015bci)<\/em> na proces jest okre\u015blana przez <em>net.core.somaxconn<\/em> ograniczone. Dbam o to, by oprogramowanie serwera i j\u0105dro dzia\u0142a\u0142y w harmonii, w przeciwnym razie optymalizacje p\u00f3jd\u0105 na marne.<\/li>\n  <li><strong>tcp_abort_on_overflow<\/strong>: Czy w przypadku zape\u0142nienia kolejki Accept \u017c\u0105danie zostanie po cichu odrzucone, czy te\u017c zostanie wys\u0142ana aktywna odpowied\u017a z pakietem RST. W przypadku interfejs\u00f3w API o du\u017cym nat\u0119\u017ceniu ruchu szybki b\u0142\u0105d mo\u017ce umo\u017cliwi\u0107 klientowi szybk\u0105 ponown\u0105 pr\u00f3b\u0119; w przypadku klient\u00f3w TLS lub starszych wersji zazwyczaj preferuj\u0119 domy\u015blne odrzucanie \u017c\u0105da\u0144.<\/li>\n  <li><strong>Zarz\u0105dzanie stanami Port i TIME-WAIT<\/strong>: Pliki cookie nie zapobiegaj\u0105 <em>W\u0105skie gard\u0142o portu efemerycznego<\/em>. Planuj\u0119 <em>ip_local_port_range<\/em> zachowaj elastyczno\u015b\u0107 i rozwa\u017cnie stosuj optymalizacje TIME-WAIT, aby ponowne wykorzystanie nie prowadzi\u0142o do b\u0142\u0119d\u00f3w typu Heisenbug.<\/li>\n  <li><strong>SO_REUSEPORT<\/strong>: Kilka kolejek Accept na port pozwala roz\u0142o\u017cy\u0107 obci\u0105\u017cenie na procesy robocze i ograniczy\u0107 przeci\u0105\u017cenia poszczeg\u00f3lnych procesor\u00f3w.<\/li>\n<\/ul>\n\n<h2>Metody badawcze: powtarzalne i miarodajne<\/h2>\n\n<p>Symuluj\u0119 obci\u0105\u017cenie w warunkach zbli\u017conych do rzeczywistych i mierz\u0119 punkt przej\u015bcia do trybu \u201ecookie\u201d, wska\u017anik powodzenia prawid\u0142owych po\u0142\u0105cze\u0144 oraz czas powrotu do normy po szczycie obci\u0105\u017cenia. W tym celu \u0142\u0105cz\u0119 syntetyczne zalewy pakiet\u00f3w SYN z rzeczywistymi \u017c\u0105daniami aplikacji.<\/p>\n\n<pre><code>Generowanie ruchu typu # (w laboratorium!)\nsudo hping3 -S -p 443 --flood --rand-source \n\nZmiana warunk\u00f3w sieciowych #\nsudo tc qdisc add dev eth0 root netem delay 80ms 30ms loss 1%\n\n# Mieszanie ruchu legalnego\nwrk -t8 -c512 -d60s https:\/\/\/\n\n# R\u00f3wnoleg\u0142e monitorowanie\nwatch -n1 'ss -s; echo; grep -E \"Syncookies|Listen(Overflows|Drops)\" \/proc\/net\/netstat'\n<\/code><\/pre>\n\n<p>Dzi\u0119ki tym krokom mog\u0119 sprawdzi\u0107, czy liczba ponownych pr\u00f3b zmniejsza si\u0119 zbyt gwa\u0142townie, czy zapory sieciowe po stronie upstream b\u0142\u0119dnie filtruj\u0105 znaczniki czasu, czy te\u017c kolejki akceptacji poszczeg\u00f3lnych w\u0119z\u0142\u00f3w roboczych przepe\u0142niaj\u0105 si\u0119 w nieproporcjonalnym stopniu. Dokumentuj\u0119 wska\u017aniki (wsp\u00f3\u0142czynnik powodzenia prawid\u0142owych po\u0142\u0105cze\u0144 zbli\u017cony do 100%, wsp\u00f3\u0142czynnik trafie\u0144 plik\u00f3w cookie, zachowanie op\u00f3\u017anie\u0144), aby m\u00f3c p\u00f3\u017aniej wprowadza\u0107 dostosowania w oparciu o dane.<\/p>\n\n<h2>Eksploatacja i konserwacja: zapewnienie stabilno\u015bci przez ca\u0142y okres eksploatacji<\/h2>\n\n<p>W trybie ci\u0105g\u0142ym planuj\u0119 <strong>Tajna rotacja<\/strong> (automatycznie po stronie j\u0105dra) i obserwuj\u0119, czy zmiany przedzia\u0142\u00f3w czasowych maj\u0105 zauwa\u017calny wp\u0142yw na trasy o bardzo d\u0142ugim RTT. Dbam o aktualno\u015b\u0107 j\u0105dra i sterownik\u00f3w, aby ulepszenia w implementacji cookie (lepsze kodowanie opcji, stabilne przedzia\u0142y czasowe) przynios\u0142y oczekiwane efekty. Na potrzeby audyt\u00f3w notuj\u0119, kiedy w\u0142\u0105czy\u0142 si\u0119 tryb ochronny, ile po\u0142\u0105cze\u0144 przepu\u015bci\u0142 oraz czy w\u0142\u0105czono dodatkowe filtry. W przypadku zmian dotycz\u0105cych MTU, offloadingu lub stos\u00f3w NF (np. nowych zestaw\u00f3w nftables) powtarzam kr\u00f3tkie testy, aby wcze\u015bnie wykry\u0107 niepo\u017c\u0105dane interakcje.<\/p>\n\n<h2>Skr\u00f3cona wersja dla tych, kt\u00f3rym si\u0119 spieszy<\/h2>\n\n<p>Pliki cookie SYN przechowuj\u0105 <strong>Obci\u0105\u017cenie zwi\u0105zane z u\u015bciskiem d\u0142oni<\/strong> w niewielkim stopniu, tworz\u0105c stany dopiero po otrzymaniu potwierdzonego ACK, co chroni kolejk\u0119 SYN przed zalaniem. Aktywuj\u0119 tryb 1, ostro\u017cnie dostosowuj\u0119 warto\u015bci backlog\u00f3w i liczby ponownych pr\u00f3b oraz mierz\u0119 efekty za pomoc\u0105 przejrzystych wska\u017anik\u00f3w. Dodatkowe warstwy, takie jak ograniczenia szybko\u015bci w nftables, SYNPROXY i XDP, hamuj\u0105 ruch jeszcze przed stosem TCP. Podsumowuj\u0105c, w ten spos\u00f3b zabezpieczam us\u0142ugi internetowe, pocztowe, VPN i API przed atakami typu SYN-flood, nie utrudniaj\u0105c przy tym dzia\u0142ania zwyk\u0142ych klient\u00f3w. Kto konsekwentnie wdra\u017ca te kroki, znacznie zwi\u0119ksza dost\u0119pno\u015b\u0107 i ogranicza awarie w obliczu obci\u0105\u017cenia atakami.<\/p>","protected":false},"excerpt":{"rendered":"<p>Pliki \u201eTCP SYN Cookies\u201d w j\u0105drze systemu Linux zapewniaj\u0105 niezawodn\u0105 ochron\u0119 przed atakami typu SYN flood. Dowiedz si\u0119, jak dzia\u0142a ten mechanizm i jak go skonfigurowa\u0107.<\/p>","protected":false},"author":1,"featured_media":20875,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[794],"tags":[],"class_list":["post-20882","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sicherheit-computer_und_internet"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"120","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"TCP SYN Cookies","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"20875","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/20882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=20882"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/20882\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/20875"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=20882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=20882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=20882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}