OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.
Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.
Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.
Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.
Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.
Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.
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.
#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: