OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.
Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.
Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.
Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).
Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou
… více »Patchouli je open source implementace EMR grafického tabletu (polohovací zařízení). Projekt je hostován na GitLabu.
Řešení dotazu:
#!/bin/sh echo "0" > /proc/sys/net/ipv4/ip_forward MOJE_IP=192.168.3.67 /sbin/iptables -X /sbin/iptables -F INPUT /sbin/iptables -F OUTPUT /sbin/iptables -F FORWARD /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -P FORWARD DROP # local /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -i lo -j ACCEPT # to co jsme navázali my /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #nase odchozi pakety povolime /sbin/iptables -A OUTPUT -s $MOJE_IP -j ACCEPT # WWW povolime /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # povolime vas port tcp 3306 /sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # odmitne port 113 auth /sbin/iptables -A INPUT -i eth0 -p TCP --dport 113 -j REJECT
#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
# rp_filter na zamezeni IP spoofovani
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > ${interface}
done
# Modul pro FTP prenosy
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
# Cesta k programu iptables
IPTABLES="/sbin/iptables"
# IP a broadcast adresa a rozhrani vnitrni site
LAN1_IP="10.0.0.2"
LAN1_BCAST="10.0.0.255/32"
LAN1_IFACE="eth0"
INET_IP="194.228.223.93"
INET_IFACE="eth1"
# Firevall
/sbin/iptables -X
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -t nat -X
/sbin/iptables -t nat -F POSTROUTING
/sbin/iptables -t nat -F PREROUTING
/sbin/iptables -t nat -F OUTPUT
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t mangle -X
/sbin/iptables -t mangle -F OUTPUT
/sbin/iptables -t mangle -F PREROUTING
# MASKARADA
/sbin/iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP
# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
#
# Pridavne retezce pro snazsi kontrolu na rezervovane adresy
#
# Zahazovat a logovat (max. 5 x 3 pakety za hod)
$IPTABLES -N logdrop
$IPTABLES -F logdrop
$IPTABLES -A logdrop -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix "Log droop: " --log-level 6
$IPTABLES -A logdrop -j DROP
# V tomto retezci se kontroluje, zda prichozi pakety nemaji nesmyslnou IP adresu
$IPTABLES -N IN_FW
$IPTABLES -F IN_FW
$IPTABLES -A IN_FW -i $LAN1_IFACE -s 192.168.0.0/16 -j logdrop # rezervovano podle RFC1918
$IPTABLES -A IN_FW -i $INET_IFACE -s 10.0.0.0/8 -j logdrop # ---- dtto ----
$IPTABLES -A IN_FW -s 172.16.0.0/12 -j logdrop # ---- dtto ----
$IPTABLES -A IN_FW -s 96.0.0.0/4 -j logdrop # rezervovano podle IANA
$IPTABLES -A IN_FW -s 127.0.0.0/8 -j logdrop
$IPTABLES -A IN_FW -i $INET_IFACE -s $INET_IP -j logdrop
# ... dalsi rezervovane adresy mozno doplnit podle
# http://www.iana.com/assignments/ipv4-address-space
# Blokování spamerů
$IPTABLES -A IN_FW -s 61.72.0.0/13 -j logdrop
$IPTABLES -A IN_FW -s 61.80.0.0/12 -j logdrop
$IPTABLES -A IN_FW -s 61.154.0.0/255.255.0.0 -j logdrop
$IPTABLES -A IN_FW -s 195.166.224.0/19 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.212/27 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.224/29 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.232 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.233 -j logdrop
$IPTABLES -A IN_FW -s 65.6.55.0/255.255.255.0 -j logdrop
$IPTABLES -A IN_FW -s 130.228.184.234 -j logdrop
$IPTABLES -A IN_FW -s 62.166.232.0/22 -j logdrop
# Retezec pro stanoveni limitu prichozich SYN konexi (ochrana pred SYN floods)
# propusti pouze 4 SYN segmenty/sec
$IPTABLES -N syn-flood
$IPTABLES -F syn-flood
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP
# FORWARD
# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
# Nechceme rezervovane adresy na rozhrani
$IPTABLES -A FORWARD -j IN_FW
$IPTABLES -A FORWARD -p tcp --syn -j syn-flood
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
# Routing pouze pro navazana spojeni (stavovy firewall)
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale tak, aby nedoslo k nezadoucim prodlevam.
$IPTABLES -A FORWARD -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server
#Zakázání něktrerých služeb které se nesmí routovat
$IPTABLES -A FORWARD -p tcp --dport 23:25 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 23:25 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 137:139 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 137:139 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 67:69 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 67:69 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 445 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 445 -j logdrop
# Routing ze sítě do internetu povolen
$IPTABLES -A FORWARD -i $LAN1_IFACE -o $INET_IFACE -j ACCEPT
# Ostatni pakety budou zahozeny, tak je budeme logovat (12 x 5 pkt/hod)
$IPTABLES -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "FORWARD drop: " --log-level 6
#
# Retezec INPUT
#
# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# local
$IPTABLES -A INPUT -i lo -j ACCEPT
# Nejprve se zbavime nezadoucich adres
$IPTABLES -A INPUT -j IN_FW
# Odfiltrovat pokusy o syn-flooding
$IPTABLES -A INPUT -p tcp --syn -j syn-flood
# Odfiltrovat pokusy o zahlceni icmp
$IPTABLES -A INPUT -p icmp -j syn-flood
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
# Pakety od navazanych spojeni jsou v poradku
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Stejne jako pakety z lokalni site, jsou-li urceny pro nas
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_IP -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_BCAST -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $INET_IP -j ACCEPT
# Pravidla pro povolene sluzby
# WWW
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
# DC
#/sbin/iptables -A INPUT -p tcp --dport 9176 -j ACCEPT
# DC
#/sbin/iptables -A INPUT -p udp --dport 9176 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p udp --dport 4662 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p tcp --dport 4663 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p udp --dport 4663 -j ACCEPT
#SMTP
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 25 -j ACCEPT
# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale tak, aby nedoslo k nezadoucim prodlevam.
$IPTABLES -A INPUT -p TCP --dport 113 -m limit --limit 12/h -j LOG --log-prefix "INPUT drop: " --log-level 6
$IPTABLES -A INPUT -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server
# Vsechno ostatni je zakazano - tedy logujeme, maxim. 12x5 pkt/hod
$IPTABLES -A INPUT -m limit --limit 12/h -j LOG --log-prefix "INPUT drop: " --log-level 6
#
# Retezec OUTPUT
#
# local
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnos
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
# Povolime odchozi pakety, ktere maji nase IP adresy
$IPTABLES -A OUTPUT -s $LAN1_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $INET_IP -j ACCEPT
# Ostatni pakety logujeme (nemely by byt zadne takove)
$IPTABLES -A OUTPUT -j LOG --log-prefix "OUTPUT drop: " --log-level 6
# LOGUJ OSTATNI
#/sbin/iptables -A OUTPUT -j LOG --log-prefix "OUTPUT drop posledni: " --log-level 6
#/sbin/iptables -A INPUT -j LOG --log-prefix "INPUT drop posledni: " --log-level 6
#/sbin/iptables -A FORWARD -j LOG --log-prefix "FORWARD drop posledni: " --log-level 6
$IPTABLES -A IN_FW -s 96.0.0.0/4 -j logdrop # rezervovano podle IANAPOZOR, tento obrovsky pool 96.0.0.0/4 uz nejakou dobu neni rezervovany (http://www.iana.com/assignments/ipv4-address-space) a nektere rozsahy jsou dokonce pouzity na uzemi CR.
# Generated by iptables-save v1.4.1.1 on Fri Jan 22 16:22:30 2010 *filter #vsechny chainy povolime :INPUT ACCEPT [552271:431396236] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [552271:431396236] #povolime port 22 -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT #povolime nase spojeni -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT #povolime ping -A INPUT -i eth0 -p icmp -j ACCEPT #-A INPUT -i eth0 -j LOG #odkomentovat, pokud chceme vsechno ostatni logovat #o ostatnim rekneme, ze je to nedostupne -A INPUT -i eth0 -j REJECT --reject-with icmp-port-unreachable COMMIT # Completed on Fri Jan 22 16:22:30 2010Oproti predchozimu je tu rozdil v tom, ze kdyz zadas iptables -F, tak se vsechno povoli. Coz se muzes ocenit pri vzdalenem pristupu, protoze je IMHO mensi sance, ze si odriznes vlastni spojeni.
#!/bin/sh
for tables in iptables ip6tables; do
$tables -P INPUT DROP
$tables -P FORWARD DROP
for tab in filter nat mangle; do
$tables -t $tab -F
$tables -t $tab -X
done
done
for tables in iptables ip6tables; do
$tables -A INPUT -j ACCEPT -i lo
# prostor pro povolování služeb
for port in 22 443; do
$tables -A INPUT -j ACCEPT -p tcp \
-m state --state NEW --dport $port
done
done
iptables -A INPUT -j ACCEPT -m state --state NEW \
-p icmp --icmp-type echo-request
for tables in iptables ip6tables; do
$tables -A INPUT -m state --state NEW -j REJECT -p tcp --reject-with tcp-reset
$tables -A INPUT -m state --state NEW -j REJECT
$tables -P INPUT ACCEPT
$tables -P FORWARD ACCEPT
done
Když je paket vadnej, proč bys na něj měl vůbec odpovídat? Čili proč generovat další provoz, vyšší vrstvy se už mají o něco postarat, pokud jim to něco bude chybět, od toho je tcp spolehlivé.
Když je paket vadnej, proč bys na něj měl vůbec odpovídat? Čili proč generovat další provoz, vyšší vrstvy se už mají o něco postarat, pokud jim to něco bude chybět, od toho je tcp spolehlivé.Potíž je v tom, co si o invalid myslí netfilter a tcp. Momentálně je v netfilteru INVALID považován každý packet, který nějakým způsobem "nesedí". Například může patřit platnému spojení ale mít špatný checksum. V tom případě normální TCP packet zahodí a počká si na nové odvysílání. Pokud byste provedli nad tímto packetem REJECT, tak zabijete platné spojení. Na druhou stranu jsou INVALID i packety, které nepatří žádnému spojení. A na takové packety (resp. jejich podstatnou část) odpovídá TCP stack REJECTem, tedy posláním RST. Pokud budete takové pakety zahazovat, může to vyústit v zajímavé důsledky. Například si někdo může nastavit IP adresu shodnou s Vámi a celkem beztrestně s ní navazovat TCP spojení. Podtrženo sečteno, normální TCP stack se chová v různých situacích různě. Netfilter neumí tyto situace dost dobře rozlišit... pokud se přikloníte k jedné akci, budete se odchylovat od standardního chování. K čemuž bych ještě připojil malý dovětek o DROP obecně (tj. na nové spojení). Je to také jedno z porušení standardního chování. Dělat mrtvého brouka nepřináší žádný bezpečnostní benefit. Je lepší se chovat standardně, tj. tak, jako by dané služby byly zavřené, například pomocí takové sady pravidel, jak jsem uvedl výše.
Jo taky pravda, musel jsem jednou zkoumat chování vpn klienta a iptables mi dané pakety klasifikovaly jako vadné. Tak jsem přidal vpn bránu jako "-d X accept" a "-s X accept" a bylo po problémech.
Takže jestli tomu dobře rozumím, tak s tím mým nastavením se mi může stát to, že někdy přijdu tcp spojení, který by jinak (pokud bych INVALID paket předal dál) vydrželo? Nemůže takový paket být zpracován už jako RELATED,ESTABLISHED?
A ještě jeden dotaz - myslel jsem si že POLICY (tj. -P) se nastavuje jako globální záležitost - to na co se nenajde pravidlo, na to se použije POLICY. V tomhle smyslu, ale moc nerozumím tomu skriptu - přijde mi to jako:
-P INPUT DROP
nějaká pravidla
-P INPUT ACCEPT
To první -P INPUT DROP mi přijde zbytečné, pač se to na konci přehodí. Nebo je to tak, že -P je součást toho řetězce? Kde se pletu?
Dík.
Takže jestli tomu dobře rozumím, tak s tím mým nastavením se mi může stát to, že někdy přijdu tcp spojení, který by jinak (pokud bych INVALID paket předal dál) vydrželo?Ano, zrovna tuhle anomálii jsem už viděl i "naživo". Zkuste na pomalé lince začít něco stahovat a pravděpodobně na to narazíte taky.
Nemůže takový paket být zpracován už jako RELATED,ESTABLISHED?Neznám vnitřnosti netfilteru tak detailně, abych na to odpověděl; zkuste se zeptat v mail listu netfilteru. Kdysi tam nějaká diskuse kolem toho byla a výsledkem byl modul "unclean", jehož osud je ale nejistý, existuje-li ještě.
-P INPUT DROP nějaká pravidla -P INPUT ACCEPTTo je jen pojistka proti tomu, když ten skript někdo pustí na běžícím stroji. Na začátku se vyprazdňuje celá konfigurace (-F a -X), takže pokud by tam zůstal ACCEPT, tak máte otevřené dveře do doby, než skript nastaví další pravidla. Ta doba nemusí být nutně zanedbadelná, zvlášť u delších skriptů. BTW další poučka zní že tento skript se spustí ještě předtím, než nahodíte jakýkoliv interface (snad kromě loopbacku), jinak se vystavujete stejnému problému, neboť konfigurace firewallu po startu počítače je ACCEPT.
for type in neighbour-solicitation echo-request; do
ip6tables -A INPUT -j ACCEPT -m state --state NEW \
-p ipv6-icmp --icmpv6-type $type
done
kde to podstatné je ten "neighbour-solicitation".
(Patří to někam kolem toho jak se povoluje ten ipv4 ping.)
A pak dále má smysl pro každou povolenou službu použít for cyklus s iptables i ip6tables, tak jak je naznačeno.
Tiskni
Sdílej: