Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
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!