Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Nejprve krátké shrnutí základních principů. SELinux je systém implementující bezpečnost nad rámec klasického zabezpečení UNIXu. Co je na UNIXovém přístupu špatného? Za prvé, přístupová práva jsou definována příliš široce. Jako příklad si můžeme vzít práva k souborům. V UNIXu můžeme rozlišit pouze přístup pro vlastníka, skupinu a ostatní. Nelze mít přístupy pro deset skupin pro čtení, dvě pro zápis, jednoho dalšího uživatele pro čtení a zbytek světa žádný přístup. POSIXové ACL také definují pouze práva rwx – nelze rozlišit operaci append
od obecného write
nebo mkdir
od creat
. Druhým průšvihem je možnost libovůle vlastníka nad právy (např. opět zase k souboru). Neexistuje způsob, jak by administrátor mohl znemožnit vlastníkovi souboru měnit jeho práva, neboli problém DAC versus MAC.
SELinux řeší oba problémy – jednak dovoluje administrátorovi stanovit bezpečnostní pravidla, která jsou až do změny politiky neměnná, například, že k privátním SSH klíčům uživatele má přístup pouze aplikace SSH, ale už ne Firefox, a neexistuje způsob, jak by si Firefox mohl tyto klíče „zpřístupnit“. A jednak lze pomocí politiky ošetřit obrovský počet akcí, například povolit démonovi pouze připisovat do souboru s logem, ale už ne jej přepsat, nebo povolit web serveru naslouchání na portu 80, ale už ne libovolnou jinou komunikaci. Navíc lze použít vymoženosti jako secmark, čímž spojíme možnosti iptables a SELinuxu, případně labeled ipsec, čímž můžeme rozšířit naši bezpečnostní politiku na celou síť.
Namísto zabití celého článku teorií (která není zas tak triviální) si zkusíme rovnou SELinux v praxi a teorii se doučíme cestou. Pro začátek je vhodné si vybrat distribuci Linuxu, která již nějakou podporu pro SELinux má, tj. Red Hat (RHEL, CentOS, Fedora, deriváty jako Mandriva Linux by mohly být OK, …), Gentoo a Debian (Lenny nebo Sid). Já jsem při svém snažení zvolil Debian, ačkoliv se ukazuje, že podpora je ze všech vyjmenovaných spíše slabší. Neznamená to, že by to nefungovalo, pouze to není tak na špici vývoje [bleeding edge] jako u Fedory. U jiných distribucí můžete dopadnout úplně jinak [YMMV], jelikož podstatnou část v předdefinované politice hraje umístění souborů – binárky, konfiguráky, init soubory a podobně. Samozřejmě je vhodné experimentovat na neprodukčním stroji, kde můžete vždy začít odznova.
Pro instalaci na Debianu (Lenny) je dobré rámcově postupovat podle návodu na Debian wiki a podle dodatečných informací od Rusella Cokera.
Největším „antitahákem“ SELinuxu je složitost bezpečnostní politiky a strach, že se systém po aktivaci SELinuxu ani nerozběhne. Ukážeme si, že to není tak hrozné. Jediné, co je skutečně potřeba, je znalost toho, jak systém funguje. Bohužel bez toho nelze dost dobře stanovit, co se děje správně, a co ne. První krůčky může také pomoct překonat Gentoo Linux SELinux handbook, konkrétně Dissecting a Denial.
Po instalaci balíků, autorelabel, atd. se systém rebootuje do tzv. permissive [uvolněného] režimu. V tomto režimu se sice vše kontroluje dle zadané politiky, ale přístupy nejsou zakázány, pouze logovány. To nám dává příležitost ověřit, zda politika funguje správně, aniž bychom museli křísit nepoužitelný systém. Po přihlášení spusťte příkaz dmesg
a nevyhnutelně uvidíte (doufejme, že jen několik) hlášek typu avc: denied
. V tuhle chvíli není úplně důležíté porozumět celé hlášce, pouze je potřeba určit, zda zamítnutí dané akce ohrozí start systému, nebo ne. V nejhorším to lze otestovat přepnutím do enforcing [vynucovacího] režimu na jeden boot a pozorováním.
Příkladně v mém případě to byl problém u hotplug skriptu pro síťovku, který neměl práva číst konfigurační soubory v /etc/network
či něco takového. Asi by mělo smysl takovou akci povolit, bylo však mnohem jednodušší upravit konfigurační soubory tak, aby se síťovka inicializovala automaticky při startu počítače a ne jako hotplug (stejně tam vždy je). Jelikož init skript běží s jinými pravomocemi než hotplug skript, fungovalo vše správně. Pokud je těch hlášek pouze několik, můžete je směle předat programu audit2allow -M local
. Výsledkem bude soubor local.pp
, který nakopírujete do adresáře /etc/selinux/default/modules/active/modules
a opakujete start systému.
Po několika iteracích dospějete do stavu, kde už žádná hláška od AVC neohrožuje start systému, a je tedy čas přikročit k aktivaci enforcing režimu natrvalo. Tím je prvotní instalace dokončena a my se můžeme kochat zabezepečením. Ve výchozí politice je toto zabezpečení poměrně jednoduché: Existují vybrané procesy, kterým přístup omezen je (nad rámec UNIXových opatření), a zbytek systému je SELinuxem témeř neomezen, tj. platí pouze klasická UNIXová pravidla.
Pomocí příkazu ps xaZ
(zapamatujte si to Z) se můžeme podívat, jak to vypadá. Pravděpodobně uvidíte, že například procesy typu getty
, sshd
, crond
beží ve vlastním kontextu (getty_t
, apod.), tj. mají omezená práva, i když běží pod rootem. Příkladně takové getty
nemůže otevírat internetové spojení nebo se hrabat v domovských adresářích. Na druhou stranu shell uživatele bude mít u sebe něco jako unconfined_t
, což znamená, že omezení je minimální. Navíc také vše, co z tohoto shellu spustíte, bude mít „právo unconfined“. V první fázi jsme tedy dospěli do stavu, kde vše funguje jako dříve, ale nemusíme se bát, že se nám zotročené getty
(nebo jiný démon) bude hrabat v $HOME
. A ani to tak nebolelo.
Další díl se bude hlouběji zabývat filosofií SELinuxové politiky (jak pravidla fungují, proč jsou zrovna takto a kde sehnat další informace).
Článek vznikl za podpory ČVUT FEL, Katedra kybernetiky, kde jsou k dispozici, mimo jiné, studijní programy Otevřená informatika a Kybernetika a robotika.
Poznámka: Článek původně vyšel v blogu pht.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Diskuse byla administrátory uzamčena
Podpora SElinuxu ve Fedoře je špičková - a právě proto ji používám na serverech.
serveru je tady asi deset. Neco jsou Centosy, neco komercni Redhaty. Jake problemy s upgradem?
Je to trochu OT, ale když už jste se zeptal. Já Fedoru používám na několika desítkách serverů a mám vyzkoušené, že stejně tak za 2-3 roky je potřeba upgrade. Důvody jsou různé, většinou si to vynutí zákazník tím, že chce nějakou novou verzi nečeho, nebo upgrade na novější hardware, atd... A to období nepodpory se snadno pokreje tím, že si SRPMko z novější verze přeložím pod starší verzí... Na pár serverech jsem zkusil Centos a Debian, ale buď jsem narazil hned nebo o něco později. Například najednou vyskočil požadavek na appletalk, Centos tehdy potřeboval neoficiální kernel a ještě nějaké další drobnosti, Fedora jela out-of-the-box. Nebo Centos 4.cosi neměl rád $ v username, což zase měla ráda Samba a mělo se to řešit pomocí instalace RPMka z Fedory.
Ale může to být tím, že máme málo zákazníků, co si nakonfigurují server a pak chtějí, aby jim beze změny běžel x let, většinou se jim věci na serverech vyvíjí a mění se...
Tim rebuildem SRPM resis vsechny bezpecnostni problemy? Protoze Fedora verze X je podporovana jenom cca ~13 mesicu.
Zhruba tak nějak. Po skončení oficiální podpory si důležité bezpečnostní aktualizace překládám sám z SRPM z nových verzí. Většinou toho není potřeba moc, protože nepřekládám, to co se na serveru nepoužívá. Někdy jde taky podstrčit nové RPMko, když rozdíl verzí není moc velký...
Koukam, ze neni nad to, mit co server to distribučně nestandartni reseni, to vas pak musi mit v mailning listech s ohlasovanim bugu radi )) (musel jsem si rypnout, nedalo mi to)
No to je rýpnutí trochu mimo mísu, ale prosím, klidně rejte jako krtek
Dokud je podpora od distribuce, tak je vše podle distribuce. Když podpora není, pak neposílám bugy do distribuce. A pokud posílám bugy přímo do mailing listu daného produktu, pak prostě musím posoudit, zda je bug u mě nebo jinde....
no ja to myslel spis tak, ze nepouzivam distribuce, kde neni dany produkt vseobecne podporovan :-] ale uznavam, ze se to nekomu muze libit, obcas jsou situace, kde neni jine reseni nez nestandartni, ale obecne se je osobne snazim vzdy minimalizovat i klidne pouzitim jine [odladenejsi] distribuce, ale je to mozna jen moje uchylka z pouzivani BSDcka, ze linux distra beru vicemene jako jeden produkt jen s jinymi scripty kolem, proto me taky neskutecne rozciluje, kdyz mi system neumoznuje pouzit standartni zpusoby nastaveni [napr. kdyz nad iptables sedi nejaky easy-to-use-and-set demon co generuje pravidla]
Osobně mám pocit, že lidi od BSD často nedoceňují právě tu práci, kterou tvůrci distribucí dělají. Ono to není jen udělání nějakých skriptů, ale sladění celé distribuce dohromady, vytvoření dokumentací, vzhledu a já nevím čeho všeho. A s těimi easy-to-use věcmi je to obdobné. Některé jsou/byly hrozné (například linuxconf), některé jsou super (webmin).
Například, když jsem zjišťoval, co by znamenalo nasazení LDAPu na centrální autorizaci. Na Fedoře je na to easy-to-use textové klikátko, které se vyptá a nastaví standardní konfiguráky. Do nich se podívám a můžu si nastudovat, proč je to zrovna tak, jak to tam je. V tomhle případě jde o poměrně triviální nastavení a jeden symlink na certifikát. A příště už bych to zvládnul i bez toho klikátka, kdybych potřeboval. Na FreeBSD jsem v Handbooku moc informací nenašel. Ale v manech a spol už to je lepší, jsou tam stejné nástroje (PAM, NSS, OpenSSH), jako na Fedoře, takže žádný problém. Našel jsem jakési pěkné howto, víceméně pohodka, nainstaluje se pam_ldap, a pár dalších věcí z portů a vše nastaví víceméně stejně, jako na té Fedoře. Jenže při pokusu o login mi login proces udělal segfault. Po chvíli jsem zjistil, že za to může podpora SSL. Po vypnutí SSL to bylo lepší, proces nepadal, ale nedařilo se přihlásit. Abych to zkrátil, o hodnou chvíli později (a o pár šedin později) jsem zjistil, že OpenSSH z portů, není to samé, na co se při instalaci ptá eslivá chci SSH server. Že SSH z portů není přeloženo s podporou NSS a že má speciální patch, který když nenajde usera v /etc/shadow, tak změní uživatelem zadané heslo na INCORRECT<LF>PASSWORD. A to je právě ta pointa, kterou jsem zmiňoval na začátku...
Osobně mám pocit, že lidi od BSD často nedoceňují právě tu práci, kterou tvůrci distribucí dělají.Já mám ten pocit taky a navíc, že to často nedoceňují ani uživatelé těch distribucí.
speciální patch, který když nenajde usera v /etc/shadow, tak změní uživatelem zadané heslo na INCORRECT<LF>PASSWORDZa tohle bych někoho postavil ke zdi. No trial, no jury, straight to execution.
Podpora SElinuxu ve Fedoře je špičková - a právě proto ji používám na serverech.Myslím, že není problém zavést něco podobného i na desktopu. Konkrétně Fedora má v sobě docela hodně patchů a modulů pro běžné desktopové aplikace.
Podpora SElinuxu ve Fedore je spickova, proto jsem ji prepnul pouze do modu, kde upozornuje a nezasahuje... na centosu/rhelu je to jiny kafe, tam to uz je odladeny a ma to tam smysl...
No nevim...
Meli jsme vice (a hnusnych) problemu s RedHatem a Centosem, nez s Fedorou (0, pokud teda nepocitam ty z vlastni blbosti)
Souhlasim s tim, ze Fedora je bleeding edge a obcas i "bleeding user" na desktopu, tam je lepsi pockat par tydnu po release na update, ale na serverech, kde nepouzivam GUI je to rock stable. A co se tyce kratkeho zivotniho cyklu Fedory, to resi preupgrade. Prejit na novou verzi neni omnoho vetsi pruda, nez normalni updaty v ramci verze (kde pruda = 0). Nechci delat reklamu Fedore, ale musim se priznat, ze mne mrzi, ze v anketach na ABClinuxu neziskava lepsi skore. Myslim, ze ji po pravu patri. Sorry za offtopic poznamku.
no ja si dovolim pokracovat v tom mirnem OT...
Fedoru pouzivam pouze na desktopu, takze nemuzu soudit jak na serveru bez gui, ale zrovna na desktopu se mi obcas ty zasahy SELinuxu nelibily, tak jsem ho vypnul stale spise zastavam klasicky nazor, ze se spatne nastavenymi pravy te SELinux nezachrani, takze selinux povazuji spis jako bezpecnostni doplnek nez jako nutnou soucast...
Možná o tom bude řeč dále, ale vzhledem k tomu, že v článku bylo jako první uvedeno generování nových politik pomocí audit2allow, tak se musím ozvat. Taky jsem takhle začal, než jsem zjistil, že daleko rozumnější je použít předpřipravené proměnně (setsebool), které řeší většinu standardních situací. Nebo změnit (chcon) patřičně kontext příslušných souborů či adresářů (ls -Z). Pak není třeba vpodstatě nikdy audit2allow. (Teda pokud u Debianu něco jako setsebool existuje)
Tak prominte, puvodni clanek na blogu jsem necetl, tedy ani komentare, kde je to rozebirano. Jinak bych pouzil jen "+1" pod komentar od Sinuheta.
Tazko povedat, v kazdom pripade Novell este v r. 2007 prepustil AppArmor tim, a Crispin Cowan (leader) uz robi v Microsofte. Ostatni clenovia timu sice zalozili spolocnost, kde chceli vo vyvoji pokracovat (Mercenary linux), ale jej web je uz presmerovany na pornostranky. Release cyklus AppArmor tiez ustrnul hlboko v roku 2008...
Od Fedory 10 jsem viděl taky skvělou věc, co uživateli hodně pomůže, a to je applet setrobuleshoot. Při jakémkoliv zamítnutí kvuli SELinuxu vyskočí hned hláška, a i s radami, co případně dělat.
Díky tomuhle už neni SELinux jen taková podivnost, kvuli který všechno nefunguje , uživatel ví hned, pokud se něco děje.
Zaujímalo by ma ako to funguje, akože podpora SELinuxu je už v jadre a doinštaláciou pár balíčkou sa to správadzkuje? je to modul jadra? alebo čo to je?