Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.
Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).
Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
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:
. SG300 je plně ok, cmd je parádní.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):)