Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
#!/bin/bash iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -N spoofing iptables -A spoofing -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables spoofing: " iptables -A spoofing -s 192.168.0.0/16 -j DROP iptables -A spoofing -s 172.16.0.0/12 -j DROP iptables -A spoofing -s 10.0.0.0/8 -j DROP iptables -N syn_flood iptables -A syn_flood -m limit --limit 1/s --limit-burst 5 -j ACCEPT iptables -A syn_flood -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables syn_flood: " iptables -A syn_flood -p TCP --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset iptables -A syn_flood -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables syn_flood_drop: " iptables -A syn_flood -j DROP iptables -N ssh-whitelist iptables -A ssh-whitelist -j RETURN iptables -N ssh-blacklist iptables -A ssh-blacklist -m recent --name blacklist --set iptables -A ssh-blacklist -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables ssh-blacklist: " iptables -A ssh-blacklist -j DROP iptables -N ssh iptables -A ssh -j ssh-whitelist iptables -A ssh -m recent --update --name blacklist --seconds 43200 --hitcount 1 -j DROP iptables -A ssh -m recent --set --name short iptables -A ssh -m recent --set --name long iptables -A ssh -m recent --update --name short --seconds 60 --hitcount 5 -j ssh-blacklist iptables -A ssh -m recent --update --name long --seconds 1800 --hitcount 20 -j ssh-blacklist iptables -A ssh -j ACCEPT iptables -N tcp_p iptables -A tcp_p -p TCP --dport 465 -j ACCEPT iptables -A tcp_p -p TCP --dport 993 -j ACCEPT iptables -A tcp_p -p TCP --dport 995 -j ACCEPT iptables -A tcp_p -p TCP --dport 113 -j REJECT iptables -A tcp_p -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A tcp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables tcp_p: " iptables -A tcp_p -p TCP -j DROP iptables -N udp_p iptables -A udp_p -p UDP -d 224.0.0.251 --dport 5353 -j ACCEPT #multicast DNS iptables -A udp_p -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A udp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables udp_p: " iptables -A udp_p -p UDP -j DROP iptables -N icmp_p iptables -A icmp_p -p ICMP --icmp-type echo-request -m limit --limit 2/s --limit-burst 5 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 0 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 3 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 11 -j ACCEPT iptables -A icmp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables icmp_p: " iptables -A icmp_p -p ICMP -j DROP iptables -A INPUT -p ALL -i lo -j ACCEPT iptables -A tcp_p -i eth0 -p TCP --syn -j syn_flood iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ssh iptables -A INPUT -i eth0 -j spoofing iptables -A INPUT -p TCP -j tcp_p iptables -A INPUT -p UDP -j udp_p iptables -A INPUT -p ICMP -j icmp_p
iptables -A tcp_p -i eth0 -p TCP --syn -j syn_flood ... iptables -A syn_flood -p TCP --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset
Pokud mne paměť neklame, součástí podmínky --syn
je i to, že ACK není nastaven, takže to druhé pravidlo by nemělo mít žádný smysl.
Podobně je zbytečné testovat znovu protokol v chainech tcp_p
, udp_p
a icmp_p
, když do nich stejně posíláte jen pakety s příslušným protokolem.
Také mi nedává smysl to (jediné) pravidlo v ssh-whitelist
: cokoli přidáte za něj, nebude mít žádný efekt; a pokud budete vkládat před něj, tak nebude mít pro změnu žádný efekt tohle pravidlo.
Imho kazdy rozumny ISP resi spoofing rezervovanych rozsahu za tebe a stejne zadne site neforwardujes.
Naopak by bylo dobré u spojení zvenku kontrolovat cílovou adresu, jestli je to ta správná, zejména pokud tam jsou nějací démoni, kteří jsou nakonfigurovaní, aby "poslouchali jen na vnitřním rozhraní / lokální smyčce".
UDP multicast ma skutecne RELATED,ESTABLISHED stav?
Proč? To jsou dvě různá pravidla.
Pokud mne paměť neklame, součástí podmínky --syn je i to, že ACK není nastaven, takže to druhé pravidlo by nemělo mít žádný smysl.
Také mi nedává smysl to (jediné) pravidlo v ssh-whitelist: cokoli přidáte za něj, nebude mít žádný efekt; a pokud budete vkládat před něj, tak nebude mít pro změnu žádný efekt tohle pravidlo.
Udelej ten 'limit burst' globalne na cele rozhrani, usetris 10 pravidel a cele to divadlo kolem filtrovani.
Osobne davam 'connecting tracking' na zacatek..
#!/bin/bash iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -N spoofing iptables -A spoofing -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables spoofing: " iptables -A spoofing -s 192.168.0.0/16 -j DROP iptables -A spoofing -s 172.16.0.0/12 -j DROP iptables -A spoofing -s 10.0.0.0/8 -j DROP iptables -N syn_flood iptables -A syn_flood -m limit --limit 1/s --limit-burst 5 -j ACCEPT iptables -A syn_flood -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables syn_flood: " iptables -A syn_flood -j DROP iptables -N ssh-whitelist iptables -A ssh-whitelist -s 1.2.3.4 -j ACCEPT #IP adresu lze podvrhnout iptables -A ssh-whitelist -j RETURN iptables -N ssh-blacklist iptables -A ssh-blacklist -m recent --name blacklist --set iptables -A ssh-blacklist -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables ssh-blacklist: " iptables -A ssh-blacklist -j DROP iptables -N ssh iptables -A ssh -j ssh-whitelist iptables -A ssh -m recent --update --name blacklist --seconds 43200 --hitcount 1 -j DROP iptables -A ssh -m recent --set --name short iptables -A ssh -m recent --set --name long iptables -A ssh -m recent --update --name short --seconds 60 --hitcount 5 -j ssh-blacklist iptables -A ssh -m recent --update --name long --seconds 1800 --hitcount 20 -j ssh-blacklist iptables -A ssh -j ACCEPT iptables -N tcp_p iptables -A tcp_p --dport 465 -j ACCEPT iptables -A tcp_p --dport 993 -j ACCEPT iptables -A tcp_p --dport 995 -j ACCEPT iptables -A tcp_p --dport 113 -j REJECT iptables -A tcp_p -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A tcp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables tcp_p: " iptables -A tcp_p -j DROP iptables -N udp_p iptables -A udp_p -d 224.0.0.251 --dport 5353 -j ACCEPT #multicast DNS iptables -A udp_p -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A udp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables udp_p: " iptables -A udp_p -j DROP iptables -N icmp_p iptables -A icmp_p --icmp-type echo-request -m limit --limit 2/s --limit-burst 5 -j ACCEPT iptables -A icmp_p --icmp-type 0 -j ACCEPT iptables -A icmp_p --icmp-type 3 -j ACCEPT iptables -A icmp_p --icmp-type 11 -j ACCEPT iptables -A icmp_p -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables icmp_p: " iptables -A icmp_p -j DROP iptables -A INPUT -p ALL -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ssh iptables -A INPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset iptables -A INPUT -i eth0 -p TCP --syn -j syn_flood iptables -A INPUT -i eth0 -j spoofing iptables -A INPUT -p TCP -j tcp_p iptables -A INPUT -p UDP -j udp_p iptables -A INPUT -p ICMP -j icmp_p
iptables -A tcp_p -m state --state ESTABLISHED,RELATED -j ACCEPTTzn. protoze duveruji sestavenym spojenim, dam pravidlo na zacatek, abych urychlil prochazeni paketu firewallem. UDP pakety "zadne" stavy nemaji, tzn. nasledujici pravidlo neni uplne korektni:
iptables -A udp_p -m state --state ESTABLISHED,RELATED -j ACCEPTStejne mi cela ta sarada kolem SSH prijde proste zbytecna, ale asi to proste vidim jinak a jeste jedne veci nerozumim, rikas postovni server, ale nevidim 25, jak to?
iptables -A INPUT --p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT --p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A syn_flood -m limit --limit 1/s --limit-burst 5 -j tcp_p
" kde jsem měl ACCEPT
.#!/bin/bash iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p ALL -i lo -j ACCEPT iptables -N ssh-whitelist iptables -A ssh-whitelist -s 1.2.3.4 -j ACCEPT iptables -A ssh-whitelist -j RETURN iptables -N ssh-blacklist iptables -A ssh-blacklist -m recent --name blacklist --set iptables -A ssh-blacklist -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables ssh-black: " iptables -A ssh-blacklist -j DROP iptables -N ssh iptables -A ssh -j ssh-whitelist iptables -A ssh -m recent --update --name blacklist --seconds 43200 --hitcount 1 -j DROP iptables -A ssh -m recent --set --name short iptables -A ssh -m recent --set --name long iptables -A ssh -m recent --update --name short --seconds 60 --hitcount 5 -j ssh-blacklist iptables -A ssh -m recent --update --name long --seconds 3600 --hitcount 20 -j ssh-blacklist iptables -A ssh -j ACCEPT iptables -N spoofing iptables -A spoofing -s 192.168.0.0/16 -j DROP iptables -A spoofing -s 172.16.0.0/12 -j DROP iptables -A spoofing -s 10.0.0.0/8 -j DROP iptables -N tcp_p iptables -A tcp_p -p TCP --dport 25 -j ACCEPT iptables -A tcp_p -p TCP --dport 465 -j ACCEPT iptables -A tcp_p -p TCP --dport 993 -j ACCEPT iptables -A tcp_p -p TCP --dport 995 -j ACCEPT iptables -A tcp_p -p TCP --dport 113 -j REJECT iptables -A tcp_p -p TCP --sport 443 -j ACCEPT iptables -A tcp_p -j RETURN iptables -N syn_flood iptables -A syn_flood -m limit --limit 1/s --limit-burst 5 -j tcp_p iptables -A syn_flood -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables syn_flood: " iptables -A syn_flood -j DROP iptables -N udp_p iptables -A udp_p -p UDP -d 224.0.0.251 --dport 5353 -j ACCEPT #multicast DNS iptables -A udp_p -j RETURN iptables -N icmp_p iptables -A icmp_p -p ICMP --icmp-type echo-request -m limit --limit 2/s --limit-burst 5 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 0 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 3 -j ACCEPT iptables -A icmp_p -p ICMP --icmp-type 11 -j ACCEPT iptables -A icmp_p -j RETURN iptables -A INPUT -p TCP --dport 22 -m state --state NEW -j ssh iptables -A tcp_p -p TCP --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset #DRDoS" iptables -A tcp_p -i eth0 -p TCP --syn -j syn_flood #vyzaduji venkovni rozhrani iptables -A INPUT -i eth0 -j spoofing #venkovni rozhrani iptables -A INPUT -p TCP -j tcp_p iptables -A INPUT -p UDP -j udp_p iptables -A INPUT -p ICMP -j icmp_p iptables -A INPUT -m limit --limit 1/minute --limit-burst 10 -j LOG --log-prefix "iptables drop: "
Pro pripojeni na SSH z nepredvidatelnych mist mam VPNKolik si navlikas kondomu pri soulozi? Navic SSH potrebuje jednoduche TCP spojeni, to ti pusti ven i v blbem pakistanskem hotelu narozdil od VPN. Uz od prehistorickych dob v minulem tisicleti provozuji na mnoha serverech SSH na vysokych portech (hlavne kvuli tomu, aby mi to nelogovalo automaty) a nemam sebemensi problem.
Je opravdu tak přínosné ušetřit několik pravidel?Velice, samozrejme zalezi na konfiguraci a zatizeni serveru v provozu, ale netfilter je obecne v performance killer. Osobne znam pripady, kdy unload celeho netfilteru dovoli serveru obsluhovat o 50k spojeni za vterinu vice. Opravdu kazde pravidlo skrze ktere paket projde je znat, takze opravdu se vyplati ESTABLISED spojeni povolit hned na zacatku. A pak podle poctu paketu, ktere skrze ne projdou, takze obecne nasledovane asi nestavovymi sluzbami, jako je DNS, pak sluzby s velkym poctem kratkych spojeni (http,smtp) a nakonec veci jako je SSH kde na vterine nesejde. Dal z pohledu bezpecnosti bych Vam doporucil zamyslet se nad tabulkou OUTPUT, hodilo by se zakazat navazovani spojeni jinam nez na povolene/zname sluzby a servery. Zanesnadni to pripadnemu utocnikovy, ktery ovladne nejakou sluzbu, aby zneuzil server ke svym nekalym zamerum (dokud nema roota).
Tiskni
Sdílej: