Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Já sám jsem několik programů z těchto řad vyzkoušel, ale nejvíce si mě získal Pure-FTPd, který je šířen pod licencí GPL. Měl jsem dva základní požadavky - podpora virtuálních uživatelů (nikoliv unixových) umístěných v PostgreSQL nebo MySQL databázi a možnost virtuálních kvót. Obojí Pure-fptd splňuje a umí toho i mnohem více. Tento návod popisuje instalaci Pure-FTPd s podporou PostgreSQL na Debianu. Základním předpokladem je, že máte nainstalovanou PostgreSQL a zvládáte alespoň základní operace s ní (vytvoření databáze, tabulky a její naplnění daty). Pokud preferujete MySQL, můžete tento návod s malými úpravami použít také, protože se jedná o velmi podobnou konfiguraci.
Začneme instalací z repozitářů příkazem:
apt-get install pure-ftpd-postgresql
Nejdříve je třeba nastavit, aby Pure-FTPd běžel trvale jako démon. To provedeme editací souboru /etc/default/pure-ftpd-common, kde nastavíme parametr STANDALONE_OR_INETD=standalone. Rovněž je nasnadě zapnout volbu VIRTUALCHROOT=true, aby nám nikdo nemohl "běhat" po celém filesystému.
Teď přistoupíme k základní konfiguraci, editujeme soubor /etc/pure-ftpd/db/postgresql.conf. V první řadě musíme programu říci, na kterou databázi a jakým způsobem se má připojit:
PGSQLServer localhost PGSQLPort 5432 PGSQLUser ftpdaemon PGSQLPassword tajneheslo PGSQLDatabase ftp
Nenašel jsem způsob, jak heslo pro přístup k databázi uložit šifrovaně, proto zdůrazňuji, abyste výše zmíněného uživatele ftpdaemon vytvořili pouze s právy pro čtení a souboru postgresql.conf nastavili práva 600.
V dalších odstavcích už konfigurujeme samotné chování FTP. Nastavíme, že uživatelská hesla v databázi jsou pouze MD5 hashe. Můžete také použít volbu cleartext, ale není příliš chytré ukládat hesla v plaintextu.
PGSQLCrypt md5
Následuje SQL dotaz, který při autentizaci hledá platného uživatele s odpovídajícím heslem:
PGSQLGetPW SELECT password FROM users WHERE username='\L' AND active='true'
Další dva dotazy načítají user ID a group ID autentizovaného uživatele, což oceníte zejména při konfiguracích s větším počtem uživatelů:
PGSQLGetUID SELECT uid FROM users WHERE username='\L' PGSQLGetGID SELECT gid FROM users WHERE username='\L'
Pokud je nepotřebujete využívat, můžete nastavit tyto parametry, kterými dosáhneme statického nastavení:
PGSQLDefaultUID 2000 PGSQLDefaultGID 2000
Možná je vhodné poznamenat, že tyto dva parametry přepisují předchozí PGSQLGetUID a PGSQLGetGID
Nyní cesta k adresáři, do kterého bude mít uživatel přístup:
PGSQLGetDir SELECT directory FROM users WHERE username='\L'
A nakonec zde máme volby kvót a omezování uploadu/downloadu:
PGSQLGetQTAFS SELECT quotafiles FROM users WHERE username='\L' PGSQLGetQTASZ SELECT quotasize FROM users WHERE username='\L' PGSQLGetBandwidthUL SELECT uploadbw FROM users WHERE username='\L' PGSQLGetBandwidthDL SELECT downloadbw FROM users WHERE username='\L'
Soubor uložíme a přejdeme k dalšímu kroku.
Nejdříve vytvoříme tabulku users se strukturou odpovídající předchozí konfiguraci:
CREATE TABLE "public"."users" (
"id" SERIAL,
"username" VARCHAR(20) NOT NULL,
"password" VARCHAR(32) NOT NULL,
"active" BOOLEAN DEFAULT true,
"uid" INTEGER DEFAULT 2000,
"gid" INTEGER DEFAULT 2000,
"directory" VARCHAR(100) NOT NULL,
"quotasize" INTEGER DEFAULT 0,
"quotafiles" INTEGER DEFAULT 0,
"downloadbw" INTEGER DEFAULT 0,
"uploadbw" INTEGER DEFAULT 0,
CONSTRAINT "users_pkey" PRIMARY KEY("id")
) WITH OIDS;
Poté do tabulky přidáme jednoho uživatele na vyzkoušení:
INSERT INTO public.users (username, "password", active, uid, gid, directory, quotasize, quotafiles, downloadbw, uploadbw)
VALUES ('test','098f6bcd4621d373cade4e832627b4f6',true,2001,2001,'/var/www/test',10,0,50,0);
Tímto jsme vytvořili uživatele test s heslem test, uživatel je aktivní, jeho UID i GID je 2001, má přístup do složky /var/www/test, kde má k dispozici 10 MB prostotu, počet souborů pro něj není omezen, stahovat může rychlostí 50 kB/s a uploadovat neomezenou rychlostí.
Nyní spustíme démona #/etc/init.d/pure-ftpd-postgresql start. Odpovědí by mělo být přibližně toto:
Starting ftp server: Running: /usr/sbin/pure-ftpd-postgresql-virtualchroot -l pgsql:/etc/pure-ftpd/db/postgresql.conf -l pam -u 1000 -E -O clf:/var/log/pure-ftpd/transfer.log -B
Nyní, jestliže jste nikde neudělali chybu, by mělo fungovat připojení přes standardní port 21. V případě neúspěchu si zkontrolujte, zda jste zmíněnou složku uživatele nezapomněli vytvořit, popřípadě při připojování sledujte syslog (tail -F /var/log/syslog). Pokud funguje vše, kromě omezování rychlosti, popř. i diskových kvót, zkontrolujte si řádně postgresql.conf, zda v něm jsou stejné názvy sloupců jako v databázi. Pokud se nedaří ani inicializovat spojení, není na škodu pokus o připojení telnetem přímo na stroji s FTP.
telnet localhost 21
Měl by vám odpovědět přibližně takto:
220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 2 of 50 allowed. 220-Local time is now 14:31. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity.
V případě, že se tak nestane, je také možné, že se vám zobrazí nějaká klíčová chybová hláška, která může významně pomoci s hledáním příčiny. Mám zkušenosti, že ani logování na vyšší úrovni nic nezaznamenalo, ale v telnetu mi server odpověděl chybovým hlášením.
Pure-FTPd umí také zobrazovat skryté soubory, neboli soubory, jejichž název začíná tečkou. To ocení zejména provozovatelé webových serverů. Na mnoha hostingách tato funkce chybí, což občas může způsobit spoustu problémů, pokud nevidíte soubor .htaccess. Takže jak na to? Jednoduše!
echo yes > /etc/pure-ftpd/conf/DisplayDotFiles
A restartujeme démona:
/etc/init.d/pure-ftpd-postresql restart
Také vám při větším počtu uživatelů vadí, že má každý svoji vlastní složku a že ji musíte vždy s odpovídajícími právy vytvořit? K tomu je tady možnost existence dalšího konfiguračního souboru:
echo yes > /etc/pure-ftpd/conf/CreateHomeDir
Opět nezapomeňte opět restartovat démona.
Jsou případy, kdy nechceme, aby si uživatel mohl měnit přístupová práva souborů příkazem chmod:
echo yes > /etc/pure-ftpd/conf/NoChmod
Zrychlení FTP lze docílit vypnutím reverzního DNS překladu, který v drtivé většině případů nepotřebujeme:
echo yes > /etc/pure-ftpd/conf/DontResolve
Ve výchozím nastavení Pure-FTPd odpojuje relace neaktivní 15 minut. To můžete změnit takto:
echo 30 > /etc/pure-ftpd/conf/MaxIdleTime
V tomto případě jsme dobu prodloužili na 30 minut.
Pure-FTPd normálně povoluje 50 současných spojení. Pokud jich chcete povolit například 100, zadejte:
echo 100 > /etc/pure-ftpd/conf/MaxClientsNumber
Může dojít i k situacím, kdy nechceme, aby uživatelé mohl zasahovat do souborů začínajících tečkou.
echo yes > /etc/pure-ftpd/conf/ProhibitDotFilesWrite
Podobně funguje také parametr ProhibitDotFilesRead.
Užitečná funkce na veřejných FTP určených k uploadování anonymními uživateli.
echo yes > /etc/pure-ftpd/conf/KeepAllFiles
U této volby jsem se setkal s nemožností uploadu souboru začínajícího tečkou.
Pure-FTPd je mocný nástroj. Umí toho mnohem více, v tomto článku jsem se pokusil o výtah toho všeobecně nejvyužitelnějšího. Jako velké plus vidím možnost postavení si vlastních SQL dotazů pro autentizaci, což nám může umožnit například omezování IP adres, ze kterých se jednotliví uživatelé mohou připojovat. V manuálu naleznete spoustu dalších parametrů týkajících se např. anonymních uživatelů, nastavení globálních diskových kvót, masek pro nové soubory, TLS apod. Věřím, že si u nejednoho uživatele či správce linuxového systému najde domov.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
'; drop table users;(brať iba ako príklad, s pg nemám žiadne skúsenosti). Odporúčam prečítať si minimálne definíciu na wikipedii.
Jestli si myslíš, že SQL injection se týká jen webu, tak aby ses někdy krutě nedivil... Myslíš si snad, že když zrovna nepíšeš web, tak žádné ošetřování dat dělat nemusíš? (Samozřejmě to záleží na použité klientské knihovně, pokud se SQL příkaz sestavuje funkcí ve stylu printf nebo se používají parametrizované dotazy, pak musí být umění to udělat špatně.)
SELECT password FROM users WHERE username='\L' AND active='true'SQL injekce není jen záležitostí webu - týká se každého softwaru, který má nějaké vstupy od uživatele a ty se dostávají do SQL dotazů. Docela bych se divil, kdyby v tomto FTP serveru možnost SQL injekce nebyla ošetřená - to by byl hodně velký amatérismus, ale i to se stává. Parametry dotazů se zásadně mají předávat jako parametry, nikoli slepovat SQL příkaz jako kousky textu!
Možná je na mě moc brzo ráno a ještě mi to nemyslí, ale domnívám se, že každé znamená něco trochu jiného
Ale pro praktické použití bych příště uvítal i obdobný postup pro SFTP, přecejen význam FTP je dneska spíš jen pro nechráněný anonymní přístup.