Byla vydána nová verze 4.5 (𝕏, Bluesky) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
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.
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!