Byla vydána verze 1.98.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.
Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).
Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.
Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.
Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.
Byla vydána nová verze 1.27 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede Petr Hodina, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem mobilního … více »
Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.
Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o
… více »Ve stručnosti si pro začátek řekněme, co je to Bayesovský filtr, jak funguje a proč je pro nás tak zajímavý. Bayesovský filtr vypočítává pravděpodobnost toho, jestli je daný mail spam nebo ne. Hlavní podstatou je určování pravděpodobnosti klíčových slov, jejichž průměr určí výslednou hodnotu, tj. jaká je šance, že celý mail je spam. Výhodou oproti ostatním filtrům je především to, že se stále učí z nových došlých mailů, které jsou ručně nebo automaticky označovány jako spam a tím se neustále rozrůstá databáze, podle které je možné odhadovat pravděpodobnost nevyžádané pošty.
Ve skutečnosti existuje více variací Bayesovského filtru a pravděpodobně každá implementace má své výhody. Nicméně všechny stojí na výše popsaném základním principu. My se dnes podíváme na dva programy, kde je tento filtr využit. První je desktopové řešení a tím je emailový klient oblíbeného prohlížeče Mozilla, druhý je naopak serverové řešení SpamAssassin hodící se především pro spojení s mailserverem.
V Mozille funguje antispamová ochrana velmi jednoduše. Stačí každý nevyžádaný příchozí email označit jako "Junk" ("Nevyžádaná") a Mozilla si příště bude pamatovat, že takový a jemu podobné má rovnou zahazovat a to buď do složky "Junk", nebo jinam dle nastaveni. Pravidla pro označování mailů jako spamu si Mozilla vytváří právě na základě Bayesovského filtru, z čehož vyplývá, že čím více budeme mít jak vyžádané, tak nevyžádané (a řádně označené) pošty, tím přesnější filtr bude. Už při menším počtu začne filtr celkem slušně fungovat, ale pro správnou funkci je zapotřebí relativně velké množství vzorků, takže minimálně zpočátku není dobré slepě věřit, že vše, co skončí ve složce "Junk", je opravdu jen spam. Proto je lepší ji čas od času zkontrolovat.
Pro zprovoznění správné JunkMail funkce je třeba ji nějak nastavit. Provedeme to ve složce Tools/Junk Mail Controls (Nástroje/Nastavení nevyžádané pošty). Nastavují se zde účty, na které se bude filtr aplikovat, také "White Lists", které budou obsahovat buď adresy z osobního adresáře nebo z posbíraných adres. Je také samozřejmě možné celou kontrolu povolit nebo zakázat. Dále zde najdeme, jakým způsobem se má nakládat právě s poštou označenou jako "Junk". Pro každý účet je možné nechtěnou poštu přesunout do složky "Junk", nebo je možné spam ze všech účtů shromažďovat do jediné složky. Je také možné nastavit, za jak dlouho se mají "junkmaily" ze složek odstranit, eventuálně je možné je odstraňovat rovnou. Dále je možné zapnout/vypnout logování.
Ještě pro doplnění je třeba říci, že v Mozille-ThunderBird (samostatný email klient) je nastavení malinko odlišné. Celé nastavení je rozděleno do tří záložek - pravděpodobně pro budoucí rozšíření. Na první záložce je navíc položka pro "očištění" HTML spamu. Dále například na záložce "Adaptive Filters" je možné službu pouze zapnout/vypnout. Předpokládám, že v budoucnu bude možné nějaké další nastavení. Poslední záložkou je "Black Lists", kde asi bude možné nastavovat známé "černé listiny", ale tato možnost zatím nebyla v Mozille ThunderBird 0.1a aktivována.
SpamAssassin je perlový program, takže nutným předpokladem je mít nainstalován Perl. Jako další je potřeba mít následující perl moduly:
File::Spec, Pod::Usage, HTML::Parser, Sys::Syslog.
|
Pod "rootem" lze všechny nainstalovat pomocí příkazu:
perl -MCPAN -e 'Modul::Name'.
|
Bez práv "roota" je to o něco složitější, nicméně to taky jde.
Ale přidávat tyto moduly je nutné pouze pokud se SpamAssassin instaluje ze zdrojového kódu. U ostatních způsobů by se měly nainstalovat samy.
Nainstalovat SpamAssasin je možné mnoha způsoby. Download oficiálních verzí je k dispozici na zde nebo mirror zde.
V nejnovějších distribucích RedHat, Mandrake a Debian je SpamAssassin už obsažen, takže je možné jej vybrat již při instalaci systému. Pokud tak neučiníme při instalaci, pak máme k dispozici následující možnosti:
rpm -ivh spamassassin-*.i386.rpm
|
apt-get install spamassassin
|
tar -zxvf Mail-SpamAssassin-*
|
pokud budeme instalovat bez superuživatelských práv pouze do svého domovského adresáře, tak můžeme nahradit třetí řádek následujícím:
perl Makefile.PL PREFIX=~/sausr SYSCONFDIR=~/saetc
|
perl -MCPAN -e shell
|
Jestli se podařilo SpamAssassin nainstalovat správně je možné vyzkoušet příkazem:
/usr/bin/spamassassin < /usr/share/doc/spamassassin-2.55/sample-spam.txt
|
Samozřejmě příkaz v téhle podobě bude fungovat pouze pokud je nainstalována verze 2.55 do standardních adresářů. Jeho výstupem by měl být mail, který ve svých hlavičkách obsahuje následující položky:
X-Spam-Status:
|
V těchto hlavičkách se objeví, jestli je mail označen jako spam, jaké je jeho skóre, verze SpamAssassinu, zpráva a příznak, který by v tomto konkrétním případě měl být 'YES'.
Spustit SpamAssasin je možné z mnoha míst a záleží na našem nastavení systému, který zpracovává poštu. Protože nám ale jde především o nastavení filtrů, ukážu některé jednodušší varianty. Na oficiálních stránkách SpamAssassinu se můžeme dočíst, kde všude ho lze integrovat. Mezi ty zajímavější patří Amavisd-new, MailScanner, Sendmail a další. Všechny nástroje fungují na stejném principu a na některém místě zpracování mailu se SpamAssassin spustí a zapíše do hlaviček výsledek. My si tedy ukážeme zapojení do systému přes Procmail a Postfix.
Ještě je třeba říci, že SpamAssassin může běžet ve dvou módech. Jednak jako démon, který běží na pozadí a jeho klientem je program "spamc", a nebo se vždy spouští celý program "spamassassin". Démona může spouštět pouze uživatel root a to například příkazem /etc/init.d/spamassassin start. Používání démona by mělo mít výhodu hlavně v rychlosti zpracování.
Toto je velmi jednoduchá záležitost. Pro celosystémové použití (Site-Wide use) do /etc/procmailrc nebo pouze pro uživatele do ~/.procmailrc zapíšeme následující:
MAILDIR=$HOME/mail
|
Druhý řádek záleží na našem nastavení. Prostě je to cesta buď ke klientovi "spamc" nebo přímo k programu "spamassassin".
Pro automatickou filtraci můžeme použít další pravidlo, které zprávy označené jako spam uloží do speciální schránky. Pokud to budeme chtít udělat pro všechny uživatele, pak v /etc/procmailrc, pro jednotlivé uživatele opět do ~/.procmailrc, nastavíme:
:0
|
SpamAssassin je možné integrovat přímo do Postfixu během několika málo kroků. Pěkný, funkční návod "krok za krokem" je možné nalézt zde. Integrace do Postfixu jsou kroky 3 - 9. Zbytek už je opět filtrace přes procmail, která je už výše zmíněná.
SpamAssassin nabízí velmi širokou škálu nastavení. Systémové nastavení se nalézá v souboru /etc/mail/spamassassin/local.cf, uživatelské nastavení pak v souboru ~/.spamassassin/user_prefs. Voleb je opravdu mnoho, jejich seznam je zde. Několik základních si ale představíme.
V témže souboru je možné měnit hodnotu jednotlivých pravidel pomocí direktivy
score SYMBOLIC_TEST_NAME n.nn
|
čímž můžeme výrazně ovlivnit, co se bude a nebude považovat za spam. Symbolická jména testů je možné nalézt v adresáři /usr/share/spamassassin/, kde jsou v různých souborech popsána všechna pravidla. Tato pravidla se nedoporučuje měnit, protože při upgradu na novější verzi budou přepsána. Jsou také popsána včetně výchozích hodnot zde.
Poslední věc, kterou ještě zmíním, je pomocná aplikace pro vytváření
databáze pro Baeysovský filtr. Tato aplikace se nazývá sa-learn a najdeme ji v adresáři s nainstalovanými binárkami. Nejjednodušší použití je zhruba takovéto:
/usr/bin/sa-learn --spam --mbox ~/mail/spam
|
Přidá do uživatelské databáze spam ze složky, do které ukládáme spam.
/usr/bin/sa-learn --ham --mbox /var/spool/mail/user_name
|
Přidá do uživatelské databáze ham ("nespam") ze složky, ve které je došlá pošta s nižším než potřebným skóre.
Tak to byl takový zevrubný popis a průvodce instalací SpamAssassinu. Je to opravdu velmi rozsáhlé téma a i když se to třeba nezdá, tak SpamAssassin nabízí mnohem širší možnosti než co jsou výše popsány. Pro vyloženě zvídavé jsou připraveny následující odkazy, oficiální dokumentace, manuálové stránky a samozřejmě také "pan Google" je ochoten kdykoli pomoci.
Razor - uživatelská databáze spamu, založená na faktu, že jeden stejný mail se rozesílá na tisíce adres. V případě, že spam někdo dostane dříve než my, označí jej a odešle do sdílené databáze, máme pak možnost do této databáze nahlédnout a stejný mail případně zamítnout.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
#!/bin/sh
#----------------------------------------
# FUNCTIONS
#----------------------------------------
function mylog()
{
MYLOG_CURRENT=`date "+%Y-%m-%d %H:%M:%S"`
echo "$MYLOG_ID $MYLOG_CURRENT $1" >> $MYLOG
}
#----------------------------------------
# PREPARE DIRECTORIES AND VARIABLES
#----------------------------------------
MYLOG=/var/log/bogofilter.log
MYDIR=/data/scripts/bogowrap
MBXS_SPAM=$MYDIR/mbxs_spam
MBXS_NOSPAM=$MYDIR/mbxs_nospam
export PATH="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin"
export WORDLIST_DIR=$MYDIR/wordlists
case "$1" in
"-l")
#--------------------------------------------
# LEARNING
#--------------------------------------------
mkdir $WORDLIST_DIR 2> /dev/null
mkdir $WORDLIST_DIR.tmp 2> /dev/null
rm -f $WORDLIST_DIR.tmp/*.db 2> /dev/null
[ "$2" = "-e" ] || cp -f $WORDLIST_DIR/* $WORDLIST_DIR.tmp/ 2> /dev/null
mylog "Bogofilter learning started (prepare)."
SPAM_COUNT=`find $MBXS_SPAM -follow | grep -c ""`
mylog "Bogofilter learning of $SPAM_COUNT spam messages started."
find $MBXS_SPAM -follow | egrep "\.$" | nice -n 10 awk '{system("cat \""$1"\" | \
bogofilter -s -d "ENVIRON["WORDLIST_DIR"]".tmp")}'
mylog "Bogofilter learning of $SPAM_COUNT nospam messages started."
[ $? -eq 0 ] && find $MBXS_NOSPAM -follow -printf "%TY%Tm%Td %p\n" | egrep "\.$" | sort | \
tail -$SPAM_COUNT | nice -n 10 awk '{system("cat \""$2"\" | \
bogofilter -n -d "ENVIRON["WORDLIST_DIR"]".tmp")}'
if [ $? -eq 0 ]
then
rm -f $WORDLIST_DIR/goodlist.db 2> /dev/null
bogoutil -d $WORDLIST_DIR.tmp/goodlist.db | bogoutil -l $WORDLIST_DIR/goodlist.db
rm -f $WORDLIST_DIR/spamlist.db 2> /dev/null
bogoutil -d $WORDLIST_DIR.tmp/spamlist.db | bogoutil -l $WORDLIST_DIR/spamlist.db
fi
mylog "Bogofilter learning finished."
exit $?
;;
"-a")
#--------------------------------------------
# ANALYZING
#--------------------------------------------
SPAM=No
MYFILE=$MYDIR`tempfile`
mkdir $SPAM_TREZOR 2> /dev/null
cp "$2" "$MYFILE"
bogofilter -I "$MYFILE" -O "$2" -p -d $WORDLIST_DIR
[ $? -eq 0 ] && SPAM=Yes
mylog "Bogofilter analysis of $2 done (X-Bogosity: $SPAM)."
rm -f "$MYFILE"
;;
*)
echo "Syntax : bogowrap [-l [-e]|-a ]"
echo "Options : -l ... learn"
echo " -a ... analyze message "
echo " -e ... learn and emty wordlists, used with -l"
exit 0
;;
esac
A idea na zaver. Proc vyse uvedeny princip pouzivat pouze na spam? Proc jej nevyuzit i pro bezne zatridovani zprav metodou 'by example'?
(Firebird 0.6)
Pouzivam jej priblizne pul roku a za tu doby jsem nemel jediny "dobry" mail spatne zarazeny do spamu a tak asi 1 spam za 14 dni klasifikovany jako "dobry". Slusna uspesnost ne? Zvlast kdyz me v dobry den prijde i 30 spamu...
maps_rbl_domains = relays.ordb.org, bl.spamcop.net, dnsbl.njabl.orgna inych mailserveroch tiez jednoducho nastavitelne. bye