Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
V tomto zápisku rád sepsal zkušenosti se switchem NetGear GS105PE v síti, která je linuxově pozitvní a windowsově negativní (jinými slovy se jedná o domácí síť, ve které nemám k dispozici žádné m$ windows, pokud se třeba jedná o konfiguraci switche a podobně). To, co zde píši by se přitom mělo/mohlo vztahovat i na nejbližší podobné switche jako jsou třeba GS105Ev2 nebo GS108PE.
NetGear GS105PE vypadá na první pohled jako velmi šikovná pětiportová krabička. Krom toho, že je to switch gigabitový, pak jeho největší výhodou je, že je napájený z PoE (bohužel ale jinak napájet nelze) a zároveň ale umožňuje sám až na dvou portech PoE injektovat (nejlépe ovšem, když je napájen z 802.3.at, pak má dostatek šťávy, aby dal alespoň na jednom portu plné 802.af). A navíc switch podporuje VLAN a pár dalších funkcí z manageovatelných switchů (i když jej Netgear řadí do jakési mezikategorie, kterou nazývá „smart“ - je dnes ještě něco, co není „smart“ ). To by bylo z pozitiv tak víceméně všechno.
Bohužel tento switch má (respektive měl) i několik dosti závažných nesmyslů především co se jeho firmwaru a vzláště pak konfigurace týká. Především: switch původně neměl webové rozhraní a musel se nastavovat utilitou, která je windows only. Vzhledem k tomu, že si to někteří linuxáci nenechali líbít a snažili se napsat si takovou utilitu sami, zjistilo se, že komunikace mezi oficiální utilitou a switchem je z hlediska bezpešnost naprosto tragická. Konfigurace lítala po síti broadcastem po všech VLAN a sice s heslem v plaintextu. To Netgear posléze změnil tak, že heslo zaxoroval řetězcem „NtgrSmartSwitchRock“. Naštěstí se alespoň podařilo vytvořit pár utilitek, kterými šlo switch jakž-takž konfigurovat (viz tady, resp. tady a tady a tady) - teď vám ovšem neřeknu, která z nich funguje s firmwarem se zaxorovaným heslem a která ještě ne, ale v nejhoším to není až takový problém upravit.
Dalším problémem switche (stejně jako spousty dalších - i těch drahých switchů od Netgearu) je, že se snaží „volat domů“. Ať již použijeme jejich windows utilitu nebo v novější verzi firmware webové rozhraní (viz níže), pokaždé se switch snaží spojit se s Netgearem a vynutit si registraci. Vzhledem k tomu, že v kterési verzi firmware měl switch (dle nmap) otevřeny ale vyfiltrovaný port pro PPTP, vykládám si to tak, že ve chvíli, když zákazníkovi něco nefunguje, má technická potvora možnost se na switch připojit, aby se na to podívali, co přesně se děje. Jenže i tak je to dle mého hrozná zhůvěřilost a debilita! Naštěstí, zdá se, existuje způsob, jak minimalizovat škody. Kromě zakázání PPTP a dalších tunelovacích protokolů, dokud je člověk v síti nepotřebuje (což by asi měla být tak jak tak samozřejmost dobrého zabezpečení sítě), zdá se pomůže blokovat v síti na úrovni DNS adresu my.netgear.com
. Netgear se tak pokaždé vzteká, což by ale mohlo znamenat, že stačí blokovat jen tuto adresu .
„Volání domů“ zřejmě bude marketingovým rozhodnutím, které se asi jen tak nezmění. Nicméně, co se týká switche GS105PE, tak šlo v uplynulé době pozorovat velmi výrazný posun k lepšímu. Nejprve se ve verzi firmware objevilo webové rozhraní, které dokonce (oproti jiným switchům z dílny Netgearu) nemělo problém s běžným prohlížečem(TM). Trošičku problémem bylo, jak switch pod linuxem bez windowsovské utility upgradovat, ale i tady se našli lidé, kteří přišli, jak na to, a ještě jiní, kteří zbastlili utilitku, kterou je upgrade možné provést. Jenom bych chtěl upozornit na to, že utilitka neumí xorování hesla, takže je nejjednodušší pro upgrade heslo nastavit na prázdné. Tady je (je třeba mít nainstalováno atftp, konfigurace přímo ve skriptu):
#!/usr/bin/perl -w ####################################################################### # # NSDP firmware update script v.1.0 # Copyright 2012 Konstantin S. Vishnivetsky # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # For contacts: # WEB: http://www.vishnivetsky.ru # E-mail: kos@vishnivetsky.ru # SkyPE: kvishnivetsky # ICQ: 328-468-511 # Phone: +7 913 774-7588 # ####################################################################### use strict; use utf8; use IO::Select; use IO::Socket; use Data::Dumper; ####################################################################### # !!! ATTENTION !!!! # Some settings are empty - fill it with YOUR settings, please. # !!! ATTENTION !!!! ############ Initial config begin ##################################### my $DEBUG = 1; my $selfmac = "\x00\x11\x22\x33\x44\x55"; # MAC adresa PC (00:11:22:33:44:55) my $swmac = "\x66\x77\x88\x99\xaa\xbb"; # MAC adresa switche (66:77:88:99:aa:bb) my $sw_ip = '10.10.10.10' ; # IP addresa switche (10.10.10.10) my $sw_fw = 'fw.bin' ; # Firmware in *.hex file my $psswd= "password" ; # !!!!! my $DST_ADDR = pack('CCCC', 255,255,255,255); # Global broadcast addr - use on single interface host #my $DST_ADDR = pack('CCCC', 10,10,10,255); # Local broadcast addr of your network - use on multiple interface host ############ Initial config end ####################################### my $seq = rand(65535); printf "Initializing switch for TFTP\n" if $DEBUG; FwUpdate(63321); printf "Waiting...\n"; sleep(5); printf "Sending file %s via TFTP to %s\n", $sw_fw, $sw_ip if $DEBUG; `atftp -p --verbose --trace -l $sw_fw -r $sw_fw $sw_ip`; exit 0; sub FwUpdate { my $SRC_PORT = shift; my $sock = IO::Socket::INET->new( Proto => 'udp', LocalAddr => '0.0.0.0', Broadcast => 1, LocalPort => $SRC_PORT, ReuseAddr => 1 ) or die "Can't bind : $@\n"; my $select = IO::Select->new($sock); sendFwUpdate($sock, $seq++, $selfmac, $swmac, $psswd); my $isAlive = 1; while($isAlive) { my @ready = $select->can_read(5); if (@ready) { my $data = undef; my $from = recv($sock, $data, 1500, 0) || die "recv: $!"; my($port, $from_addr) = sockaddr_in($from); my @hexdata = unpack("C*", $data); printf "<< %s\n", join(' ', map(sprintf("0x%.2x", $_), @hexdata)) if $DEBUG; parseNSDP($data); $isAlive = 0; } else { printf STDERR "Timeout!\n"; $sock->close(); exit -1; } }; $sock->close(); } sub sendFwUpdate { my $sock = shift; my $seq = shift; my $selfmac = shift; my $swmac = shift; my $password = shift; my $msg = pack('nC6a6a6Sna4N', 0x0103, 0x00,0x00,0x00,0x00,0x00,0x00, $selfmac, $swmac, 0x0000, $seq, "NSDP", 0x0000); $msg .= pack('nna'.length($password), 0x000a, length($password), $password); # TLV with password $msg .= pack('nnC', 0x0010, 0x0001, 0x01); # DHCP mode On|Off $msg .= pack('nn', 0xffff, 0x0000); # trailer my @hexdata = unpack("C*", $msg); printf ">> %s\n", join(' ', map(sprintf("0x%.2x", $_), @hexdata)) if $DEBUG; my $dst = sockaddr_in(63322, $DST_ADDR); $sock->send($msg, 0, $dst) or die "send: $!"; }; sub parseNSDP { my $data = shift; my($ctype, $reserved, $selfmac, $dstmac, $reserved1, $seq, $sign, $reserved2) = unpack('na6a6a6a2na4Nn', $data); my @selfmac_ = unpack('C6', $selfmac); my @dstmac_ = unpack('C6', $dstmac); printf "ctype=%.4x\n", $ctype if $DEBUG; printf "selfmac=%s\n", join(':', map(sprintf("%.2x", $_), @selfmac_)) if $DEBUG; printf "dstmac=%s\n", join(':', map(sprintf("%.2x", $_), @dstmac_)) if $DEBUG; printf "seq=%.4x\n", $seq if $DEBUG; printf "sign=%s\n", $sign if $DEBUG; };
Utilitka funguje tak, že se switchi pošle jistý packet a switchi je pak možné firmware poslat přes normální TFTP. Dobrou zprávou je, že ve kterési další verzi firmware lze switch do TFTP módu nastavit přes webové rozhraní a firmware do něj nalít jednoduše pomocí:
atftp -p --verbose --trace -l $FW -r fw.bin $SW_HOST
, kde $FW
je soubor s firmware a $SW_HOST
je ip adresa switche. Nejlepší na tom je, že ani to už není v poslední verzi firmware (1.5.*) nutné. Tento firmware je sice nutno nahrávat nadvakrát - bootloader je zvlášť (čtěte pozorně release-notes), nicméně nakonec tu máme switch, který lze updatovat snadno pomocí webového rozhraní (viz screenshot). Mimochodem, v poslední verzi firmware je možné také vypnout konfiguraci pomocí oné windowsoidní utility úplně (a navíc údajně Netgear tentokrát nasadil „skutečné šifrování“ hesla - popravdě, mně už je to jedno, své switche ovládám nyní jen přes web ).
Zdá se tedy, že alespoň v některých věcech se Netgear poučil ze svých chyb a vývoj firmware GS105PE se ubírá správným směrem. Se šmírováním asi bohužel nic nenaděláme. Zbývá ale jedna věc, která dost vadí ve chvíli, kdy má člověk v sítí více VLAN - switch poslouchá na všech VLAN a pokud si IP adresu žádá dynamicky přes DHCP, pak rozesílá DHCP dotazy přes všechna rozhraní a ve svému důsledku si nastaví adresu z náhodné VLAN. Pochopitelně nejlepší v takovém případě je nastavit adresu na statickou, na což ovšem člověk při nastavování ne vždy zavčas myslí a pak hledá jen, ve kterém segmentu sítě se mu switch usadil. Pro tento případ stačilo blokovat příchozí DHCP packety ze switche a povolit je pouze z VLAN, ze které si to přeji, asi nějak takto (všechny VLAN routuje přes stejný router):
# xx:xx:xx:xx:xx:xx == MAC adresa switche iptables -t raw -A PREROUTING -p udp --dport 67 -m mac --mac-source xx:xx:xx:xx:xx:xx -i $VLAN_SWITCH_ADMIN_IF -j ACCEPT iptables -t raw -A PREROUTING -p udp --dport 67 -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
Pravda, je to jen narovnávák na vohejbák, ale lepší než drátem do voka. Samozřejmě ideální by bylo, kdyby switch umožňoval nastavit VLAN pro management, jak to má u dražších modelů, ale moc tomu nevěřím, že by do toho NetGear šel...
Tiskni
Sdílej:
switchová část umí podstatně víc věcí než switch v RB450GTo rozhodně, ale jak už tu někdo psal, mě to doma stačí
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:01.1 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:01.2 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:06.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:1c.0 PCI bridge: Intel Corporation DH89xxCC PCI Express Root Port #1 (rev 08) 00:1c.1 PCI bridge: Intel Corporation DH89xxCC PCI Express Root Port #2 (rev 08) 00:1c.2 PCI bridge: Intel Corporation DH89xxCC PCI Express Root Port #3 (rev 08) 00:1c.3 PCI bridge: Intel Corporation DH89xxCC PCI Express Root Port #4 (rev 08) 00:1d.0 USB controller: Intel Corporation DH89xxCC USB2 Enhanced Host Controller #1 (rev 08) 00:1f.0 ISA bridge: Intel Corporation DH89xxCC LPC Controller (rev 08) 00:1f.2 SATA controller: Intel Corporation DH89xxCC 4 Port SATA AHCI Controller (rev 08) 00:1f.3 SMBus: Intel Corporation DH89xxCC SMBus Controller (rev 08) 00:1f.7 System peripheral: Intel Corporation DH89xxCC Watchdog Timer (rev 08) 01:00.0 Co-processor: Intel Corporation Device 0434 (rev 21) 01:00.1 Ethernet controller: Intel Corporation DH8900CC Series Gigabit Fiber Network Connection (rev 21) 01:00.2 Ethernet controller: Intel Corporation DH8900CC Series Gigabit Fiber Network Connection (rev 21) 07:00.0 Unassigned class [ff00]: Juniper Networks Device 0062 (rev 01) 08:00.0 Unassigned class [ff00]: Juniper Networks Device 0063 (rev 01) 09:00.0 Ethernet controller: Broadcom Corporation Device b854 (rev 03):)