abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 2
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 564 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    ProFTPD + MySQL + Quota + šifrování

    3. 7. 2009 | Max Devaine | Sítě | 26781×

    FTP server ProFTPD – MySQL, kvóty, šifrování (FTPS), práva. Příprava prostředí: Kompilace ze zdrojových kodů a moduly třetích stran; Příprava MySQL; Nastavení ProFTPD. FTP klienty: FileZilla; Krusader (kio-slaves); gFTP. Práva k souborům, adresářům a .ftpaccess.

    Obsah

    Úvod

    Na internetu je hodně návodů, jak nainstalovat FTP server ProFTPD, ale ani jeden mi nepřijde zcela kompletní, polopatický a hlavně v češtině, aby jej každý pochopil. Delší dobu jsem přemýšlel, že napíši nějaké pořádné howto na toto téma. Nakonec jsem si našel čas a sepsal něco, co by měl pochopit úplně každý.

    ProFTPD je velmi modulární a nastavitelný FTP server, který je šířen pod licencí GPL. V článku si krok za krokem vysvětlíme, jak ProFTPD nastavit, jak funguje propojení s databází MySQL (uživatelé nemají systémové účty, veškerá správa uživatelů a jejich nastavení je uloženo v databázi MySQL a je jednoduše spravováno třeba přes phpMyAdmin). Podíváme se samozřejmě i na nastavení kvót. Jak už bylo řečeno, jednou z jeho výhod je i modulárnost, tudíž jsou dostupné i moduly třetích stran. Do článku jsem tedy nakonec zahrnul i vlastní kompilaci ProFTPD včetně několika vybraných modulů, jež nejsou přímo jeho součástí. Pro začátečníky uvedu i nějaké tipy a triky pro nastavení uživatelských práv, omezení trafiku a příklady k jednodlivým externím modulům.

    Mimo ProFTPD je ještě velmi populární FTP server PureFTPd. ProFTPD jsem si vybral jednoduše proto, že ho delší čas používám. Stejně tak, jako jsem si vybral propojení s MySQL, a ne LDAP. Vše má své pro i proti, rozhodnutí je vždy na vás. V článku je vše postaveno na distribuci GNU/Debian (Lenny), ale věřím, že nebude problém použít tento návod i na jiných distribucích. Směle tedy do toho.

    Nezbytné vysvětlivky – velmi stručně a rychle

    link
    FTP (File Transfer Protocol)

    Nešifrovaný protokol pro přenos dat. Přenosová rychlost je dobrá, nicméně není určen k přenosu souborů o velké velikosti (může docházet k nekonzistenci dat, protokol není navržen pro možné výpadky spojení atd.).

    Je velmi pomalý při přenosu velkého počtu malých souborů (stále navazuje spojení atd.). Spojení probíhá na portu 21, samotný přenos dat pak na portu 20. Tzn., že ke komunikaci používá více portů.

    FTP může probíhat ve dvou základních režimech:

    • aktivní: Server navazuje spojení (pro přenos dat: data connection), klient naslouchá, komunikace běží klasicky na portech 21 a 20. Problém nastavá u NATu.
    • pasivní: Datové spojení navazuje klient, a to na portech vyšších jak 1024 (na serveru je definován rozsah portů, třeba několik stovek).
    FTPS (File Transfer Protocol over SSL/TLS)

    Rozšíření protokolu FTP o SSL/TLS šifrování. Začínají být problémy při traverzi NAT. Jsou dvě metody:

    • Explicitní FTPS (FTPES): Klient se připojí na port 21, zahajuje nešifrovanou komunikaci a žádá o aktivaci šifrovaného spojení TLS.
    • Implicitní FTPS: Starší způsob. Klient se připojuje na jiný port (většinou 990) a aktivace SSL je provedena před zasláním jakéhokoliv příkazu.
    Secure FTP (FTP přes SSH)

    Nejdříve se vytvoří pomocí SSH tunel, přes který poté běží samotná komunikace FTP. Dost lidí zaměňuje „Secure FTP“ a „SFTP“. Tak pozor na to, jedná se o dvě zcela rozdílné věci.

    SFTP (SSH File Transfer Protocol)

    Čím dál více rozšířený protokol pro přenos dat. S klasickým FTP již nemá nic společného. SFTP k autentizaci a přenosu dat používá většinou protokol SSH-2. Je vlastně takovou náhradou za velmi jednoduchý protokol scp.

    My se tedy v článku zaměříme na FTP a FTPS s explicitním šifrováním.

    Příprava prostředí

    link

    Nejdříve nainstalujeme příslušné balíčky (typ spouštění ProFTPD nastavíme jako standalone):

    aptitude install mysql-server mysql-client libmysqlclient12-dev proftpd-basic proftpd-mod-mysql
    

    Dále vytvoříme příslušnou skupinu:

    groupadd -g 2001 proftpd

    Instalací ProFTPD by se nám měl automaticky vytvořit i uživatel; komu ne, nechť si ho vytvoří:

    useradd proftpd

    Uživateli nastavíme domovský adresář a přiřadíme ho k příslušné skupině:

    usermod -d /home/ftp -g proftpd -u 2001 proftpd -s /bin/false
    chown -R proftpd:proftpd /home/ftp/
    

    Nyní máme vytvořenou skupinu a uživatele, pod nimiž bude server běžet. Ještě musíme vytvořit uživatele a skupinu, pod jejichž právami si budou klienti ukládat svá data na ftp server.

    groupadd ftpgroup -g 2002
    useradd ftpuser -d /home/ftp -u 2002 -g ftpgroup -s /bin/false
    

    Kompilace ze zdrojových kodů a moduly třetích stran

    link

    Pro ukázku možností ProFTPD jsem si zvolil kompilaci se všemi možnými standardními moduly a následujícími moduly třetích stran:

    mod_md5 (instalace)
    Tento modul umožňuje automaticky po uploadu souboru na ftp vytvořit soubor, ve kterém bude md5 hash uploadovaného souboru.
    mod_sftp (instalace) a mod_sftp_sql (instalace)
    Tyto dva moduly zahrnují podporu SFTP (s SQL) do ProFTPD. Výše jsme si říkali, že protokol SFTP nemá nic s ftp společného, což je pravda, ale tento modul je „obal“ do ssh. Použitím tohoto modulu dosáhneme té výhody, že budeme moci využít některá nastavení ProFTPD.
    mod_vroot (instalace)
    Tento modul umožňuje podporu virtuálního chrootu klientů bez potřeby rootovských práv.

    Další moduly je možno vidět zde: Modules.

    Nejdříve si nainstalujeme programy a knihovny potřebné pro kompilaci:

    aptitude install gcc g++ make bzip2 libmysql++-dev postgresql-server-dev-8.3 libldap2-dev libwrap0-dev checkinstall
    

    Dále stáhnout a rozbalit archiv. Kdo chce přímo vývojovou verzi, tak si jí může stáhnout přímo z cvs:

    aptitude install cvs
    cvs -d:pserver:anonymous@proftp.cvs.sourceforge.net:2401/cvsroot/proftp -z3 co proftpd
    

    Já mám odzkoušenou současnou stabilní verzi:

    cd /usr/local/src/
    wget -c ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2.tar.bz2
    tar xvfj proftpd-1.3.2.tar.bz2
    

    Stáhneme si moduly, rozbalíme a poté nakopíruje do příslušných míst:

    wget -c http://www.castaglia.org/proftpd/modules/proftpd-mod-md5-0.3.3.tar.gz
    wget -c http://www.castaglia.org/proftpd/modules/proftpd-mod-sftp-0.9.6.tar.gz
    wget -c http://www.castaglia.org/proftpd/modules/proftpd-mod-sftp-sql-0.1.tar.gz
    wget -c http://www.castaglia.org/proftpd/modules/proftpd-mod-vroot-0.8.5.tar.gz
    
    tar xvfz proftpd-mod-md5-0.3.3.tar.gz
    tar xvfz proftpd-mod-sftp-0.9.6.tar.gz
    tar xvfz proftpd-mod-sftp-sql-0.1.tar.gz
    tar xvfz proftpd-mod-vroot-0.8.5.tar.gz
    
    cp mod_md5/mod_md5.c proftpd-1.3.2/contrib/
    cp -r mod_sftp proftpd-1.3.2/contrib/
    cp mod_sftp_sql/mod_sftp_sql.c proftpd-1.3.2/contrib/
    cp mod_vroot/mod_vroot.c proftpd-1.3.2/contrib/
    

    Nakonfigurujeme. Pokud nevíte, jak na to, zkuste si nainstalovat distribuční verzi ProFTPD a podívat se, jak je nakonfigurována (poté jí stačí opět odinstalovat):

    aptitude install proftpd-basic proftpd-mod-mysql
    
    proftpd -V
    Compile-time Settings:
      Version: 1.3.2 (stable)
      Platform: LINUX
      Built: Po čen 1 02:12:43 CEST 2009
      Built With:
        configure  '--prefix=/usr' '--with-includes=/usr/include/postgresql:/usr/include/mysql' '--mandir=/usr/share/man' '--sysconfdir=/etc/proftpd' '--localstatedir=/var/run' '--libexecdir=/usr/lib/proftpd' '--disable-sendfile' '--enable-facl' '--enable-dso' '--enable-autoshadow' '--enable-ctrls' '--with-modules=mod_readme' '--enable-ipv6' '--enable-nls' '--build' 'i486-linux-gnu' '--with-shared=mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_dynmasq:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_wrap2:mod_wrap2_file:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_ifsession' 'build_alias=i486-linux-gnu'
    ...
    
    aptitude remove proftpd-basic proftpd-mod-mysql
    

    Nyní se stačí jen podívat do changelogu nové verze, poupravit si drobnosti a jdeme na to (pozor! mod_ifsession musí být uveden až po mod_md5, nejlepší by stejně bylo, kdyby byl až na konci):

    cd proftpd-1.3.2
    ./configure --prefix=/usr --with-includes=/usr/include/postgresql:/usr/include/mysql
    --mandir=/usr/share/man --sysconfdir=/etc/proftpd --localstatedir=/var/run
    --libexecdir=/usr/lib/proftpd --enable-facl --enable-dso --enable-openssl
    --enable-autoshadow --enable-ctrls --with-modules=mod_readme --enable-ipv6
    --enable-nls --build i486-linux-gnu
    --with-shared=mod_unique_id:mod_vroot:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_dynmasq:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_wrap2:mod_wrap2_file:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_sftp:mod_sftp_sql:mod_md5:mod_ifsession
    

    Zkompilujeme, zabalíme do balíčku pomocí checkinstall a nainstalujeme (Checkinstall je dostačující a rychlá věc pro koncové balíčky, na kterých už nic jiného nezávisí. Pro jiné záležitosti bych si ho nedovolil použít.):

    make
    checkinstall -D
    dpkg -i proftpd_1.3.2-1_i386.deb
    

    Nyní bychom měli mít nainstalovaný ProFTPD server s podporou všeho možného :/). Na závěr přikládám záznam výše provedených událostí proftpd_compile.log.

    Příprava MySQL

    link

    Nyní vytvoříme databázi pro ProFTPD a současně i uživatele:

    mysql -u root -p
    mysql> create database proftpd;
    GRANT ALL PRIVILEGES ON proftpd.* TO proftpd@localhost IDENTIFIED BY 'mojeheslo';
    FLUSH PRIVILEGES;
    

    Tak, nyní můžeme začít vytvářet tabulky. První bude se skupinami:

    mysql> use proftpd;
    mysql>
    CREATE TABLE proftpd_group (
    groupname varchar(16) NOT NULL default 'ftpuser',
    gid smallint(6) NOT NULL default '2002',
    members varchar(16) NOT NULL default 'ftpgroup',
    KEY groupname (groupname)
    ) TYPE=MyISAM COMMENT='ProFTP group table';
    

    Tabulky pro quoty musí být biginit. Pokud jsou jen init, tak mod_ifsession může být velikost quoty maximálně 4 GiB. Tj, ať se do tabulky pokusíte zapsat sebevětší číslo, tak víc jak 4294967295 B tam nenacpete.

    mysql>
    CREATE TABLE proftpd_quota (
    name varchar(30) default NULL,
    quota_type enum('user','group','class','all') NOT NULL default 'user',
    per_session enum('false','true') NOT NULL default 'false',
    limit_type enum('soft','hard') NOT NULL default 'soft',
    bytes_in_avail bigint(10) unsigned NOT NULL default '0',
    bytes_out_avail bigint(10) unsigned NOT NULL default '0',
    bytes_xfer_avail bigint(10) unsigned NOT NULL default '0',
    files_in_avail bigint(10) unsigned NOT NULL default '0',
    files_out_avail bigint(10) unsigned NOT NULL default '0',
    files_xfer_avail bigint(10) unsigned NOT NULL default '0'
    ) TYPE=MyISAM;
    

    Tabulka proftpd_quota_allies slouží pro interní věci ProFTPD. Do ní nic nebudeme zapisovat.

    mysql>
    CREATE TABLE proftpd_quota_allies (
    name varchar(30) NOT NULL default '',
    quota_type enum('user','group','class','all') NOT NULL default 'user',
    bytes_in_used bigint(10) unsigned NOT NULL default '0',
    bytes_out_used bigint(10) unsigned NOT NULL default '0',
    bytes_xfer_used bigint(10) unsigned NOT NULL default '0',
    files_in_used bigint(10) unsigned NOT NULL default '0',
    files_out_used bigint(10) unsigned NOT NULL default '0',
    files_xfer_used bigint(10) unsigned NOT NULL default '0'
    ) TYPE=MyISAM;
    

    Tabulka pro virtuální uživatele:

    mysql>
    CREATE TABLE proftpd_user (
    id int(10) unsigned NOT NULL auto_increment,
    userid varchar(32) NOT NULL default '',
    passwd varchar(32) NOT NULL default '',
    uid smallint(6) NOT NULL default '2002',
    gid smallint(6) NOT NULL default '2002',
    homedir varchar(255) NOT NULL default '',
    shell varchar(16) NOT NULL default '/bin/false',
    count int(11) NOT NULL default '0',
    accessed datetime NOT NULL default '0000-00-00 00:00:00',
    modified datetime NOT NULL default '0000-00-00 00:00:00',
    PRIMARY KEY (id),
    UNIQUE KEY userid (userid)
    ) TYPE=MyISAM COMMENT='ProFTP user table';
    

    Zapíšeme informace o lokálním uživateli (ten, pod kterým má uživatel ftp práva) do db:

    mysql> INSERT INTO `proftpd_group` (`groupname`, `gid`, `members`) VALUES ('ftpuser', 2002, 'ftpgroup');
    

    Vytvoříme si testovacího uživatele s limitem ftp 15 MiB:

    mysql> INSERT INTO `proftpd_quota` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('admin', 'user', 'true', 'hard', 15728640, 0, 0, 0, 0, 0);
    mysql> INSERT INTO `proftpd_user` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'admin', 'mojeheslo', 2002, 2002, '/home/ftp/', '/sbin/nologin', 0, '', '');
    mysql> quit
    

    Další uživatele vytváříme stejně, jen změníme hodnotu ID (o jeden výše) a userid/name (jméno uživatele). V selectu jsou tučně vyznačeny. Toto jsou nezbytné položky dalšího nového uživatele. Volitelné položky jsou potom třeba „domovský adresář“, „quota“ atd.

    Nastavení ProFTPD

    link

    Zde předkládám tři nutné konfigurační soubory. Jejich komentáře snad mluví za vše.

    /etc/proftpd/proftpd.conf

    #
    # /etc/proftpd/proftpd.conf -- Toto je zakladni konfiguracni soubor proftpd.
    # Pokud chceme uplatnit veskere zmeny, je treba reloadnout proftpd.
    #
    
    ### Vloz konfiguracni soubor s DSO moduly:
    Include /etc/proftpd/modules.conf
    
    ### Podporovat IPv6?:
    UseIPv6                         on
    
    ### Jmeno serveru:
    ServerName                      "Nas novy ftp server"
    
    ### Typ spusteni (standalone = daemon nebo inetd = superserver)
    ServerType                      standalone
    
    ### Podpora RFC2228 – kazdy radek ma kod, coz je lehci pro komunikaci s klientem:
    MultilineRFC2228                on
    
    ### Pokud prijde pozadavek na ip a ne na DNS nazev (hlavne u VirtualServeru),
    # tak by server vyhodil nedostupnost sluzby, zapnuti direktivy toto resi:
    DefaultServer                   on
    
    ### Nasledovat symlinky?:
    ShowSymlinks                    off
    
    ### Casove limity, po kterych dojde k odpojeni (v sekundach):
    # Casovy limit pro prihlaseni
    TimeoutLogin                    120
    # Bezprostredne po pripojeni bez jakehokoli pozadavku:
    TimeoutNoTransfer               600
    # Delka zivotnosti procesu prenosu dat, kterym se data prestala prenaset:
    TimeoutStalled                  600
    # Jak dlouho muze byt klient necinny po dokonceni prenosu dat:
    TimeoutIdle                     1200
    
    ### Zobrazit uvitaci zpravu:
    # (zadanim relativni cesty dame uzivateli moznost definovat si onu zpravu):
    # DisplayLogin                    welcome.msg
    # Zadanim absolutni cesty bude nastaveni pro vsechny uzivatele stejne:
    DisplayLogin                    /home/ftp/welcome.msg
    
    ### Nezobrazovat uvitaci text driv, nez je uzivatel prihlasen
    DeferWelcome                    off
    
    ### Po otevreni adresare se objevi hlaska; zastarale, vetsina prohlizecu ignoruje:
    DisplayChdir                    .message true
    
    ### ListOptions: definuje, jak bude vypadat vypis adresare:
    # -l Jedna radka pro jeden soubor
    # -A Vypis vsechny soubory vyjma "." a ".."
    # -a Vypis vsechny soubory vcetne skrytych (tj. zacinajicich "." – napriklad .htaccess)
    # -C Vypis do kolonek
    # -d Vypis jen adresare (misto jejich obsahu)
    # -F V pripade, ze dany soubor obsahuje identifikator souboru ("*", "/", "=", "@" or "|"), vypise jej take
    # -h Vypisuje velikosti souboru v "citelnejsi" podobe (1K, 10MB, 2,4GB atd.)
    # -L Vypisuje soubory, na ktere ukazuje symbolicky odkaz
    # -l Podrobny vypis
    # -n Pri vypisu ukaze jen cisla GID a UID pro skupiny/uzivatel misto jejich nazvu
    # -R Bude prochazet adresare rekurzivne
    # -r Vypise soubory v obracenem poradi
    # -S Seradi a vypise soubory podle velikosti
    # -t Seradi a vypise soubory podle data posledni upravy
    ListOptions                     "-l"
    
    ### Zakazat rootovi prihlasit se na ftp:
    RootLogin          off
    
    ### Nepozadujeme, aby mel uzivatel shell:
    RequireValidShell               off
    
    ### Zabezpeceni proti nastaveni nebezpecnych filtru na masku regularniho vyrazu
    DenyFilter                      \*.*/
    
    ### Pokud chceme, aby byli vsichni uzivatele
    # pouze ve svych domovskych adresarich, tak pouzijeme "~"
    DefaultRoot                     ~
    
    ### Port, na kterem ma proftpd naslouchat (stadardne 21)
    Port                            21
    
    ### Pro pasivni prenos nastavime rozsah komunikacnich portu:
    PassivePorts                  40000 44000
    
    ### Maximalni pocet instanci (hlavne proti DoS utoku),
    # funguje pouze v rezimu serveru jako standalone
    MaxInstances                    30
    
    ### Maximalni pocet klientu:
    MaxClients      10 "Promin, maximalne %m uzivatelu -- zkus se pripojit pozdeji"
    
    ### Omezeni poctu pripojeni jednoho klienta
    MaxClientsPerHost	        3	"Muzes byt pripojen pouze: %m"
    
    ### Maximalni pocet pokusu o prihlaseni
    MaxLoginAttempts                3
    
    ### Ma byt uzivatelske jmeno ziskano pres ident(RFC1413)?
    # Pokud je volba zapnuta, tak se dosti prodlouzi prihlasovani
    IdentLookups                    off
    
    ### Pokud je volba zapnuta, server zjistuje existenci reverzniho zaznamu
    # klienta (minoritni bezpecnostni prvek). Tim se ovsem opet zpomaluje prihlasovani.
    UseReverseDNS                   off
    
    ### Ma se cas zobrazovat v GMT, a ne lokalni?
    TimesGMT                        off
    
    ### Uzivatel a skupina, pod nimiz je server spusten
    User                            proftpd
    Group                           proftpd
    
    ### Linuxovy umask noveho adresare a souboru
    Umask                           022  022
    
    ### Soubory mohou byt prepisovany
    AllowOverwrite                  on
    
    ### Povolit klientum znovu navazat na stahovani
    AllowRetrieveRestart            on
    
    ### Povolit klientum znovu navazat na upload
    AllowStoreRestart               on
    
    ### Povolit .ftpaccess soubory (trochu zpomaluje vypis slozky)
    AllowOverride                   on
    
    ### Zakaze zobrazeni vsemoznych informaci o serveru (verzi apod) hned po prihlaseni
    # (takovy maly bezpecnostni prvek)
    ServerIdent                     Off
    
    ### Zamaskovat skutecne jmeno uzivatele souboru/adresare
    DirFakeUser                     on pepa
    
    ### Zamaskovat skutecne jmeno skupiny souboru/adresare
    DirFakeGroup                    on pepagroup
    
    ### Zamaskuje nastaveni prav na souboru
    DirFakeMode                     0000
    
    ### Pokud adresar uzivatele neexistuje, tak ho vytvori s pravy 755
    CreateHome on 755 dirmode 755
    
    ### Maximalni cas procesoru v sekundach na proces
    #RLimitCPU 600 600
    ### Maximum pameti pouzitou na proces (v bajtech)
    #RLimitMemory 64M 64M
    ### Maximalni pocet otevrenych souboru na proces
    #RLimitOpenFiles 1024 1024
    
    ### Logujeme
    TransferLog /var/log/proftpd/xferlog
    SystemLog   /var/log/proftpd/proftpd.log
    # Zaznamenavat vsechny sql dotazy (jen v pripade ladeni, jinak nedoporucuji zapinat):
    #SQLLogFile /var/log/proftpd/sqllog.log
    
    LogFormat default "%h %l %u %t \"%r\" %s %b"
    LogFormat auth "%v [%P] %h %t \"%r\" %s"
    LogFormat write "%h %l %u %t \"%r\" %s %b"
    
    ### Zaznamenavat pristupy k souborum a adresarum
    ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write
    
    ### Zapsat vsechna prihlaseni
    ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth
    
    ### Paranoidni uroven zaznamu
    # ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default
    
    ### Povolit logovani pomoci symlinku
    AllowLogSymlinks off
    
    ### Nastaveni pro ACL aj. (vypnuto)
    <IfModule mod_ctrls.c>
    ControlsEngine        off
    ControlsMaxClients    2
    ControlsLog           /var/log/proftpd/controls.log
    ControlsInterval      5
    ControlsSocket        /var/run/proftpd/proftpd.sock
    </IfModule>
    
    <IfModule mod_ctrls_admin.c>
    AdminControlsEngine on
    </IfModule>
    
    ### Vlozit konfiguracni soubor ohledne nastaveni SQL
    Include /etc/proftpd/sql.conf
    

    /etc/proftpd/sql.conf

    Jen si nezapomeňte v tomto souboru změnit heslo dle svého.

    #
    # Ukazkovy ProFTPD konfiguracni soubor pro autentizaci zalozenou na SQL.
    #
    
    <IfModule mod_sql.c>
    #
    # Vyberte SQL backend: MySQL nebo PostgreSQL.
    # Oba moduly jsou nacitany ve vychozim nastaveni, specifukujte tedy, ktery backend ma byt pouzit,
    # a zakomentujte nebo odkomentujte prislusne direktivy v /etc/proftpd/modules.conf.
    # Opet lze pouzit hodnoty 'mysql' nebo 'postgres'.
    #
    
    ### Jaky backend (databazi) pouzijeme:
    SQLBackend      mysql
    
    ### Zapneme podporu SQL:
    SQLEngine on
    AuthOrder mod_sql.c
    
    ### Pouzit backend-crypted nebo crypted password
    #SQLAuthTypes Backend Crypt
    
    SQLAuthTypes Plaintext Crypt
    
    ### Pripojeni:
    #===============
    SQLConnectInfo proftpd@localhost proftpd mojeheslo
    SQLUserInfo     proftpd_user userid passwd uid gid homedir shell
    SQLGroupInfo    proftpd_group groupname gid members
    SQLMinID        2000
    
    ### Vytvorit automaticky adresar uzivatele – zastarale, v dalsi verzi nebude fungovat
    #SQLHomedirOnDemand on
    
    SQLLog PASS updatecount
    SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" proftpd_user
    SQLLog  STOR,DELE modified
    SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" proftpd_user
    
    ### Uzivatelske quoty:
    #=======================
    QuotaEngine on
    QuotaLog /var/log/proftpd/quota.log
    QuotaDirectoryTally on
    QuotaDisplayUnits Mb
    QuotaShowQuotas on
    
    SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM proftpd_quota WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM proftpd_quota_allies WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" proftpd_quota_allies
    
    SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" proftpd_quota_allies
    
    QuotaLimitTable sql:/get-quota-limit
    QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
    
    SQLNamedQuery gettally  SELECT "ROUND((bytes_in_used/1048576),2) FROM proftpd_quota_allies WHERE name='%u'"
    SQLNamedQuery getlimit  SELECT "ROUND((bytes_in_avail/1048576),2) FROM proftpd_quota WHERE name='%u'"
    SQLNamedQuery getfree   SELECT "ROUND(((proftpd_quota.bytes_in_avail-proftpd_quota_allies.bytes_in_used)/1048576),2) FROM proftpd_quota,proftpd_quota_allies WHERE proftpd_quota.name = '%u' AND proftpd_quota_allies.name = '%u'"
    
    SQLShowInfo   LIST    "226" "Vyuzito %{gettally}MiB z %{getlimit}MiB. Jeste vam zbyva %{getfree}MiB volneho mista."
    

    /etc/proftpd/modules.conf

    #
    # Tento soubor je pouzivan ke sprave modulu a funkci DSO.
    # 
    
    ### Adresar, kde jsou DSO moduly umisteny
    ModulePath /usr/lib/proftpd
    
    ### Pouze root muze pripojovat a odpojovat moduly,
    # ostatni mohou jen videt pripojene moduly
    ModuleControlsACLs insmod,rmmod allow user root
    ModuleControlsACLs lsmod allow user *
    
    LoadModule mod_ctrls_admin.c
    LoadModule mod_tls.c
    
    ### Pokud chceme pouzit MySQL (proftpd-mod-mysql) nebo PostgreSQL (proftpd-mod-pgsql), tak odkomentujeme
    LoadModule mod_sql.c
    
    ### Pokud chceme pouzit LDAP, tak odkomentujeme
    #LoadModule mod_ldap.c
    
    
    ### Direktivy 'SQLBackend mysql' nebo 'SQLBackend postgres' vyzaduji, kterou SQL autorizaci maji pouzit.
    # Odkomentujte tedy prislusny modul
    # Pri pouziti proftpd-mod-mysql odkomentujeme toto:
    LoadModule mod_sql_mysql.c
    # Pri pouziti proftpd-mod-pgsql odkomentujeme toto:
    #LoadModule mod_sql_postgres.c
    
    LoadModule mod_radius.c
    LoadModule mod_quotatab.c
    LoadModule mod_quotatab_file.c
    
    ### Pri pouziti proftpd-mod-ldap odkomentujeme toto:
    #LoadModule mod_quotatab_ldap.c
    
    ### Nainstalovany proftpd-mod-pgsql nebo proftpd-mod-mysql pouziva tyto moduly:
    LoadModule mod_quotatab_sql.c
    LoadModule mod_quotatab_radius.c
    LoadModule mod_wrap.c
    LoadModule mod_rewrite.c
    LoadModule mod_load.c
    LoadModule mod_ban.c
    LoadModule mod_wrap2.c
    LoadModule mod_wrap2_file.c
    
    #LoadModule mod_wrap2_sql.c
    LoadModule mod_dynmasq.c
    
    # Nechte tento modul posledni
    LoadModule mod_ifsession.c
    

    Nyní stačí jen reloadnout proftpd:

    /etc/init.d/proftpd restart
    

    Šifrujeme

    link

    Kdo chce šifrovat, až se z něj bude prášit, tak jen do toho. Nejdříve budeme potřebovat OpenSSL:

    aptitude install openssl

    Vygenerujeme certifikáty:

    mkdir /etc/proftpd/ssl
    openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
    chown root:root /etc/proftpd/ssl/*
    chmod 600 /etc/proftpd/ssl/proftpd.key.pem
    chmod 644 /etc/proftpd/ssl/proftpd.cert.pem
    

    Do /etc/proftpd/proftpd.conf přidáme následující řádek:

    Include /etc/proftpd/tls.conf

    Vytvoříme soubor /etc/proftpd/tls.conf a přidáme do něj:

    #
    # Ukazkovy konfiguracni soubor ProFTPD pro FTPS spojeni.
    #
    # Pozor, FTPS zavadi nekolik omezeni pri traverzi NAT.
    # Pro vice informaci se podivejte na:
    # http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html
    #
    
    <IfModule mod_tls.c>
    
    ### Povolit ProFTPD TLS/SSL
    TLSEngine                               on
    
    ### Soubor s logem pro vse ohledne TLS spojeni
    TLSLog                                  /var/log/proftpd/tls.log
    
    ### Typ protokolu – TLSv1, SSLv3, SSLv23 (kompatibilita obou predchozich):
    TLSProtocol                             SSLv23
    
    #
    # Pokud chcete vygenerovat self-signed certifikat, pouzijte tento prikaz:
    #
    # openssl req -x509 -newkey rsa:1024 \
    #          -keyout /etc/proftpd/ssl/proftpd.key.pem \
    #          -out /etc/proftpd/ssl/proftpd.cert.pem \
    #          -nodes -days 365
    #
    # Soubor proftpd.key.pem musi byt citelny pouze pro uzivatele root. Ostatni soubory mohou
    # byt citelne pro kohokoli.
    #
    # chmod 0600 /etc/proftpd/ssl/proftpd.key.pem
    # chmod 0640 /etc/proftpd/ssl/proftpd.cert.pem
    #
    
    ### Cesty k certifikatum:
    TLSRSACertificateFile                   /etc/proftpd/ssl/proftpd.cert.pem
    TLSRSACertificateKeyFile                /etc/proftpd/ssl/proftpd.key.pem
    
    ### Soubor s certifikatem certifikacni autority (CA) pro overovani klientu:
    #TLSCACertificateFile                    /etc/ssl/certs/CA.pem
    # cesta k crtifikatum pro overovani klientu pomoci CA:
    #TLSCACertificatePath                    /etc/ssl/certs/
    # cesta ke zrusenemu/neduveryhodnemu certifikatu:
    #TLSCARevocationFile                     /etc/ssl/revocate/CA.pem
    # cesta ke zrusenym/neduveryhodnym certifikatum:
    #TLSCARevocationPath
    
    ### Neoverovat klientuv certifikat
    TLSOptions                              NoCertRequest
    
    ### Nedotazovat se na klientuv certifikat
    TLSVerifyClient                         off
    
    ### Vyzadovat TLS spojeni; pokud je off, klient se bude moci pripojit i nesifrovane
    TLSRequired                             off
    
    ### Spojeni se navaze s trvalym certifikatem a dalsi komunikace a prenos dat
    # probiha s docasnym. Da se nastavit platnost docasneho v navaznosti na
    # casU prenosu, objemu prenesenych dat atd.
    # Tuto fci rozhodne moc klientu nepodporuje, takze se asi ani moc nepouziva.
    
    # Nastavit tak, aby nebylo nutne, ale jen pozadovane/dobrovolne:
    #TLSRenegotiate required off
    # Po 1 hodine:
    #TLSRenegotiate ctrl 3600
    # Po preneseni 500 MiB dat:
    #TLSRenegotiate data 512000
    # Timeout:
    #TLSRenegotiate timeout 300
    # Veskere nastaveni v jedne directive:
    #TLSRenegotiate ctrl 3600 data 512000 required off timeout 300
    
    </IfModule>
    

    Nakonec už jen reloadneme ProFTPD:

    /etc/init.d/proftpd reload
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    3.7.2009 00:30 Lubos Kopecky | skóre: 32
    Rozbalit Rozbalit vše Useri v mysql a povoleni prihlaseni pouze z vybrane IP
    Je nejak mozne nastavit, aby se v databazi uchovavala informace o tom, ktery uzivatel se muze pripojit z ktere IP-adresy?

    napr.
    ferda si povoli prihlaseni pouze z IP 127.0.0.1
    amalka si povoli prihlaseni pouze z IP 192.168.0.6
    cmelda si povoli prihlaseni z 2 IP 192.168.0.7 a 192.168.0.8
    brumbda se omezovat nehodla vubec
    Max avatar 3.7.2009 01:28 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Useri v mysql a povoleni prihlaseni pouze z vybrane IP
    Tak to jsem neřešil a abych pravdu řekl, tak si teď nejsem jist. Musím nato juknout. Jinak pokud by si to měli uživatelé definovat sami, tak je lepší, když se to bude řešit přes .ftpaccess, ne?
    Zdar Max
    Měl jsem sen ... :(
    3.7.2009 02:56 Lubos Kopecky | skóre: 32
    Rozbalit Rozbalit vše Re: Useri v mysql a povoleni prihlaseni pouze z vybrane IP
    reseni to urcite je, to mas pravdu, ale

    1) admin muze treba chtit omezit adresy pro ruzny uzivatele a mit to prehledne nekde ulozeny a zaroven aby nemusel mit skripty, ktery to budou pravidelne pregenerovavat z db dou souboru na disku

    2) mas jedno administracni rozhrani pres web na vice sluzeb, takze tam chces mit i tuto informaci, aby to bylo vse na jednom miste.

    3) muze nastat pripad, ze ty si omezis pristup jen z jedny IP, vse funguje jak ma rok, dva, pak na to zapomenes (pripadne ti to nedocvakne), pac odjinud tam nechodis a zmenis treba poskytovatele internetu nebo budes mimo tohle jedno misto a najednou budes muset nutne na ftp pristoupit a ejhle, ono to nejde - pres db to zmenis, ale primo v souboru ne, pac se tam nedostanes

    sou to ciste modelovy priklady - osobne to treba nepotrebuju, ale byl na mne vznesen dotaz (dokonce vcera :) ), zda by to omezeni neslo resit prave pres db
    Max avatar 3.7.2009 11:42 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Useri v mysql a povoleni prihlaseni pouze z vybrane IP
    Mno, vytvořit si tabulku a k ni uživatele v db (kdyby jsi měl díru v php, útočník může ovlivnit akorát ony povolené IP, nic víc), která by byla třeba přes ID propojená s tabulkou o uživatelích. V ní sloupečky ID, AlloIP, DenyIP a pomocí php a cronu bych ládoval info z této tabulky do konfiguračního souboru proftpd a říkal mu, aby akceptoval nové nastavení. Bylo by to bezpečné, přístup přes web rozhraní zaručen, všechno by jsi měl na jednom místě a bylo by :).
    Zdar Max
    Měl jsem sen ... :(
    Jardík avatar 3.7.2009 23:59 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Useri v mysql a povoleni prihlaseni pouze z vybrane IP
    Místo cronu bych použil incron :-)
    Věřím v jednoho Boha.
    5.7.2009 15:57 tomash
    Rozbalit Rozbalit vše Re: Useri v mysql a povoleni prihlaseni pouze z vybrane IP

    tohle umi treba pureftpd

    3.7.2009 05:57 Kroko | skóre: 22
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Nikdy jsem nepochopil quoty na ftp ... (v případě, že je to jen ftp tak ano) protože pokud má pak někdo přístup přes web apod. tak tam ty soubory může rvát přes prohlížeč a quota je mu v ftp k ničemu.
    http://kroko.evesnight.net
    Max avatar 3.7.2009 10:20 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Jak přes web? Pokud někdo provozuje pro klienty třeba nějaké webftp, tak snad není problém toto webftp ošetřiř, ne? Nebo myslíš případ, kdy jsou na onom ftp umístěny webové stránky? A dotyčný pak může třeba pomocí php skriptu udělat útok na server, který akorát bude moci zato, že se sežere veškeré místo na oddílu, kde budou ony stránky umístěny. Ale toto ti nikdo neudělá na placeném hostingu. A když ano, tak jako správce svůj server určitě monitoruješ a toto by jsi měl za chvilku vyřešené. Pokud by to byl třeba nějaký free, tak bych to stejně řešil účtama v mysql (jednoduší správa všeho) a pak bych pomocí skriptů a cronu generoval fyzické quoty a uživatele. Tím by se pak vyřešily veškeré problémy :).
    Zdar Max
    Měl jsem sen ... :(
    3.7.2009 18:32 fixinko | skóre: 15 | Bratislava
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování

    ono to bolo myslene tak, ze ked nieco v php uploadujes cez tie jeho funkcie(move_uploaded_file....), tak owner/group je ten user pod ktorym bezi www server, a nie ten komu patria skripty... ciastocne riesenie je pouzivat mod_suphp (riesi to len otazku komu ten subor po vytvoreni patri), ale ani to neriesi zapisovanie quoty do databazy... to sa da imho vyriesit len quotami priamo v systeme...

    3.7.2009 13:00 snajpa | skóre: 20 | blog: snajpuv_blocek | Brno
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Na konci článku mi chybí "Zdar Max" :-D, jinak pochvala za super článek!
    --- vpsFree.cz --- Virtuální servery svobodně
    3.7.2009 13:07 eoj
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Jo, to podepisování pod příspěvky, které mají jméno už v hlavičce, mi taky nějak nejde pod vousy :-)
    Max avatar 3.7.2009 13:15 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Snad si nemyslíš, že se pod své články nepodepisuji. Redakce mi podpisy z článku totiž maže, s tím já nic nenadělám :-/. Zřejmě to nikdy neprojde korekcema :).
    Ale myslím, že už ho tam vlastně asi ani nepíšu, abych nepřidělával práci redakci :P.
    Zdar Max
    Měl jsem sen ... :(
    26.1.2010 21:15 Pepin
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Teď jsem nainstaloval proftpd podle tohodle návodu, ale na FTP mi nejde zapisovat :-( peru se stim už celej den a pořád mi to nechce chodit. Co stím? Díky
    Max avatar 26.1.2010 21:41 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Pokud se úspěšně přihlásíš, tak je chyba v právech. Buď jsi je špatně zapsal do mysql databáze (uid gid), nebo vytvoření uživatelé v systému mají jiná uid a gid, než jsi zadal do db. Tyto věci se musí shodovat, tak se nato podívej ;-). Také by měl mít nadřazený adresář práva ftpuser:ftpgroup a nejlépe 755.
    Zdar Max
    Měl jsem sen ... :(
    25.3.2010 15:28 Honza
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    vím, že offtopic,ale velmi pěkné i pro amatéry jako jsem já, jen by mě zajímalo jak to udělat s anonymními uživateli. uživatele jsem přidal do mysql, vytvořil v systému vše funguje s heslem,ale já bych rád uživatele anonymous bez hesla :-)

    Max avatar 25.3.2010 15:38 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Ahoj, díky :). Offtopic to rozhodně není :). Anonymouse uděláš tak, že přidáš příslušné direktivy do proftpd.conf. Jako popisují třeba zde : http://www.ls-l.net/ftp/
    Zdar Max
    Měl jsem sen ... :(
    25.3.2010 19:15 Honza
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Aha, no já si říkal, jestli by to nešlo spíše přes mysql, jelikož tam je podle tvého návodu krásny přehled o počtu přihlášení apod. Hlavně jsem měl za to, že pokud pouziji přímo direktivu z proftpd.conf tak si tím můžu narušit usery (teď si uvědomuji, že je to naprostá hloupost :D). Ale přesto ti patří velký dík
    21.7.2010 13:58 tre-SKA
    Rozbalit Rozbalit vše neobmedzena kvóty
    Zdarek, neviete ako nastavim uzivatelovi neobmedzenu kvotu cez mysql ?
    Max avatar 21.7.2010 14:23 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: neobmedzena kvóty
    Neomezená je 0
    Zdar Max
    Měl jsem sen ... :(
    10.2.2011 20:12 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    zdravim, hadam to nieje prilis stary clanok na to aby mi niekto odpovedal. Mam virtualny server kde mi uz provider nainstaloval Debian/LAMP cize vsetko co treba pre bezny webserver tam uz je. Bolo tam uz aj proftpd, takze instalaciu som preskocil. Vytvoril som uzivatel ftpuser s ID 2002, skupinu proftpd s ID 2001 a skupinu ftpgroup s ID 2002. uzivatel proftpd tam uz bol, ma ID 104 a skupinu nogroup. MySQL som neinstaloval kedze tam uz bolo, len som pospustal vsetky prikazy podla clanku. Lenze pri niektorych som dostal hlasku, ze su tam jedno, alebo dve warnings. Predpokladam, ze mu nieco nesedi, kde si to mozem skontrolovat? vo var/log je vsetko co ma v nazve mysql prazdne. System sa pri instalaci len nejak vyklonoval z obrazu co mal provider nachystany a nastavil par hesiel. Proftpd uz fungovalo a malo uz vytvoreneho uzivatela aj s heslom. Nechcel som preto prepisovat cely /etc/proftpd/proftpd.conf. Doplnil som teda nakoniec Include /etc/proftpd/sql.conf a subor /etc/proftpd/sql.conf okopiroval z clanku, len heslo som upravil. S tymi modulmi sa este nechcem hrat, zatial len vytvorit uzivatela do MySQL a pod nim sa prihlasit. Dal som reload a teraz mi pise total commander, ze vyzva na spojenie bola neuspesna. Pise to aj pri prihlasovacich udajoch co predtym fungovali a aj tych co som vlozil cez MySQL. Je vobec mozne aby islo prihlasovanie oboma sposobmi? Teda ja ani neviem co to bolo za povodny sposob, ale MySQL asi nepouzivalo kedze nemala este vytvorene heslo a uz to fungovalo. Asi som sa dost zamotal :( ... pomoze mi niekto sa z toho vymotat? :)
    Max avatar 10.2.2011 20:33 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    To jsi se do toho zamotal docela pěkně :). Dělat slepě něco, co se nesnažím pochopit, to většinou nedopadá moc dobře. Otázkou je, co přesně chceš? Chceš mít ftp server schopný ověřovat se přes mysql? Podporovat kvóty apod.? Nebo chceš provozovat ftp pro pár lidí, né-li jen pro sebe? Pak by se totiž vše xkrát zjednodušilo.
    Jinak doporučuji směřovat dotaz do poradny a né pod rok a půl starý článek, u kterého mám zapnuté sledování snad jen já :).
    Zdar Max
    Měl jsem sen ... :(
    10.2.2011 21:14 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    no mozno postacis aj ty :) ... chcem webserver kde bude mat pristup cez ftp len zopar ludi. Nikde na nete som nenasiel jednoduchy navod krok za krokom ako to rozbehat. Tie navody co som nasiel som prestal chapat uz v uvode a nedokazal som podla nich nic nastavit. V podstate mi staci ak budem moct vytvarat uzivatelov, ktory budu mat prava cisto len pre ftp a casom by som sa chcel pohrat zo subdomenami kde by mali pristup k jednotlivym priecinkom len konkretny ludia. Tie kvoty by som tam tiez potreboval uz len koli sebe aby som trebars nechtiac nezaplnil cely disk. Casom samozrejme koli subdomenam a inym uzivatelom aby to nezahltili oni. Do poradne som nesiel preto ,ze som nasiel toto a uz sa tu teda aj rozbehla na to diskusia. Ak by nikto neodpisal, siel by som do poradne :). V podstate by mi stacil nejaky serial, nepotrebujem to surne rychlo rozbehat, chcem sa to naucit. Ucim sa na dvoch frontach, jedna je programovanie v php a druha je rozbehanie a spravovanie servra kde bezi distribucia Debian/LAMP. O PHP mam more literatury, lenze o LAMP skoro nic, tak som si to rozdelil a postupne idem po jednotlivych sluzbach. Samotny web mi ide, stranka tam funguje, aj PHPcko ide, mysql aj s phpmyadmin funguju. Teraz sa chcem postupne do nich vrtat hlbsie a hlbsie. Zacal som s FTP pristupmi. Ja netusim z akeho konca mam zacat kedze kompletny serial o vsetkom krok za krokom asi ani neexistuje. Ako si sa to ucil ty?
    Max avatar 11.2.2011 07:49 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Já se vše naučil sám, z internetu a knih. Třeba o apache je výborná kniha toto : Linux Administrace serveru Apache.

    Pokud jde o to proftpd a článek, tak nevidím problém. Je to formou krok za krokem s krátkými českými komentáři. Nevím, jak jednodušejí to popsat :-/.
    Pokud jsi si neprošel svoje nastavení proftpd.conf a bezmyšlenkovitě si jen přidal na konec souboru vložení konfigráku sql.conf (jeho obsah by mohl být součásti proftpd.conf, ale pro přehlednost je v separátním souboru a pomocí include se vkládá do proftpd.conf), tak může být samozřejmě problém (nehledě nato, že pak nemůžeš svádět na články a postupy to, že jsou nefunkční, když se jich nedržíš). Další věcí je, zda jsi povoloval sql moduly v modules.conf? Pokud ne a nemáš je povolený, tak ti asi ftp ani nenaběhne.

    Otázkou tedy je, co máš v proftpd.conf? A co v modules.conf? Pošli tyto soubory jako přílohu ke komentáři a pak se uvidí. Další věcí je, co ti hlásí logy?
    /var/log/daemon.log
    /var/log/proftpd...? (cestu a soubory jsou definované v proftpd.conf, nevím, jak to máš u sebe).
    Jinak co máš za distribuci? Debian? Ubuntu? Něco jiného?
    Zdar Max
    Měl jsem sen ... :(
    11.2.2011 10:57 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    nezvalujem ziadnu vinu na clanok. Viem, ze riskujem ak nejdem podla postupu. Pre mna je to nezrozumitelne koli tomu, ze je tam kvantum prikazov a niesu detailne vysvetlene, je to skor pre pokrocilych.

    Distribucia je Debian(5.0)/LAMP, ale ako som spominal je to virtualna masina a system tam je naklonovany z nejakeho obrazu a neviem ake zmeny tam boli urobene oproti cistej instalaci. Ja som dal len vytvorit masinu a asi za 5 minut som to mal aj s heslom pre roota a FTP. Apache aj PHP uz bezalo, malo to tam aj skusobnu stranku, len MySQL nemalo administratorske heslo vytvorene. Hocikedy to mozem dat do toho povodneho stavu, trva to asi tych 5 minut. To je obrovska vyhoda ak nieco domrvim.

    deamon.log je prazdny, ani jeden zaznam. proftpd pise, ze user admin neexistuje, ale medzi casom som prisiel na to, ze po restarte mi to nenabehlo. on v tom sql.conf nasiel na riadku 99 chybu. Ja tie configuracne subory este prezkumam doma, potom napisem ak na nieco narazim. Co sa tyka tych warnings ked som vkladal prikazy do mysql, tak tie kde vidno? Najskor by som zacal tam, lebo to bolo este pred upravou configov.

    Max avatar 11.2.2011 11:28 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Naopak, popsaný jsou myslím dostatečně.
    Když to shrnu, tak se jedná jen o tyto věci :
    - vytvořit uživatele a skupinu, pod kterými bude běžet ftp server
    - vytvořit uživatele a skupinu, pod kterými budou pracovat uživatelé ftp serveru
    - vytvořit hlavní adresář s příslušnými právy pro proftpd, kde budou data uživatelů
    - vytvořit databázi včetně tabulek a příslušného uživatele v mysql pro ftp server, kde budou uloženy informace o uživatelích a jejich nastavení
    - zkopírovat soubory z článku a spustit ftp server (maximálně v těch souborech změnit hesla pro přístup do databáze, popř. popis serveru)

    Toto je v článku v sekcích :
    Příprava prostředí
    Příprava MySQL
    Nastavení ProFTPD

    Článek je zaměřen pro začátečníky, kteří mají aspoň základní znalosti a ví co je co. Ovšem pokud uživatel ani neví, co je to databáze a snaží se s ní pracovat, tak je samozřejmě jasné, že to povede jen k neúspěchu.
    Zdar Max
    Měl jsem sen ... :(
    11.2.2011 13:52 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Mne osobne sa zdal zaciatok ozaj ako pre zaciatocnikov, preto som sa do toho pustil, ale potom ako sa clanok dostal k MySQL uz prestali byt veci podla mna dostatocne vysvetlene, tam som sa uz stratil, tak som to len bezhlavo kopiroval. Neviem napriklad co vsetko a preco je v tej databaze. Preco tam treba tolko veci vytvarat. Napr. v tabulke proftpd_quota. Pri vkladani uzivatela sme to nakoniec nastavili skoro vsetko na nulu.

    Co sa mna tyka nakoniec bol niekde v .conf problem. Asi prave to co si spominal, ze tie veci co boli v sql.conf mozu byt aj v proftpd.conf. Jedna z hlasiek co mi nabehla kym sa to rozbehlo hovorila nieco o tom, ze akysi prikaz uz je v sql.conf. Ked som to vsetko nanovo poprepisoval(vsetky 3) a restartol proftpd, uz nabehol bez chyby a viem sa aj prihlasit.

    Inak v clanku co mas na zaciatku linky na tie mody. Ked som ich skusal boli vsetky mrtve.
    Max avatar 11.2.2011 13:59 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Rozcestník je z části mrtvý (neposouvá se na příslušná místa v článku, věc redakce, já ho nevytvářel), jinak linky na moduly (na oficiální stránky apod.) jsou stále živé.

    Pokud jde o ty nuly v tabulce quota, tak je snad jejich hodnota jasná z názvu sloupečku, ne? Jsou to statistiky přenosu aj. věcí a jak to bývá, všechno se začíná počítat od nuly.
    Zdar Max
    Měl jsem sen ... :(
    11.2.2011 15:21 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Posledny ide, ale tieto 3 nie.

    http://www.castaglia.org/proftpd/modules/proftpd-mod-md5-0.3.3.tar.gz http://www.castaglia.org/proftpd/modules/proftpd-mod-sftp-0.9.6.tar.gz http://www.castaglia.org/proftpd/modules/proftpd-mod-sftp-sql-0.1.tar.gz
    Max avatar 11.2.2011 15:26 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Jo takto, no to je možné. Po roce a půl jsou k dispozici určitě novější verze. A teď když koukám na jejich stránky, tak skutečně ano : http://www.castaglia.org/proftpd
    Jistě pochopíš, že v takto starém článku nelze udržovat čerstvé odkazy (nejen kvůli náročnosti, ale i kvůli tomu, že by následné postupy nemusely s novými verzemi fungovat).
    Zdar Max
    Měl jsem sen ... :(
    11.2.2011 16:28 mir.jar | skóre: 2
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    ved jasne, ja len na to upozornujem kedze som si to nedavno vsimol a opatovne sme tu rozbehli diskusiu k tomu clanku.

    Tak dakujem, ze si sa mi venoval, som rad, ze mi to uz funguje. Teraz to idem trosku prezkumavat a hadam coskoro v ramci ucenia nakodim v php nejaky skriptik kde si to budem vediet spravovat.
    16.4.2014 16:31 cesilko007
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Zdravím, chtěl bych se zeptat, pokud dobře znáte kód, tak jsem se dozvěděl, že proFTPD umí rozeznávat názvy počítačů z IP adresy, která k nim náleží. Nevěděl by někdo, jak to funguje? Mě běží moje ftp pres FileZillu a nechtel bych menit program, ale hodilo by se mě tohle znát.

    Děkuji za reakce
    Max avatar 18.11.2015 07:17 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: ProFTPD + MySQL + kvóty + šifrování
    Jen bych chtěl upřesnit toto tvrzení : Nebuďte ovšem bláhoví. Kdo si myslí, že může provozovat FTP/FTPS/SFTP na jednom portu, tak se mýlí. Pokud nastavíme SFTP, budeme moci používat jen tento protokol.

    Není to zcela pravda. Lze provozovat ftp, ftps a sftp v rámci jednoho proftpd serveru. Řeší se to pomocí virtuálů.
    Osobně tak provozuji ftp, ftps a sftp(tady na portu 2222, aby nebyl v kolizi s ssh). Vše plně ok.
    I logy u sftp přenosů jsou plně ok. Vše mám stále napojeno na mysql.
    Zdar Max
    Měl jsem sen ... :(

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.