Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
SOURCE="/var/www/www-block/events.txt" ciladresy=`cat /var/www-ssl/admin/access.log` for x in `grep -v ^# $SOURCE | awk '{print $1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9"|"$10"|"$11"|"$12"|"$13"|"$14"|"$15"|"$16"|"$17"|"$18"|"$19}'`; do x=`echo $x | sed 's/|/ /g'` x1=`echo $x | awk '{ print $1 }'` x2=`echo $x | awk '{ print $2 }'` x3=`echo $x | awk '{ print $3 }'` x4=`echo $x | awk '{ print $4 }'` x5=`echo $x | awk '{ print $5 }'` x6=`echo $x | awk '{ print $6 }'` x7=`echo $x | awk '{ print $7 }'` x8=`echo $x | awk '{ print $8 }'` x9=`echo $x | awk '{ print $9 }'` x10=`echo $x | awk '{ print $10 }'` x11=`echo $x | awk '{ print $11 }'` x12=`echo $x | awk '{ print $12 }'` x13=`echo $x | awk '{ print $13 }'` x14=`echo $x | awk '{ print $14 }'` x15=`echo $x | awk '{ print $15 }'` x16=`echo $x | awk '{ print $16 }'` x17=`echo $x | awk '{ print $17 }'` x18=`echo $x | awk '{ print $18 }'` x19=`echo $x | awk '{ print $19 }'` ciladresykk=`echo "$ciladresy" | grep "$x1 $x2 $x3" | awk '{ print $4 }'` echo "$x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x9 $x10 $x11 $x12 $x13 $x14 $x15 $x16 $x17 $x18 $x19 $ciladresykk" >> /var/www-ssl/admin/squid/squidblok.html donevzor /var/www-ssl/admin/access.log
02/02/2007 11:55:37 192.168.1.180 http://www.sonnerie.net/js/xiti.js 02/02/2007 11:55:38 192.168.1.180 http://logi6.xiti.com/hit.xiti?vzor /var/www/www-block/events.txt
02/02/2007 11:42:16 192.168.1.180 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 02/02/2007 11:55:38 192.168.1.180 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)Celé řešení slouží k vypsání zablokovaných spojení a pomocí druhého logu se k těmto spojením hledají cílové adresy. Určitě by to šlo nějak urychlit. Nějaký nápad?
grep -v '^#' $SOURCE \ | while read ln do arr=($ln) echo -n $ln grep "${arr[0]} ${arr[1]} ${arr[2]}" "$ciladresy" | awk '{ print $4 }' done >> /var/www-ssl/admin/squid/squidblok.htmlps: nezkoušel jsem to.
#!/usr/bin/env python def splitter(filename): for line in file(filename): line = line.strip() if not line: continue splitted = line.split(None, 3) yield tuple(splitted[:3]), splitted[3] access = {} access_splitter = splitter('access.log') for k, v in access_splitter: access[k] = v events_splitter = splitter('events.txt') for k, v in events_splitter: try: url = access[k] except KeyError: url = '' print ' '.join(k), v, urlDává to stejné výsledky jako ten skript v shellu,
02/02/2007 11:42:16 192.168.1.180 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 02/02/2007 11:55:38 192.168.1.180 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) http://logi6.xiti.com/hit.xiti?tak je to doufám správně. Testoval jsem zpracování dvou logů, z nichž každý měl 100000 položek. Za tři sekundy to bylo hotovo.
02/02/2007 11:42:16 192.168.1.180 prohlizec1 02/02/2007 11:55:38 192.168.1.180 prohlizec2a access.log s tímto
02/02/2007 11:55:37 192.168.1.180 url1 02/02/2007 11:55:38 192.168.1.180 url2 02/02/2007 11:55:38 192.168.1.180 url3Tak má být výsledek tohle?
02/02/2007 11:42:16 192.168.1.180 prohlizec1 02/02/2007 11:55:38 192.168.1.180 prohlizec2 url2 url3Pokud ano, tak to lze vyřešit třeba takto:
#!/usr/bin/env python def splitter(filename): for line in file(filename): line = line.strip() if not line: continue splitted = line.split(None, 3) yield tuple(splitted[:3]), splitted[3] access = {} access_splitter = splitter('access.log') for k, v in access_splitter: try: access[k].append(v) except KeyError: access[k] = [v] events_splitter = splitter('events.txt') for k, v in events_splitter: try: urls = access[k] except KeyError: urls = [] print ' '.join(k), v, ' '.join(urls)Mohl bys udělat rychlostní test? Teda pokud je to vůbec správně ...
grep|awk
je tzv. chujovina.
awk "/$x1 $x2 $x3/ { print $4 }"
ciladresy=`cat /var/www-ssl/admin/access.log`bych dal
ciladresy=$(</var/www-ssl/admin/access.log)a místo
for x in `grep -v ^# $SOURCE | awk [...]`; dotohle
awk '!/^#/ [...]' $SOURCE | while read x; do
root@amd64 ~ # time grep -v ALL /etc/hosts.deny | awk '{print$1}' sshd: real 0m2.667s user 0m2.566s sys 0m0.014s root@amd64 ~ # time awk '!/ALL/ {print$1}' /etc/hosts.deny sshd: real 0m0.006s user 0m0.004s sys 0m0.002s
grep "${arr[0]} ${arr[1]} ${arr[2]}" "$ciladresy" | awk '{ print $4 }'Při použití awk mi to nefunguje vůbec. Nelíbí se mu ${arr[0]} ${arr[1]} ${arr[2]}. Při použití textu to funguje.
awk "/${arr[0]} ${arr[1]} ${arr[2]}/ { print $4 }" "$ciladresy"Nešlo ti to patrně proto, žes zapomněl, že bash proměnný v apostrofech neexpanduje.
awk: line 1: syntax error at or near :Při použití ' se skript provede, ale nefunguje asi kvůli těm chybějícím mezerám.
kvůli těm chybějícím mezerám.Huh?
02/02/2007v ty první proměnný, přičemž 02\/02\/2007 bere v pohodě. Teď jak ho přimět, aby to ignoroval či jak to rychle nahradit.
hm="${arr[0]} ${arr[1]} ${arr[2]}" hm="${hm//\//\/}" awk "/$hm/ {print $1}" něco
Tiskni
Sdílej: