Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
iptables -A INPUT -p tcp -m iprange --dst-range 192.168.2.1-192.168.2.10 -j ACCEPTTakhle to vypadá správně a neškodně, ale jakmile je v povoleném rozsahu (
192.168.2.1-192.168.2.10) náhodou i stanice na které to právě testuji (např. 192.168.2.5) tak firewall jako by neexistoval a všechny porty počítače se z vnějšku tváří jako otevřené.
Jakmile má stanice náhodou IP mimo rozsah (např. 192.168.2.11) tak vše funguje jak má, z vnějšku je dostupné jen omezené "portové okénko" na případný GnomeMeeting nebo bittorent.
Jak jste asi poznali, síťařina není můj obor, ale zvolená politika sítě i síť sama se mi zdá natolik jednoduchá, že bych to snad i já mohl rozchodit, ne?
P.S.
Pro zájemce kompletní skript:
#!/bin/sh # Flush all chains iptables --flush # vychozi politika, vsechno prichozi zahazuj iptables -P INPUT DROP # Allow unlimited traffic on the loopback interface iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Allow DNS resolution iptables -A OUTPUT -p udp --destination-port 53 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp --destination-port 53 -m state --state NEW -j ACCEPT # vsechno z vnitrni (domaci) site povol, tcp, udp, .. iptables -A INPUT -p tcp -m iprange --dst-range 192.168.2.1-192.168.2.10 -j ACCEPT # volne "portove" okento pro okolni svet iptables -A INPUT -p tcp --dport 7001:7010 -j ACCEPT
To je ale jasné, protože tím pravidlem povolujete veškerý příchozí provoz na IP adresy v rozsahu. Pokud je tedy "vaše" adresa v rozsahu, povolil jste si na svůj počítač jakýkoliv příchozí provoz. Vy zřejmě chcete povolit veškerý příchozí provoz z daného rozsahu adres. Místo --dst-range tak flákněte --src-range a bude.
Místo --dst-range tak flákněte --src-range a bude...no tohle mi taky vrtalo hlavou. Logické se zdá právě to co říkáte vy. To je tak když opisujete přesně co neznáte. Problém je že většina návodů popisuje konfiguraci dedikovaného firewallu, chránícího síť za sebou, kdežto já se snažím nastavit firewall přímo na koncové stanici. Takže některé "směrovky" asi budou obráceně.
-p all ?
-p sa nepovoluju porty ale protokoly, icmp by sa hodilo a myslim si ze je v poriadku aj -p all.
Pripadne je mozne obmedzit icmp len pre male packety napr. cez -m length --length 0:1000
icmp, tohle by mohlo být možná ještě účinnější
# Propoustime pouze ICMP ping iptables -A INPUT -i $INET_IFACE -p icmp --icmp-type echo-request -j ACCEPT(ze skriptu od Herona)
iptables -A INPUT -i $INET_IFACE -p icmp -m length --length 0:100 --icmp-type echo-request -j ACCEPTpotom take daco:
ping ipecka -s 10000nebude fungovat
Dost dobře nechápu, jak to může fungovat.
iptables -A INPUT -p tcp -m iprange --dst-range 192.168.2.1-192.168.2.10 -j ACCEPT
Tímto povilíte všechno pro všechny IP v tom rozsahu. Takže co vám to dělá, je správné.
Podle:
-m state --state NEW
soudím, že chcete používat stavový firewall. Chybí vám tam pravidlo:
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Co politiky pro ostatní chainy?
Zkrátka a dobře, tak jednoduché to nebude. Pokud chcete, můžete si stáhnout (a upravit) můj firewall (skript je řešený jako služba pro FC4, ale jistě si z toho vytáhnete vše potřebné).
Můj script je určen přímo pro můj PC. Routuju ještě na LAN2_IFACE. Ale to je všechno.
Moje síť:
INET_IFACE -- veřejná IP, cesta do Internetu LAN1_IFACE -- lokálka LAN2_IFACE -- lokálka, sem routuju Internet.
U mě beží: FTP, WWW, SVN, SSHD. Proto ty input pravidla. A funguji i jako http proxi cache a dns cache (pro LAN2).
Připomněl jste mi, že bych to mohl dopsat jako dokumentaci k tomu skriptu.
$LAN1_IFACE == $INET_IFACE,
takže vaše elegantní pravidlo na neomezování vnitřní sítě:
# Lokalni sit nebudeme omezovat $IPTABLES -A INPUT -i $LAN1_IFACE -j ACCEPT..přesně to co bych potřeboval, je pro mě nepoužitelné :( Musím tam dostat nějak to rozmezí IP adres. Je to vůbec bezpečné testovat vnitřní síť podle rozsahu IP adres? Je reálné riziko podvrhu?
Jestli dobře rozumím vašemu problému: Máte router, který vám přiděluje adresu (DHCP) v rozsahu .1 až .10 (nebylo by lepší to nastavit natvrdo?). Potřebujete k sobě routovat nějaké porty z venku. A spoučastně potřebujete přístup na to druhé PC. Btw jakou adresu má router?
Pokud jsem to pochopil právně, tak si to nastavte: INPUT z IProutru filtrujte a povolte jen ty porty, které potřebujete. A ostatní IP z vnitřní sítě nechte otevřené.
#implicitně zahodíme vse $IPTABLES -P INPUT DROP #povolime vnitrni sit $IPTABLES -A INPUT -s rozsah_adres_vnitrnich_PC -j ACCEPT #z routru jen na povolené porty $IPTABLES -A INPUT -s ip_adresa_routeru -p protokol --dport vase_porty -J ACCEPT #pro navazana spojeni $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTJe to vůbec bezpečné testovat vnitřní síť podle rozsahu IP adres? Je reálné riziko podvrhu?
Jak reálné je riziko podvrhu nevím. Ale uvědomte si, že útočník se stejně může připojit jen na programy, které u vás běží a poslouchají na síťovce. Viz netstat -lnp. Pokud budete mít dobře konfigurované služby a spuštěné jen ty, co nutně potřebujete, nemáte se čeho bát.
Ale uvědomte si, že útočník se stejně může připojit jen na programy, které u vás běží a poslouchají na síťovce.
To je hojně rozšířený omyl, který vychází z historické terminologie, jež se traduje z pradávných dob, kdy jeden interface mohl mít jen jednu přiřazenou IP adresu. Ve skutečnosti nic takového jako "poslouchat jen na určitém rozhraní" neexistuje. Proces naslouchá prostřednictvím socketu a ten má určitou (lokální) adresu. Ta je buď 0.0.0.0 a pak socket přijme jakoukoli komunikaci, nebo je nenulová a pak socket přijme jen komunikaci, která má odpovídající cílovou adresu. To, na jaký interface příslušné pakety přišly, v tom nehraje nejmenší roli. Pokud to chcete zohlednit, je třeba to provést pomocí pravidel netfilteru, na úrovni aplikace to provést nelze.
Třeba: pokud tam bude mít SSHD nakonfigurované na klíče (nikoliv login/pass), tak se nemusí bát.
#implicitně zahodíme vse $IPTABLES -P INPUT DROPTohle je jasné
#povolime vnitrni sit $IPTABLES -A INPUT -s rozsah_adres_vnitrnich_PC -j ACCEPTTohle mě zajímá, liší se
-m iprange --src-range 192.168.2.1-192.168.2.10 co navrhuje Jiří Veselský
od -s 192.168.2.1-192.168.2.10 co navrhujete vy?
A taky by asi chtělo nastavit protokoly ne? Takže -p all. Nebo to se myslí defaultně?
#z routru jen na povolené porty $IPTABLES -A INPUT -s ip_adresa_routeru -p protokol --dport vase_porty -J ACCEPTJe zaručené že příchozí požadavek z internetu (vněšku) bude mít vždy adresu routeru? Router dělá NAT, tak asi jo. A když by NAT nedělal - teď se ptám ze zvědavosti - to by šlo toto pravidlo použít také? Ten parametr -J (jump) má být asi malé -j
#pro navazana spojeni $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTTohle je něco jako optimalizace? Je to nezbytné? No, všichni mi to doporučují, tak to tam dám, proč ne :) Pokud budete mít dobře konfigurované služby a spuštěné jen ty, co nutně potřebujete, nemáte se čeho bát. Mám puštěný VNC server, zaheslovaný, ale přes šifrovaný kanál to zrovbna nejede, takže potenciál ke zneužití tu obávám se, je. VNC musí být bezpečně dostupné jen z vnitřní sítě!
Bez urážky, naučte se nejprve něco o sítích.
Nenapsal jsem vám skript pro copy-paste, a to ani není cílem diskuse.
Tohle mě zajímá, liší se -m iprange --src-range 192.168.2.1-192.168.2.10 co navrhuje Jiří Veselský od -s 192.168.2.1-192.168.2.10 co navrhujete vy?Pro rozsah adres použijte --src-range, pro jednu adresu -s. Myslel jsem, že tohle je jasné.
#pro navazana spojeni $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTTohle je něco jako optimalizace? Je to nezbytné? No, všichni mi to doporučují, tak to tam dám, proč ne :)
Není to optimalizace. Je to povolení pro navázané spojení. Když prohlížečem jdete na nějaký web, tak se vám musí vrátit packety zpět. A protože už je spojení navázané (šel jste ven), tak se pustí i dovnitř aniž byste to nastavoval jako povolený port.
Nebudu to už psát jako pravidla pro iptables, jen pseudokódem:
1) DROP INPUT
2) INPUT ACCEPT rozsah vnitrnich adres (mimo adresu routeru)
3) INPUT ACCEPT port1 z adresy routeru
...
4) INPUT ACCEPT portn z adresy routeru
5) INPUT ACCEPT navázaných spojení
Dá se to doplnit o logování, TOS, ICMP flood filter atd. Vše najdete v mém skriptu
Tiskni
Sdílej: