SteamOS (Wikipedie) byl vydán ve verzi 3.2. Přehled novinek v oznámení.
SecureDrop (Wikipedie, GitHub) je open source platforma pro bezpečné a důvěrné sdílení informací mezi žurnalisty a jejich zdroji. Vydána byla nová verze 2.4.0.
Společnost Proton AG představila novinky ve svých službách Proton Mail, Proton VPN, Proton Calendar a Proton Drive. Služby jsou přístupné z nového webu proton.me. Aktualizován byl ceník. Představen nový vizuál.
Týden po vydání Red Hat Enterprise Linux (RHEL) 9.0 byl vydán jeho klon AlmaLinux 9. Podrobnosti v poznámkách k vydání.
Broadcom kupuje firmu VMware za 61 miliard dolarů.
Google Chrome 102 byl s verzí 102.0.5005.61 prohlášen za stabilní. Opraveno bylo 32 bezpečnostních chyb. Přehled novinek na Chromium Blogu nebo na Chrome Platform Status. Oficiální přehled novinek (New in Chrome, YouTube) zatím nebyl publikován. Přehled novinek v nástrojích pro vývojáře je bez videa.
The Open Source Software Security Mobilization Plan (pdf) je konsorciem The Linux Foundation zastřešen plán na zvýšení bezpečnosti open source softwaru.
Minulý týden proběhla hackerská soutěž Pwn2Own Vancouver 2022. Máte-li na starost bezpečnost IT, výsledky vás nepotěší. Microsoft Teams, Oracle Virtualbox, Mozilla Firefox, Microsoft Windows 11, Ubuntu Desktop, Apple Safari, Tesla Model 3 Infotainment System. Vše potopeno. Demonstrované bezpečnostní chyby ve Firefoxu jsou již opraveny ve verzi 100.0.2.
Lokální úložiště Stratis (Wikipedie), alternativa k úložištím s ZFS a Btrfs, bylo vydáno ve verzi 3.1.0. Přehled novinek v poznámkách k vydání.
Sdružení CZ.NIC dnes vrátilo do zóny dříve vyřazená jména domén dezinformačních webů.
Toto je postup, jak zprovoznit https s certifikátem od Let's encrypt během deseti minut (pokud vám nevadí spouštět klienta pod právy roota a shodit na chvilku web server).
Jak to funguje? Certifikační autorita Let's encrypt musí ověřit, že daný web vlastníte. Podle mého chápání ověřuje oprávněnost dotazu tak, že pošle klientovi nějaké tajmeství a klient jej vystaví na tom daném webu (na nějaké smluvené adrese) a tím prokáže, že daný web opravdu ovládá. V normálním případě tvoří pro Let's encrypt klienta největší překážku v cestě právě web server, který běží na dané IP adrese. Klient zná různé metody, jak využít k nasdílení tajemství běžící webserver (umí několik webserverů a zná jejich konfigurace), ale stejně je tento způsob nespolehlivý. Například mně vypršel certifikát od StartSSL a nešifrované HTTP neprovozuji, stejnou paseku může způsobit například mod_rewrite apod.
Jako nejjednodušší a nejblbuvzdornější metoda, jak to celé vyřešit, mi přišlo prostě shodit na chvilku apache a nechat klienta spustit si vlastní server (to je jedna z cest, jak může klient tajmeství na chvilku vystavit), počkat na doručení klíčů a pak zase nahodit apache. Pro výměnu SSL klíče je potřeba apache shodit tak jako tak (opravdu, drží si jej v paměti, změna souboru nestačí), takže těch pár sekund navíc nikoho nezabije. Má to nejméně parametrů a nejméně věcí se může pokazit.
Teď postup, jak na to. Nejdřív stáhneme klienta.
git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt
Pak to normálně pod rootem spustíme, srabíci si mohou vytvořit vlastního uživatele. Skript si nainstaluje pár balíků, nic hrozného se u mě nedělo. Po samotném spuštění se může objevit menu a člověk se může možná prakticky "proklikat" až k výsledku, mě ale následující krok skončil na tom, že letsencrypt nerozumí konfiguraci mého apache. První spuštění provedeme pomocí tohoto:
./letsencrypt-auto
Pokud to aspoň stáhne balíky, je to OK. Pro vytvoření samotného certifikátu potřebujeme (jak jsem vysvětlil dříve) shodit apache.
service apache2 stop
...a jdeme na to:
./letsencrypt-auto certonly --standalone --email muj@email.cz -d muj.server.cz
Co to znamená? certonly je, že chci jenom certifikáty (o úpravy konfigurace si neprosím), --standalone znamená "použij pro nasdílení tajemství vlastní webserver", email je povinný pro Let's encrypt autoritu a pak už je jenom suše jméno serveru pro certifikát.
Co se stane? Klient požádá o certifikát, dostane tajemství, to vystaví, certifikační autorita porovná své tajemství s vystaveným, potvrdí si tím pravost serveru, vystaví certifikáty, pošle je klientovi, ten je uloží do /etc/letsencrypt/live/muj.server.cz - a to vše neinteraktivně. Pokud chci takto vystavený certifikát používat, zavedu si do apache něco jako:
<VirtualHost *:443> SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLCertificateFile /etc/letsencrypt/live/muj.server.cz/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/muj.server.cz/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/muj.server.cz/chain.pem ServerName muj.server.cz ... </VirtualHost>
...a pak spustit apache. Let's encrypt vytváří certifikáty jenom na tři měsíce, takže bychom je měli nějak pravidelně obnovovat. Pro to si můžeme vytvořit skript například takovýto:
#!/bin/sh /etc/init.d/apache2 stop cd /root/letsencrypt ./letsencrypt-auto certonly \ --renew-by-default --standalone \ --email muj@email.cz \ -d muj.server.cz /etc/init.d/apache2 start
Jak už jsem psal výše, restart apache je stejně nutný, takže to je vlastně celé OK. Toto uložíme pod názvem "autoupdate" a dáme to do cronu (pro roota) třeba takto:
10 4 8 */2 * /root/letsencrypt/autoupdate
...a je vystaráno. Pokud se něco rozbije, prostě si to člověk spustí ručně.
Disclaimer: Spouštět pod právy roota soubory stažené z internetu není obecně moc dobrý nápad, jak to celé udělat bezpečně(ji) je ponecháno jako cvičení čtenáři.
Tiskni
Sdílej:
apt-get install letsencryptA není potřeba shazovat server. Ještě jednodušší je nastavit, aby
/.well-known
na všech virtualhostech šlo do adresáře .well-known v defaultním webroot webserveru a na tento webroot pak poslat letsencrypt. Nevyžaduje to žádnou interakci s webserverem a můžeš to spouštět z cronu co pár týdnů. Letsencrypt si tam vytvoří soubor v podadresáři acme-challenge, server autority to zkontroluje a je hotovo.
vim ~/.emacs
Pro výměnu SSL klíče je potřeba apache shodit tak jako tak (opravdu, drží si jej v paměti, změna souboru nestačí)mě vždy stačil "reload", tedy
service apache2 reload
(na apache 2.2.22).
Ještě nepamatuju si, jestli to po mě chtělo i při druhém a dalším spuštění, ale při prvním určitě a proto používám argument --agree-tos
na souhlas s podmínkami služby, aby se to neptalo.
Taky je možné použít skript letsencrypt-renewer
, který projede všechny získané certifikáty a obnoví ty, které mají 30 dní do vypršení (použije identické argumenty, jako při prvním vystavení certifikátu, zaznamenává si je totiž do souboru).
Nakonec je potřeba si dát pozor, že v současné době je na jednu registrovanou doménu možné registrovat maximálně 5 certifikátů za posledních 7 dní (i když tyto limity mají kvůli rozjezdu a budou je postupně zvedat). Registrovaná doména je to, co si člověk registruje u registrátora (takže ne její subdomény), a do limitu pro jednu registrovanou doménu se počítá jakýkoliv certifikát, kde je použita daná registrovaná doména (ať už přímo, nebo jako subdoména). Takže pozor při experimentování s obnovováním (aneb hádejte, co se mi před 2 týdny stalo --test-cert
).
vim ~/.emacs
apt-get install libapache2-mod-macro; a2enmod macro
, pokud je to Apache starší než 2.4):
<Macro LetsEncrypt $host>
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/$host/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/$host/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/$host/chain.pem
</Macro>
Dá se to dát např. do /etc/apache2/letsencrypt.local.conf
Pak už ve virtuálním hostu stačí jen:
Use LetsEncrypt muj.server.cz
vim ~/.emacs
/etc/apache2/letsencrypt.local.conf
Vypadlo mi: /etc/apache2/conf.d/letsencrypt.local.conf
vim ~/.emacs
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLv3 a RC4 nebrat!
Pokud chcete uspokojivé bezpečné nastavení pro většinu klientů, lze se řídit doporučením Mozilly: https://mozilla.github.io/server-side-tls/ssl-config-generator/
To chcete říct, že 10 minut je zanedbatelný množství času?nene, neni. Asi to bude znit blbe, ale ja v tomhle ohledu casto uvazuju stejne jako Homer