Ochrona przed atakiem DDoS w 2018r.

Jest wiele sposobów aby zbudować ochronę przeciwko atakowi DDoS za pomocą reguł iptables. W poniższym artykule zostaną przedstawione najbardziej ogólne założenia takiej ochrony.

Dzięki temu tutorialowi dowiesz się jak:

  1. Wybrać najlepszy zespół reguł i łańcuchów zapobiegający atakowi DDoS
  2. Dowiesz się jak można zabezpieczyć jądro systemu Linuxa.
  3. Dowiesz się jak blokować ruch oparty o protokół TCP, który nosi znamiona ataku.
  4. Dowiesz się jak użyć reguł SYNPROXY do blokowania ataku SYN floods polegającego na wysyłaniu dużej ilości pakietów z nagłówkiem synchronizacji.

Proszę zwrócić uwagę że artykuł został napisany dla użytkowników którzy zajmują się serwerami linuxowymi na codzień.

Jeżeli tylko chcesz ochronić swój serwer przed atakami typy DDos, możesz użyć usług twojego dostawcy VPS-a przed tego rodzaju atakami.

Niestety ale na chwilę obecną nie ma dobrego rozwiązania hardwerowego do zatrzymania takiego typu ataków. Jednak dobrą informacją jest to że dzięki iptables możemy filtrować ruch i wychwytywać wrogi ruch (ilość odpytań lub anomalie związane z ruchem).

W tym artykule skupimy się wyłącznie na ochronie związanej z ruchem TCP. Większość ataków związanych z protokołem UDP polega na zapchaniu transferu ruchem sieciowym na karcie sieciowej. Jednak z drugiej strony protokuł UDP nie jest tak często wykorzystywany i przy większości usług może być zablokowany. Ksiązkowym przykładem jest streaming audio/video w trybie live.

Czym jest iptables?

jest poleceniem/filtrem użytkownika służącym do konfiguracji pakietów sieciowych jądra systemowego w systemach linuksowych. Polecenia tego może używać jedynie superużytkownik. Za pomocą tego polecenia można w szczególności ustawiać reguły służące do filtrowania i zmieniania pakietów, jak również wyświetlać istniejące reguły.

Iptables jest domyślnym narzędziem dla firewali w systemach linuxowych. Każdy kto pracował na systemach linuxowych powinien przynajmniej słyszeć o czym takim jak iptables.

Iptables jest używany aby filtrować pakiety, blokować źródło tych pakietów albo cel jak również adres IP zarówno źródłowy i docelowy. Iptables potrafi przekazywać również pakiety jak i blokować ich przekazywanie.

Przy pomocy iptables możemy blokować również niektóre usługi wykorzystujące różne porty jak ftp w trybie aktywnym oraz torrenty, za pomocą zbiorów sygnatur.

Dlaczego reguły iptables mogą cię przerazić?

Do zrozumienia jak funkcjonują reguły iptables i jak uchornić się przed atakiem DDoS musisz najpierw zrozumieć ogólny zarys jak działają reguły iptables.

Samo iptables można potraktować jako polecenie wykonywane na terminalu które daje kontrolę nad tabelką adresów ip, portów, adresów mac i reguł. Są różne tablice dla różnych reguł i różnego przeznaczenia.

Tabele IPTABLES

Filter – odrzuca niechciane pakiety,

Nat – zmienia adresy źródłowe lub docelowe pakietu. Jeżeli pakiet tworzy nowe połącznei tablica NAT sprawdza jego reguły

Mangle – modyfikuje lub oznacza pakiety, może zmieniać nagłówek

Raw – udostępnia pakiety przed ich przetworzeniem przez część kernela (np. w trybie śledzenia połączeń (conntrack)),

Security – używana przy zaawansowanych modelach bezpieczeństwa w Linuksie (np. SELinux).

Jak widzisz jest pięć tabel w systemach linuxowych, z czego najważniejsze są Filter, Nat, Mangel i Raw i to one są zwykle zainstalowane wraz z jądrem na każdym systemie. Każda z tych tabeli wspiera różne łańcuchy.

IPtables Chains

PREROUTING: raw, nat, mangle

  • Dotyczy pakietów które są na wejściu do karty sieciowej – network interface card (NIC)

INPUT: filter, mangle

  • Dotyczą pakietów które są adresowane do lokalnego adresu

FORWARD: filter, mangle

  • Dotyczy pakietów które są routowane i przekazywane dalej poprzez serwer np. do sieci urządzenia lokalnego

OUTPUT: raw, filter, nat, mangle

  • Dotyczą  pakietów które serwer wysyła, a są lokalnie wygenerowane

POSTROUTING: nat, mangle

  • Dotyczy pakietów które mają opuścić serwer

https://n0where.net/how-does-it-work-iptables

W zależności od tego z jakiego rodzaju pakietami mamy doczynienia możemy je zablokować, zmodyfikować wybrać rodzaj tablicy i łańcuch który dana tablica wspiera.

Oczywiście nadal brakuje na wyjaśnienia co można i jak można z pakietem zrobić a więc (ACCEPT, DROP, REJECT, etc.), ale zakładając że czytasz ten artykuł wiesz o co chodzi.

A więc wyjaśnijmy dlaczego reguły iptables mogą zatrzymać atak DDoS bez uczenia cię jak działają reguły.

Jeżeli chcesz zablokować atak DDoS za pomocą reguł iptables, to wiedz że wydajność reguł iptables jest niezwykel istotna. Większość ataków DDoS za pomocą protokołu TCP używa dużej ilości pakietów które mają za zadanie zalać serwer odpytaniami i doprowadzić do jego zawieszenia w ten sposób. Dlatego też powinieneś mieć pewność że potrafisz przetworzyć i zablokować atak prz zalewaniu Twojego serwera niechcianymi odpytaniami.

Jeżeli byłeś już zainteresowany tematem i znalazłeś tutoriale opisujące jak to zrobić z pewnością natknąłeś się na tablice filter i łańcuch CHAIN który ma cię ochronić przed atakiem DDoS.

Jednak należy zdać sobie sprawę że przy tym podejściu do tematu łańcuch INPUT jest wyłącznie przetwarzany po łańcuchu PREROUTING i FORWARD a w związku z tym nie pasuje do żadnego z nich. To powoduje opóźnienia w filtrowaniu pakietów a zasoby komputera zanim dojdą do tego pakietu są zużywane. Dlatego tak ważne jest efektywne używanie reguł jak to tylko możliwe, aby zapobiec takiemu atakowi zanim serwer się zawiesi na czym zależy atakującemu.

Pierwszym łańcuchem który użyjemy jest łańcuch PREROUTING, który chcemy przefiltrować ze złych pakietów/

Należy zauważyć że tablica fiter nie wspiera PREROUTING-u, a więc aby ominąć ten problem wykorzystamy tablicę mangle. Wspiera ona większość jeżeli nie wszystkie reguły filter.

Teraz powinieneś wiedzieć dlaczego iptables może zawodzić przed atakiem DDoS. Dzieje się tak ponieważ jeżeli używasz tablicy filter do blokowania wrogich pakietów!

Najlepszym rozwiązaniem które zwiększy wydajność twoich reguł iptables i uchroni cię przed atakiem (TCP) DDoS jest użycie tablicy mangle oraz łańcucha PREROUTINGU.

Rozszerzenia reguł

Wiele funkcji dostępnych jest poprzez rozszerzenia, ładowane przez -m (patrz teżman iptables-extensions): –

-m tcp/udp – jest automatycznie ładowany razem z -p udp/tcp; pozwala ustalić m.in. port źródłowy i docelowy –sport/–dport,

-m conntrack – wybiera stan połączenia –ctstate, m.in.: INVALID, NEW, ESTABLISHED, RELATED,

-m comment – pozwala na dowolny komentarz –comment,

-m limit – dzięki –limit ogranicza liczbę pakietów na jednostkę czasu,

-m time – pozwala włączyć regułę o –datestart i wyłączyć o –datestop,

-m connlimit – używając –connlimit-above pozwala ograniczyć liczbę połączeń z jednego adresu.

Najlepsze ustawienia jądra systemowego do łagodzenia ataków DDoS

Kolejnym błędem popełnianym przez administratorów systemów jest brak optymalizacji jądra systemowego które może łagodzić objawy ataku.

Zwróć uwagę że ten poradnik skupia się na systemie CentOS 7 i uwzględnia implementacje mechanizmu SYNPROXY będący nowym modułem iptables.

Musisz mieć więc na uwadze że niektóre opcje kernela muszą być dostosowane do Twojej dystrybucji linuxa.

Tak więc umieść poniższe ustawienia w pliku:

/etc/sysctl.conf i zatwierdź poleceniem sysctl -p.

Anti-DDoS Kernel Settings (sysctl.conf)

kernel.printk = 4 4 1 7 
kernel.panic = 10 
kernel.sysrq = 0 
kernel.shmmax = 4294967296 
kernel.shmall = 4194304 
kernel.core_uses_pid = 1 
kernel.msgmnb = 65536 
kernel.msgmax = 65536 
vm.swappiness = 20 
vm.dirty_ratio = 80 
vm.dirty_background_ratio = 5 
fs.file-max = 2097152 
net.core.netdev_max_backlog = 262144 
net.core.rmem_default = 31457280 
net.core.wmem_max = 67108864 
net.core.somaxconn = 65535  
net.core.rmem_max = 67108864 
net.core.wmem_default = 31457280
net.core.optmem_max = 25165824 
net.ipv4.neigh.default.gc_thresh1 = 4096 
net.ipv4.neigh.default.gc_thresh2 = 8192 
net.ipv4.neigh.default.gc_thresh3 = 16384 
net.ipv4.neigh.default.gc_interval = 5 
net.ipv4.neigh.default.gc_stale_time = 120 
net.netfilter.nf_conntrack_max = 10000000 
net.netfilter.nf_conntrack_tcp_loose = 0 
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10 
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20
net.netfilter.nf_conntrack_tcp_timeout_established = 1800 
net.netfilter.nf_conntrack_tcp_timeout_close = 10 
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20 
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20 
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20 
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10 
net.ipv4.tcp_slow_start_after_idle = 0 
net.ipv4.ip_local_port_range = 1024 65000 
net.ipv4.ip_no_pmtu_disc = 1 
net.ipv4.route.flush = 1 
net.ipv4.route.max_size = 8048576 
net.ipv4.icmp_echo_ignore_broadcasts = 1 
net.ipv4.icmp_ignore_bogus_error_responses = 1 
net.ipv4.tcp_congestion_control = htcp 
net.ipv4.tcp_mem = 65536 131072 262144 
net.ipv4.udp_mem = 65536 131072 262144 
net.ipv4.tcp_rmem = 4096 87380 33554432 
net.ipv4.udp_rmem_min = 16384 
net.ipv4.tcp_wmem = 4096 87380 33554432 
net.ipv4.udp_wmem_min = 16384 
net.ipv4.tcp_max_tw_buckets = 1440000 
net.ipv4.tcp_tw_recycle = 0 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_max_orphans = 400000 
net.ipv4.tcp_window_scaling = 1 
net.ipv4.tcp_rfc1337 = 1 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_synack_retries = 1 
net.ipv4.tcp_syn_retries = 2 
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.tcp_timestamps = 1 
net.ipv4.tcp_sack = 1 
net.ipv4.tcp_ecn = 2net.ipv4.tcp_fack = 1 
net.ipv4.tcp_fin_timeout = 10 
net.ipv4.tcp_keepalive_time = 600 
net.ipv4.tcp_keepalive_intvl = 60 
net.ipv4.tcp_keepalive_probes = 10 
net.ipv4.tcp_no_metrics_save = 1 
net.ipv4.ip_forward = 0 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.all.accept_source_route = 0 
net.ipv4.conf.all.rp_filter = 1

Powyższe ustawnienia zmaksymalizują wydajność podczas ataku typu DDoS.

Co da Ci realną ochronę przed atakiem DDoS?

Ataki DDoS są złożone i jest wiele rodzajów ataków niemożliwych do zatrzymania na podstawie sygnatur dla nich wspólnych ponieważ jest zbyt wiele.

Ale na szczęście jest coś takiego jak śledzenie połączenia (connection tracking – nf_conntrack) wbudowane w jądro systemu, które umożliwia złagodzenie każdego rodzaju ataku które nie używa pakietów SYN. To uwzględnia wszystkie pakiety ACK i SYN-ACK a także fałszywe pakiety z flagą TCP.

A więc zacznijmy od prostej reguły która zatrzymuje atak DDoS na protokole TCP.

Blokowanie nieprawidłowych PAKIETÓW

iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP

Poniższa reguła blokuje wszystkie pakiety które nie służą do zestawienia połączenia TCP przy użyciu pakietów SYN.

Blokowanie nowych połączeń TCP które nie są inicjowane przez pakiety SYN

iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

Poniżej zablokujemy pakietu które są nowe (nie służą do zestawienia połączenia) i nie używają flagi SYN. Poniższe reguły są podobne do „Blokowania nieprawidłowych pakietów” ale zauważ że przechwytują pakiety których inne reguły nie przechwytują

Blokowanie pakietów MSS o niprawidłowej wartości

iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP

Powyższe reguły blokują tylko takie z flagą SYN niektóre ale nie wszystkie również TCP MSS to pozwala zapobiec atakom SYN FLOOD. 

Blokowanie pakietów ze błędną flagą TCP

iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP 
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

Powyższe reguły blokują błędne pakiety flagi TCP które nie zostaną użyte.

Blokowanie pakietów z podsieci (Spoofing)

iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP 
iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP 
iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP 
iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP 
iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP 
iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP 
iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP 
iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP 
iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP

Reguły blokują ruch podsieci lokalnych. Zwykle w sieciach publicznych nie chesz otrzymywać pakietów z sieci lokalnych od urządzeń podpiętych pod nią.

Powyższe reguły dotyczą również twojego interfejsu loopback – 127.0.0.0/8.

Dodatkowe reguły

iptables -t mangle -A PREROUTING -p icmp -j DROP

Dzięki tej regule nie będziesz spingowany a host nie uzyska odpowiedzi. Używane jest to tylko po to aby atakujący nie wiedział czy widniejsz w sieci. Dość dużo ataków jest automatyzowanych a dzięki tej regule po ‚spingowaniu’ skrypt atakujący może uznać że urządzenia/serwera pod tym adresem IP nie ma. Reguła ta też blokuje atak typu ping flood i ICMP fragmentation flood.

iptables -A INPUT -p tcp -m connlimit --connlimit-above 80 -j REJECT --reject-with tcp-reset

Powyższa reguła nakłada limit połączeń powyżej 80. Należy wziąść pod uwagę że ten limit przy niektórych usługach może być zaniżony.

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT 
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP

Powyższe reguły ograniczają ilość połączeń na sekundę. Takie reguły mogą być pomocne przeciwko atakom, ale nie przed atakiem typu SYN floods ponieważ takie ataki zwykle wukorzystują dużą ilość adresów IP.

iptables -t mangle -A PREROUTING -f -j DROP

Powyższa reguła blokuje pofragmentowane pakiety, zwykle nie potrzebujesz blokowanie takich pakietów ale może to uchronić się przed atakiem typu UDP fragmentation flood. Jednak zwróć uwagę że taki typ ataku raczej ma wyczerpać przepustowość Twojej karty sieciowej, a więc reguła raczej jest opcjonalna i nie jest użyteczna,

iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT 
iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP

Powyższe reguły mają zablokować przychodzące połączenia pakietów TCP RST i zapobiec atakowi TCP RST floods. Zasadność tej reguły jest kwestionowana.

Ochrona przed atakami SYN Floods za pomocą SYNPROXY

SYNPROXY to nowe narzędzie wprowadzone wraz z jądrem Linuxa w wersji 3.12 i  iptables w wersji 1.4.21. dla CentOS 7 które zostało domyślnie wprowadzone wraz z kernelem 3.10.

Zadaniem SYNPROXY jest sprawdzenie kiedy urządzenie wysyła pakiety SYN i kiedy zostało zestawione połączenie TCP.

Pomimo tego że wprowadziliśmy wiele mechanizmów blokujących ataki DDoS to można go przeprowadzić nadal za pomocą wyszukanych metod.

Ważnym jest zauważenie że wydajność reguł zawsze jest lepsza jeżeli jest znana sygnatura lub wzorzec który ma zostać zablokowany tako jak długość pakietu (-m długość),TOS czyli Type of Service (-m tos), czas życia (-m ttl) wartości łańcuchów znaków lub wartości hexadecymalne (-m text -m u32 dla bardziej zaawansowanych użytkowników)

Jednak w kilku rzadkich przypadkach nie jest możliwe lub trudne do osiągnięcia zablokowanie takiego ataku dlatego też należy skorzystać z  SYNPROXY.

Poniżej zbiór reguł SYNPROXY który ograniczy atak SYN flood:

iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack 
iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

Powyższe reguły odnoszą się do wszystkich portów. Jeżeli chcesz używać SYNPROXY tylko na wybranych portach które są aktywne co jest rekomendowane nie powinieneś blokować wszystkich portów, tylko wybrane używając tablicy MANGLE i łańcuch PREROUTINGU. Możwsz w prosty sposób dodać port który cię interesje np –dport 80 dla każdej regułki która używa SYNPROXY.

Aby zweryfikować że SYNPROXY działa, możesz sprawdzić to poleceniem

watch -n1 cat /proc/net/stat/synproxy

Jeżeli wartość zmienia się jeżeli zestawisz nowe połączenie TCP na porcie który wspazałeś oznacza to że SYNPROXY działa.

Kompletny zestaw regół przeciw atakowu DDoS

Jeżeli nie chcesz kopiować i wklejać poszczególnych reguł w tym artykule możesz to wykonać zbiorczo kopiując skrypt poniżej:

### 1: Drop invalid packets ### 
/sbin/iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP  

### 2: Drop TCP packets that are new and are not SYN ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP 
 
### 3: Drop SYN packets with suspicious MSS value ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP  

### 4: Block packets with bogus TCP flags ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP  

### 5: Block spoofed packets ### 
/sbin/iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP  

### 6: Drop ICMP (you usually don't need this protocol) ### 
/sbin/iptables -t mangle -A PREROUTING -p icmp -j DROP  

### 7: Drop fragments in all chains ### 
/sbin/iptables -t mangle -A PREROUTING -f -j DROP  

### 8: Limit connections per source IP ### 
/sbin/iptables -A INPUT -p tcp -m connlimit --connlimit-above 111 -j REJECT --reject-with tcp-reset  

### 9: Limit RST packets ### 
/sbin/iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP  

### 10: Limit new TCP connections per second per source IP ### 
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP  

### 11: Use SYNPROXY on all ports (disables connection limiting rule) ### 
# Hidden - unlock content above in "Mitigating SYN Floods With SYNPROXY" section

Dodatkowe reguły iptables

Jeżeli chcesz dodatkowo wzmocnić swój VPS / Serwer użyj dodatkowo tych reguł:

### SSH brute-force protection ### 
/sbin/iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set 
/sbin/iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP  

### Protection against port scanning ### 
/sbin/iptables -N port-scanning 
/sbin/iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN 
/sbin/iptables -A port-scanning -j DROPP

 

Piśmiennictwo:

https://netfilter.org/documentation/HOWTO/pl/netfilter-extensions-HOWTO-4.html

http://www.cs.put.poznan.pl/anstroinski/courses/sk/sk1-lab7-iptables.pdf

https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4758.html

https://javapipe.com/ddos/blog/iptables-ddos-protection/

https://n0where.net/how-does-it-work-iptables

Jak wyszukiwać efektywnie w Google? #15 tricków i porad

Sztuczki tricki i efektywne narzędzia

Jak wynika z wyliczeń Forbsa co 7 osoba korzysta z wyszukiwarki Google, co daje ponad miliard użytkowników, co daje miliony jak nie miliardy wyszukiwań haseł codziennie. Uczniowie, studenci, biznesmeni, pracownicy biurowi wyszukują hasła w celach edukacyjnych jak i zawodowych. Dlatego też używając wyszukiwarki Google powinno odbywać się w sposób zwinny. Szczególnie jeżeli cenimy sobie czas i efektywność pracy.

W związku z tym poniżej przedstawię kilka sztuczek które skatalizują proces wyszukiwania.

Zanim jednak rozpoczniemy wyszukiwanie należy zastanowić się z której z zakładek najlepiej skorzystać a mamy do wyboru wyszukiwanie Sieci, obrazów Wiadomości. Pamiętajmy że jeżeli wiemy jakiej informacji wyszukujemy możemy też zawęzić okres wyszukiwania.

1. Używajmy cudzysłowia

Kiedy wyszukujemy specyficznej frazy i wiemy że wyrazy występują w określonej kolejności jak pamiętamy część tekstu  możemy w wyszukiwarce zamknąć ją w cudzysłów dzięki czemu zakres wyszukiwania zmniejszy do wybranej frazy

2. Używaj @ lub # do wyszukiwania w mediach społecznościowych

Jeśli chcesz zawęzić wyniki wyszukiwania przede wszystkim do mediów społecznościowych, zastosuj przed imieniem nazwiskiem lub pseudonimem znak @, np. @szymonwojtowicz. Umożliwia to szybkie wyszukiwanie w różnych portalach jak twitter, istagram, github a w przypadku # facebook

3. Wykluczaj słowa

Jeżeli masz problem z wyszukaniem informacji ponieważ wyszukują się one nie na temat lub w innym niepożądanym kontekście / znaczeniu możesz skorzystać ze znaku – dzięki temu możesz wykluczyć część wyszukiwań

piramida -budowla

nie będzie wyszukiwał stron gdzie jest zawarte słowo budowa, a więc wyszuka piramid finansowych.

fiat z automatyczną skrzynią biegów -500

wyklucza fiata 500

4. Wyszukiwanie na konkretnej stronie

aby wyszukiwać tekst na kontkretnej stronie można użyć dwukropka np:

skrzynia biegów site:autokult.pl

5. Odnajdywanie podlinkowanych stron

Niekiedy wiemy że strona podlinkowywała do konkretnego źródła które znamy ale nie znamy jaka to była strona. Niekiedy wypuścimy artykuł i jesteśmy ciekawi czy ktoś go cytował dzięki temu możemy odnaleźć podlinkowane strony

link:artmetic.pl

6. Używaj gwiazdek jeżeli nie znasz części tekstu

Jeżeli nie znasz części tekstu a pojedynczy układ słów które następowały po sobie możesz użyć w cudzysłowach gwiazdek w odpowiednich miejscach. Możesz gwiazdki uznawać jako uzupełnienie braków

„do you wanna fuck *Yes I * With you”

7. Odnajdywanie podobnych do siebie stron

Jeżeli chcemy znaleźć podobne narzędzie, producenta lub stronę świadczącą podobne usługi można wykorzystać słowo klucz „related:”

related:artmetic.pl

related:stronabanku.pl

8. Użyj googla jako kalkulatora lub tłumacza, pogodynki

Aby szybko przetłumaczyć nieznane słowo wpisz w google tłumacz:

tłumacz hola bonita 

Google spróbuje wykryć język i przetłumaczyć na język domyślny.

Możemy pokusić się też o wykonywanie działań matematycznyc

58 * 2 + 5

aby sprawdzić pogodę pod danym kodem pocztowym:

pogoda 48-340

Jeżeli interesuje nas czas w konkretnym miejscu

time belgrad

konwersja miar w tym przypadku odległość w milach na kilometry

15 mile na kilometry

i konwersja walut

20 PLN to bolivar

przy obecnej hiperinflacji to dużo kasy.

9. Wyszukiwanie kilku fraz jednocześnie

Możemy pokusić się o wyniki wyszukiwania w różny sposób przy użyciu operatora OR  oznaczającego lub np.

sposoby na kaca OR jak pozbyć się kaca

10. Wyszukiwanie według zakresu
Jeżeli chcemy wyszukać według określonego zakresu liczbowego możemy wykorzystać .. które można przetłumaczyć jako do albo pomiędzy:

marszałek sejmu 2002..2004

internet ..80MB

11. Wyszukiwanie pizzy, nagła awaria? Spokojnie jest Google

Jesteś na wakacjach lub w nieznanym Ci mieście i dopadł Cię głód cóż począć wystarczy fraza „w pobliżu„.

pizzeria w pobliżu

mechanik w pobliżu

laweta w pobliżu

 

a tak na marginesie dopadła mnie kiedyś biegunka w obcym mieście..

apteka w pobliżu

12. Uwagi praktyczne

  • staraj się używać jak najwięcej słów jeżeli chcesz zawęzić wyszukiwanie
  • pomyśl gdybyś był autorem jakich słów być użył na stronie i wykorzystaj je
  • używaj tylko istotnych słów nie lej wody to nie konkurs poezji

13. Wyszukiwanie wzorów dokumentów

Dość często szukamy edytowalnych wzorów dokumentów i wyskakują nam pdf? Cóż począć jest sposób

pismo do spółdzielni” filetype:doc

ale można też na odwórt

„pismo do spółdzielni” filetype:pdf

14.  Synonimy i podobne słowa w wynikach wyszukiwania

Jeżeli chcesz wyszukać rozszerzyć frazę o wyszukiwanie innych przymiotników możesz użyć znaku ~ :„lektor” ~profesjonalny;

15.  Znam tytuł więc użyję intitle

Wyszukuje te strony, które w tytule mają podane słowa.
 intitle:klucz pgp

lub wszystkie słowa w tytule

allintitle:szyfrować klucz pgp

Zamek Olsztyn koło Częstochowy.

Żarki Letnisko / Żarki / Myszków

Redirect location/folder on nginx.

To redirect folder on nginx you cane add to the configuration file this lines:

nano /etc/nginx/sites-available/default
location ~ /<strong>folder-name</strong>/(.*)$ {
rewrite ^/<strong>folder-name</strong>/(.*)$ /new-name/$1 permanent;
}

to redirect location on nginx:

rewrite ^/folder-name/myWell-known-article /folder-name/my-new-name-article permanent;

Flags use to redirect
As earlier mentioned, there are few flags used with rewrite directive and I’d like to go through them quickly.

redirect
We call this „Temporary Redirect” or error „302 Redirect” which returns temporary redirect to new location. Usually it used for website maintenance mode.

permanent
We call this „Permanent Redirect” which returns 301 status code. Should be used carefully when we use SEO, because boot can index maintenance page.

last
It stops processing the current location folder (should be „ngx_http_rewrite_module” switch on).
For example „/en/*” skips folder /en/ and change to „/*”.

break
Break stops processing read current url (should be „ngx_http_rewrite_module” switch on). Break will be continue processing within the same location block and won’t consider the rest of location blocks.

Jewish extermination in Kozova

During the II World War in Polish Kozova, nowadays Ukraine, the Jews were exterminated by Germans. Before this fact there had existed a Jewish ghetto. To save their lives the Jews from Kozowa were forced to pay twice in money or gold. After this fact, the Germans demanded a payment again, but the Jews had declared they were not in a possesion of any precious things. So about 7 German soldiers had surrounded the whole community of Jews (in Kozowa there had been about 2000 Jews in a ghetto), and escorted them to the place where they were shoot in the back of the head. My grandfather Piotr Wójtowicz saw this. In this situation the Jews could have fought with Germans, but they didn’t. They had a superiority in numbers, but they still did nothing. A couple of days after this accident, the bodies had started to swell and stink. Therefore Germans got calcium and given it to the bodies to eliminate the smell.

Before the II World War my grandfather had lived in Kozova. In his life he had mentioned the fact that many of the Jews were different, some of them were rich, but many more were poor and breathed out the smell of onion. Many Jews had been eating potato pancakes with onion and starving at that time.

When my grandfather had been forced into the labor for Germans, before he had escaped with brothers, my grandmother hid his Jewish colleague in their house. But any foreigner reading this text, should know that if my Grandmother had been catched by the Germans, then all of my family would have been killed. Polish nation couldn’t have helped the Jews like other countries, because they would have been punished to death. Remember also that another danger came from the Ukrainians, and Russians.

My Grandfather was a soldier during the II World War and remembered the fact that Kozova could have been massacred by the Ukrainians at any time. He had catched the Ukrainian thugs, but his Commander had released them by the back door. If the Polish armored train wouldn’t have come on time, then another massacre could have been caused by the Ukrainians.

Grandfather had also mentioned that the Jews were not the lowest rank soldiers, because they hadn’t been allowed to use weapon under foreign commandment, so as a result they have had higher ranks or had never joined the army.

tbc..

Weekend w Sławkowie

Ciekawe miejsca w Sławkowie

Wypad Niedzielny do Sławkowa. Ciekawa knajpa lub restauracja chodź średnio wyglądająca „Finezja” w małym Rynku obok Rynku w Sławkowie. Jednak rosół był dobry. Ceny całkiem przyzwoite na każdą kieszeń. Sławków opisałbym małą Wenecją wąskie uliczki małe domki, klimatyczne przejścia i świeże powietrze. Niestety w Niedziele większość knajp zamknięta. Jednak miejscowość polecam 🙂 ma swój urok, szczególnie ruiny zamku, oraz mury z kamienia. Ciekawostką jest że Sławków należy do powiatu będzińskiego w ogóle nie granicząc z Będzinem. Trochę słaby dojazd jeżeli chodzi o KZK GOP, ale prywatny przewoźnik KIK, kursuje pomiędzy Katowicami przez Sosnowiec do Olkusza w miarę często.

 Gdzie warto zajrzeć

Sławków również warto zwiedzić na rowerze. Co ciekawe w miejscowości zauważyliśmy trzy trakcje kolejowe i jak się okazało w centrum logistyczne. Mówię o tym dlatego, bo koło trakcji jest fajny urywek lasu który dopompuje nas przefiltrowanym leśnym rześkim powietrzem. Na mapie można było zobaczyć takie miejsca jak „Cmentarz choleryczny” jednak jak się okazało w tym miejscu była wielka kupa krzaków i nic po za tym. W dalszej części naszej trasy spacerowej (chodź dość długiej) natknęliśmy się na takie dzielnice jak Szałasowizna i Ciołkowizna.  Co ciekawe znaczna część terenu jest zalesiona, a koło drogi rósł Barszcz Sosnowskiego, wyglądało to jakby był zasiany specjalne ale na szczęście najprawdopodobniej był spryskany jakąś chemią bo był uschnięty.

Miejsca które dają do myślenia

Z miejsc które dają do myślenia był mini komisariat Policji oraz wypasiony wóz „Eko patrolu” miejskiej, który okazał się wozem patrolowym i tu z małej litery bez zbędnej atencji napiszę straży miejskiej.

Ciekawy jest też sposób budownictwa opartego na drewnie, małych chatek na małych działkach krytych papą i otoczonych grubym kamiennym murem. Jednak mimo wszystko miejsca takie w wąskich uliczkach dają klimat i urok.

Do atrakcji turystycznych Sławkowa można zaliczyć blisko rynku łaciatą krasulę, napotkane gęsi i kaczki. Może wydaje się to zgryźliwe, ale dla mnie jest piękne.

http://blog.artmetic.pl/turniej-rycerski-w-siewierzu-2017/

„9 Kwietnia” – czyli jak walczyli duńczycy

W filmie „9 Kwietnia” jest ukazane jak Niemcy wkroczyli do Dani. Film jest oparty na faktach autentycznych i ukazuje zamiast waleczności wycofywanie się garstki duńczykich żołnierzy. Żołnierze w filmie uzbrojeni są w karabiny, którymi strzelają do pojazdów opancerzonych i czołgu (nie wiem dlaczego nie strzelali w opony, zamiast próć bezsensownie w blachę). Interesujący jest też rodzaj armii, kompania rowerowa, która trenuje np. pompowanie i łatanie dziur w oponach na czas. Dodam że do żołnierzy dowódca zwraca się po numerach podobnie jak w obozach koncentracyjnych.

Film ukazuję żenującą waleczność narodu Duńskiego który się szybko poddał byle nie stracić żołnierzy. Film można puścić w nudny jesienny wieczór.. Oceniłbym go na 5/10 i tylko dlatego tak wysoko bo przynajmniej szczerze odnosi się do historii. Ciekawym zestawienie posłużono się przy końcu gdzie starzy dziadkowie (główni bohaterowie) opowiadają jak odnoszą się do tego i pada stwierdzenie, że trzeba myśleć o tym co jest teraz, co uważam za kwintesencje tego co mają do powiedzenia Ci którzy trzymali się spódnicy podczas II wojny światowej.

Wniosek z tego taki że trzeba szanować historie, tym bardziej że Polacy ją mają i mają z czego być dumni.