Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Je to jednoduché, jednak v tom hrají roli pocity, kdy někdo nemusí chtít posílat data přes třetí stranu. Další důvod je zbytečná saturace internetové konektivity. Další může být to, že chceme uživatelům povolit jen výměnu souborů uvnitř sítě bez možnosti to poslat ven (třeba uživatelé nemají ani přístup na internet). Důvodů může být mnoho.
Chceme, aby to bylo bezpečné, vše šifrované, aby to bylo nenáročné na provoz, aby to bylo pro uživatele jednoduché atd. Namátkou jsem narazil kdysi na tyto projekty:
Jak nadpis napovídá, vybral jsem si tento projekt. Je jednoduchý, vyvíjí se, php zná každý, takže v případě potřeby interní devíci mohou provést úpravy apod.
Fce, které projekt podporuje:
Na tom není nic bestiálního. Používám Debian, takže návod je pro něj, ale vesměs je to na všech distribucích stejné. Stačí Apache + php.
# stažení zdrojáků cd /var/www git clone https://gitlab.com/mojo42/Jirafeau.git # nastavení oprávnění: chown -R www-data:www-data Jirafeau # základní nastavení nano Jirafeau/lib/config.original.php ... $cfg['web_root'] = 'https://filechange.corp.devaine.cz/'; ... $cfg['var_root'] = '/var/www/data/'; ... $cfg['organisation'] = 'Devaine a.s.'; ... $cfg['contactperson'] = 'admin@devaine.cz' ... $cfg['enable_crypt'] = true; ...
Následně nastavíme web na apache:
# /etc/apache2/sites-available/filechange.corp.devaine.cz.conf <VirtualHost *:80> ServerAdmin admin@devaine.cz ServerName filechange.corp.devaine.cz VirtualDocumentRoot /var/www/Jirafeau/ <Directory /var/www/Jirafeau/> AllowOverride All Options -Indexes </Directory> <Directory /var/www/Jirafeau/data> AllowOverride All Options -Indexes order deny,allow deny from all </Directory> CustomLog /var/log/apache2/filechange.corp.devaine.cz-access.log common ErrorLog /var/log/apache2/filechange.corp.devaine.cz-error.log </VirtualHost> <VirtualHost *:443> ServerAdmin admin@devaine.cz ServerName filechange.corp.devaine.cz VirtualDocumentRoot /var/www/Jirafeau/ <Directory /var/www/Jirafeau/> AllowOverride All Options -Indexes </Directory> <Directory /var/www/Jirafeau/data> AllowOverride All Options -Indexes order deny,allow deny from all </Directory> CustomLog /var/log/apache2/filechange.corp.devaine.cz-access.log common ErrorLog /var/log/apache2/filechange.corp.devaine.cz-error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/filechange.corp.devaine.cz.cer SSLCertificateKeyFile /etc/apache2/ssl/filechange.corp.devaine.cz.pem SSLCertificateChainFile /etc/apache2/ssl/DevaineRootCA-G2.crt </VirtualHost>
Povolíme konfiguraci a reloadneme apache:
a2ensite filechange.corp.devaine.cz /etc/init.d/apache2 reload
Otevřeme si web "https://filechange.corp.devaine.cz" a projdeme jednoduchým průvodcem nastavení. Nakonfigurováno jest:
I když je povolené šifrování v konfiguráku, tak nemusí fungovat a na pozadí nemusí šifrovat. Pro šifrování je vyžadován "mcrypt" modul do php. Tento modul je ale už obsolete. Nicméně lze stále používat / nainstalovat ho :
# instalace mcrypt pecl install mcrypt # konfigurace pro php: nano /etc/php/7.4/apache2/conf.d/40-mcrypt.ini extension=mcrypt.so # restart apache /etc/init.d/apache2 restart
To, zda je mcrypt v provozu, lze zjistit přes phpinfo.
To, zda funguje šifrování lze ověřit tak, že admin stažený soubor přes admin menu neotevře, jelikož nemá správnou url, jejíž součástí je dešifrovací klíč.
Protože nastává problém, tak je v plánu se modulu mcrypt zbavit a používat místo něj openssl, viz ticket: #295. Každopádně mcrypt ještě funguje minimálně s php 8.1.
Možná také bude někdy implementováno šifrování na straně klienta, viz #10. V některých případech by to bylo lepší, než na straně serveru. Třeba pokud máte koupenou malou VM s jedním core :).
Na toto je třeba zápis do cronu (pod uživatelem www-data, jelikož pod ním nám běží apache):
crontab -u www-data -e # deaktivujeme emailové notifikace MAILTO="" # m h dom mon dow command */10 * * * * php /var/www/Jirafeau/admin.php clean_expired */15 * * * * php /var/www/Jirafeau/admin.php clean_asyn
Je dostupné na adrese /admin.php
Lze v něm smazat nějaký link, nebo se podívat na přehled nahraných souborů. Soubory ale otevřít nejdou, protože jsou zašifrovány.
1) I když admin menu neumí nic, tak pro jistotu povolíme jen pro skutečného admina. Přidáme si tedy do konfigurace web serveru pravidlo (192.168.1.1 je povolená adresa pro přístup):
<ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(/admin.php).*$ RewriteCond %{REMOTE_ADDR} !=192.168.1.1 # or this ip #RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx # if not fail RewriteRule ^.*$ / [F] </ifmodule>
2) Další problém může být to, že publikujeme ".git", takže šup s ním ven dalším pravidlem:
RedirectMatch 404 /\.git
3) Pokud je služba veřejná, může nám jí kdokoli zahltit. Povolíme tedy upload jen adresám našich poboček a zbytek zakážeme. To se dělá v konfiguraci Jirafeau
nano lib/config.local.php ... 'upload_password' => array ( ), 'upload_ip' => array ('192.168.1.2','192.168.1.2','192.168.1.3'), 'upload_ip_nopassword' => array ('192.168.1.2','192.168.1.2','192.168.1.3'), ...
4) Chybí kontrola uploadovaných souborů. To znamená, že útočník může nahrát třeba eicar soubor. Proti tomu existuje opatření, což je vypnutí náhledů uploadnutých souborů. To se opět dělá v konfiguračním souboru:
'preview' => false,
5) Nesouvisí tolik s bezpečností, ale pokud neprovozujete php nativně pod Apache, a budete uploadovat velké soubory, může se vám vytimeoutovat spojení na fastcgi, či jinde. Je na to tedy třeba myslet.
Apache:
# /etc/apache2/sites-available/filechange.corp.devaine.cz.conf <VirtualHost *:80> ServerAdmin admin@devaine.cz ServerName filechange.corp.devaine.cz VirtualDocumentRoot /var/www/Jirafeau/ # prevent to access to git repository RedirectMatch 404 /\.git <ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(/admin.php).*$ RewriteCond %{REMOTE_ADDR} !=192.168.1.1 # or this ip #RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx # if not fail RewriteRule ^.*$ / [F] </ifmodule> <Directory /var/www/Jirafeau/> AllowOverride All Options -Indexes </Directory> <Directory /var/www/Jirafeau/data> AllowOverride All Options -Indexes order deny,allow deny from all </Directory> CustomLog /var/log/apache2/filechange.corp.devaine.cz-access.log common ErrorLog /var/log/apache2/filechange.corp.devaine.cz-error.log </VirtualHost> <VirtualHost *:443> ServerAdmin admin@devaine.cz ServerName filechange.corp.devaine.cz VirtualDocumentRoot /var/www/Jirafeau/ # prevent to access to git repository RedirectMatch 404 /\.git <ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(/admin.php).*$ RewriteCond %{REMOTE_ADDR} !=192.168.1.1 # or this ip #RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx # if not fail RewriteRule ^.*$ / [F] </ifmodule> <Directory /var/www/Jirafeau/> AllowOverride All Options -Indexes </Directory> <Directory /var/www/Jirafeau/data> AllowOverride All Options -Indexes order deny,allow deny from all </Directory> CustomLog /var/log/apache2/filechange.corp.devaine.cz-access.log common ErrorLog /var/log/apache2/filechange.corp.devaine.cz-error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/filechange.corp.devaine.cz.cer SSLCertificateKeyFile /etc/apache2/ssl/filechange.corp.devaine.cz.pem SSLCertificateChainFile /etc/apache2/ssl/DevaineRootCA-G2.crt </VirtualHost>
Jirafeau config
<?php /* FIX ME */ $cfg = array ( 'web_root' => 'https://filechange.corp.devaine.cz', 'var_root' => '/var/www/Jirafeau/data/', 'lang' => 'auto', 'style' => 'devaine', 'organisation' => ''Devaine a.s.', 'contactperson' => 'admin@devaine.cz', 'title' => '', 'preview' => false, 'enable_crypt' => true, 'link_name_length' => 8, 'upload_password' => array ( ), 'upload_ip' => array ('192.168.1.2','192.168.1.2','192.168.1.3' ), 'upload_ip_nopassword' => array ('192.168.1.2','192.168.1.2','192.168.1.3' ), 'admin_password' => '701hgfhgfhgfhgfhgffdsgf78bc43dfecae8fdsfdsfdsfsd5fewfewfw', 'admin_http_auth_user' => 'admin', 'availabilities' => array ( 'minute' => true, 'hour' => true, 'day' => true, 'week' => true, 'month' => true, 'quarter' => false, 'year' => false, 'none' => false, ), 'availability_default' => 'month', 'maximal_upload_size' => 0, 'proxy_ip' => array ( ), 'installation_done' => true, );
Je to hodně malý projekt, velmi nenáročný a jednoduchý. Pro větší nasazení nebude vhodnů kvůli svým bezpečnostním nedostatkům a kvůli i chybějícím funkcím (např. šifrování na straně klienta). Pro mé nasazení je ale plně vhodný.
Zdar Max
Tiskni Sdílej:
#
. Není klíč za #?
třeba uživatelé nemají ani přístup na internet).zajímavá nacistická firma