GNU/Linux >> Znalost Linux >  >> Cent OS

Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na CentOS 7.0

Tento návod existuje pro tyto verze OS

  • CentOS 7.2
  • CentOS 7
  • CentOS 6.5
  • CentOS 6.4
  • CentOS 6.2
  • CentOS 5.3

Na této stránce

  1. 1 předběžná poznámka
  2. 2 Nainstalujte MySQL a phpMyAdmin
  3. 3 Nainstalujte PureFTPd s podporou MySQL
  4. 4 Vytvořte databázi MySQL pro PureFTPd
  5. 5 Konfigurace PureFTPd
  6. 6 Naplňte databázi a otestujte
  7. 7 Správa databáze
    1. Tabulka ftpd:
  • 8 Anonymní FTP
  • 9 odkazů
  • Tento dokument popisuje, jak nainstalovat server PureFTPd, který místo skutečných systémových uživatelů používá virtuální uživatele z databáze MySQL. To je mnohem výkonnější a umožňuje mít tisíce uživatelů FTP na jednom počítači. Kromě toho ukážu použití kvóty a omezení šířky pásma pro nahrávání/stahování s tímto nastavením. Hesla budou v databázi uložena zašifrovaná jako řetězce MD5.

    Pro správu databáze MySQL můžete použít webové nástroje jako phpMyAdmin, který bude také nainstalován v tomto návodu. phpMyAdmin je pohodlné grafické rozhraní, což znamená, že se nemusíte potýkat s příkazovým řádkem.

    Tento tutoriál je založen na CentOS 7.0. Už byste měli mít nastavený základní minimální systém CentOS 7.

    Tento návod je myšlen jako praktický průvodce; nepokrývá teoretická východiska. Jsou zpracovány v mnoha dalších dokumentech na webu.

    Tento dokument je dodáván bez jakékoli záruky! Chci říci, že to není jediný způsob, jak takový systém nastavit. Existuje mnoho způsobů, jak tohoto cíle dosáhnout, ale já volím tento způsob.

    1 předběžná poznámka

    V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.0.100. Tato nastavení se pro vás mohou lišit, takže je v případě potřeby musíte nahradit.

    2 Instalace MySQL a phpMyAdmin

    Nejprve povolíme úložiště EPEL na našem systému CentOS, protože některé balíčky, které se chystáme instalovat v průběhu tohoto tutoriálu, nejsou dostupné v oficiálních repozitářích CentOS 7.0:

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

    Poté povolíme úložiště EPEL v našem systému CentOS, protože mnoho balíčků, které se chystáme instalovat v průběhu tohoto tutoriálu, není dostupných v oficiálním úložišti CentOS 7:

    yum -y install epel-release
    yum -y install yum-priorities

    Upravte /etc/yum.repos.d/epel.repo...

    nano /etc/yum.repos.d/epel.repo

    ... a přidejte řádek priority=10 do sekce [epel]:

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
    failovermethod=priority
    enabled=1
    priority=10
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    [...]

    Poté aktualizujeme naše stávající balíčky v systému:

    yum update

    Nyní můžeme nainstalovat MySQL a phpMyAdmin následovně:

    yum install mariadb mariadb-server phpmyadmin httpd php

    Nyní nakonfigurujeme phpMyAdmin. Změníme konfiguraci Apache tak, aby phpMyAdmin umožňoval připojení nejen z localhostu (zakomentováním všeho ve stanze a přidáním řádku Vyžadovat vše uděleno):

    vi /etc/httpd/conf.d/phpMyAdmin.conf

    aby soubor vypadal takto:

    # phpMyAdmin - Web based MySQL browser written in php
    #
    # Allows only localhost by default
    #
    # But allowing phpMyAdmin to anyone other than localhost should be considered
    # dangerous unless properly secured by SSL
    
    Alias /phpMyAdmin /usr/share/phpMyAdmin
    Alias /phpmyadmin /usr/share/phpMyAdmin
    
    <Directory /usr/share/phpMyAdmin/>
    #  <IfModule mod_authz_core.c>
    #     # Apache 2.4
    #     <RequireAny>
    #       Require ip 127.0.0.1
    #       Require ip ::1
    #     </RequireAny>
    #   </IfModule>
    #   <IfModule !mod_authz_core.c>
    #     # Apache 2.2
    #     Order Deny,Allow
    #    # Deny from All
    #     Allow from 127.0.0.1
         Options Indexes
         AllowOverride None
         Require all granted
    #     Allow from ::1
    #   </IfModule>
    </Directory>
    
    
    
    <Directory /usr/share/phpMyAdmin/setup/>
       <IfModule mod_authz_core.c>
         # Apache 2.4
         <RequireAny>
           Require ip 127.0.0.1
           Require ip ::1
         </RequireAny>
       </IfModule>
       <IfModule !mod_authz_core.c>
         # Apache 2.2
         Order Deny,Allow
         Deny from All
         Allow from 127.0.0.1
         Allow from ::1
       </IfModule>
    </Directory>
    
    # These directories do not require access over HTTP - taken from the original
    # phpMyAdmin upstream tarball
    #
    <Directory /usr/share/phpMyAdmin/libraries/>
        Order Deny,Allow
        Deny from All
        Allow from None
    </Directory>
    
    <Directory /usr/share/phpMyAdmin/setup/lib/>
        Order Deny,Allow
        Deny from All
        Allow from None
    </Directory>
    
    <Directory /usr/share/phpMyAdmin/setup/frames/>
        Order Deny,Allow
        Deny from All
        Allow from None
    </Directory>
    
    # This configuration prevents mod_security at phpMyAdmin directories from
    # filtering SQL etc.  This may break your mod_security implementation.
    #
    #<IfModule mod_security.c>
    #    <Directory /usr/share/phpMyAdmin/>
    #        SecRuleInheritance Off
    #    </Directory>
    #</IfModule>
    

    Poté vytvoříme spouštěcí odkazy systému pro MySQL a Apache (aby se oba spustily automaticky při každém nabootování systému) a spustíme obě služby. Kromě toho musí brána firewall povolit obě služby:

    firewall-cmd --permanent --zone=public --add-service=http
    firewall-cmd --permanent --zone=public --add-service=https
    firewall-cmd --reload
    systemctl enable mariadb.service
    systemctl start mariadb.service
    systemctl enable httpd.service
    systemctl start httpd.service

    Vytvořte heslo pro kořenový adresář uživatele MySQL (nahraďte svémariadbheslo heslem, které chcete používat):

    mysql_secure_installation

    [[email protected] ~]# mysql_secure_installation
    /usr/bin/mysql_secure_installation:řádek 379:find_mysql_client:příkaz nenalezen

    POZNÁMKA:SPUŠTĚNÍ VŠECH ČÁSTÍ TOHOTO SKRIPTU SE DOPORUČUJEME      SERVERY VE VÝROBNÍM POUŽITÍ! PROSÍM, ČTĚTE POZORNĚ KAŽDÝ KROK!

    Abychom se mohli přihlásit do MariaDB a zabezpečit ji, budeme potřebovat aktuální
    heslo uživatele root. Pokud jste právě nainstalovali MariaDB a
    ještě jste nenastavili heslo uživatele root, bude heslo prázdné,
    měli byste zde stisknout klávesu enter.<--ENTER
    Zadejte aktuální heslo pro root (zadejte pro žádné):<--ENTER
    OK, úspěšně použité heslo, pokračujeme...

    Nastavení hesla root zajistí, že se nikdo nemůže přihlásit k uživateli MariaDB
    root bez řádné autorizace.

    Nastavit heslo root? [A/N]<--ENTER
    Nové heslo:<--yourmariadbpassword
    Znovu zadejte nové heslo:<--yourmariadbpassword
    Heslo bylo úspěšně aktualizováno!
    Opětovné načítání tabulek oprávnění...
     ... Úspěch!


    Ve výchozím nastavení má instalace MariaDB anonymního uživatele, který umožňuje kdokoli
    pro přihlášení do MariaDB, aniž by pro něj musel být vytvořen uživatelský účet. Toto je určeno pouze pro testování a aby instalace
    byla o něco plynulejší. Před přesunem do
    produkčního prostředí byste je měli odstranit.

    Odebrat anonymní uživatele? [A/N]<--ENTER
     ... Úspěch!

    Normálně by měl mít root povoleno připojení pouze z 'localhost'. To
    zajišťuje, že někdo nemůže uhodnout heslo root ze sítě.

    Zakázat vzdálené přihlášení root? [A/N]<--ENTER
     ... Úspěch!

    Ve výchozím nastavení přichází MariaDB s databází nazvanou „test“, ke které má
    kdokoli přístup. Toto je také určeno pouze pro testování a mělo by být odstraněno
    před přesunem do produkčního prostředí.

    Odebrat testovací databázi a přístup k ní? [A/N]<--ENTER
     – Rušení testovací databáze...
     ... Úspěch!
     – Odebírání oprávnění testovací databázi...
     ... Úspěch!

    Opětovné načtení tabulek oprávnění zajistí, že všechny dosud provedené změny
    se okamžitě projeví.

    Znovu načíst tabulky oprávnění nyní? [A/N]<--ENTER
     ... Úspěch!

    Úklid...

    Vše hotovo! Pokud jste provedli všechny výše uvedené kroky, vaše instalace MariaDB
    by nyní měla být zabezpečená.

    Děkujeme, že používáte MariaDB!
    [[email protected] ~]#

    3 Instalace PureFTPd s podporou MySQL

    Balíček CentOS PureFTPd podporuje různé backendy, jako je MySQL, PostgreSQL, LDAP atd. Zbývá nám tedy nainstalovat běžný balíček PureFTPd:

    yum install pure-ftpd

    Poté vytvoříme ftp skupinu (ftpgroup) a uživatele (ftpuser), na které budou mapováni všichni naši virtuální uživatelé. Nahraďte skupinu a ID uživatele 2001 číslem, které je ve vašem systému zdarma:

    groupadd -g 2001 ftpgroup
    useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

    Službu ftp musí firewall-cmd povolit následovně:

    firewall-cmd --permanent --zone=public --add-service=ftp
    firewall-cmd --reload

    4 Vytvoření databáze MySQL pro PureFTPd

    Nyní vytvoříme databázi nazvanou pureftpd a uživatele MySQL s názvem pureftpd, kterého démon PureFTPd později použije k připojení k databázi pureftpd:

    mysql -u root -p
    CREATE DATABASE pureftpd;
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
    FLUSH PRIVILEGES;

    Nahraďte řetězec ftpdpass jakýmkoli heslem, které chcete použít pro uživatele MySQL pureftpd. Stále v prostředí MySQL vytváříme databázovou tabulku, kterou potřebujeme (ano, existuje pouze jedna tabulka!):

    USE pureftpd;
    CREATE TABLE ftpd (
    User varchar(16) NOT NULL default '',
    status enum('0','1') NOT NULL default '0',
    Password varchar(64) NOT NULL default '',
    Uid varchar(11) NOT NULL default '-1',
    Gid varchar(11) NOT NULL default '-1',
    Dir varchar(128) NOT NULL default '',
    ULBandwidth smallint(5) NOT NULL default '0',
    DLBandwidth smallint(5) NOT NULL default '0',
    comment tinytext NOT NULL,
    ipaccess varchar(15) NOT NULL default '*',
    QuotaSize smallint(5) NOT NULL default '0',
    QuotaFiles int(11) NOT NULL default 0,
    PRIMARY KEY (User),
    UNIQUE KEY User (User)
    ) ENGINE=MyISAM;
    quit;

    Jak jste si možná všimli, s ukončením; příkaz opustili jsme prostředí MySQL a jsme zpět v prostředí Linux.

    BTW, (předpokládám, že název hostitele vašeho systému ftp serveru je server1.example.com) můžete přistupovat k phpMyAdmin pod http://server1.example.com/phpMyAdmin/ (můžete také použít IP adresu místo server1 .example.com) v prohlížeči a přihlaste se jako uživatel pureftpd. Pak se můžete podívat do databáze. Později můžete použít phpMyAdmin ke správě vašeho PureFTPd serveru.

    5 Konfigurace PureFTPd

    Upravte soubor /etc/pure-ftpd/pure-ftpd.conf a ujistěte se, že jsou povoleny řádky ChrootEveryone, MySQLConfigFile a CreateHomeDir a vypadají takto:

    vi /etc/pure-ftpd/pure-ftpd.conf
    [...]
    ChrootEveryone              yes
    [...]
    MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
    [...]
    CreateHomeDir               yes
    [...]

    Nastavení ChrootEveryone způsobí, že PureFTPd bude chrootovat každého virtuálního uživatele v jeho domovském adresáři, takže nebude moci procházet adresáře a soubory mimo svůj domovský adresář. Řádek CreateHomeDir způsobí, že PureFTPd vytvoří domovský adresář uživatele, když se uživatel přihlásí a domovský adresář ještě neexistuje.

    Poté upravíme /etc/pure-ftpd/pureftpd-mysql.conf. Mělo by to vypadat takto:

    cp /etc/pure-ftpd/pureftpd-mysql.conf /etc/pure-ftpd/pureftpd-mysql.conf_orig
    cat /dev/null > /etc/pure-ftpd/pureftpd-mysql.conf
    vi /etc/pure-ftpd/pureftpd-mysql.conf
    MYSQLSocket      /var/lib/mysql/mysql.sock
    #MYSQLServer     localhost
    #MYSQLPort       3306
    MYSQLUser       pureftpd
    MYSQLPassword   ftpdpass
    MYSQLDatabase   pureftpd
    #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
    MYSQLCrypt      md5
    MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

    Ujistěte se, že jste nahradili řetězec ftpdpass skutečným heslem pro uživatele MySQL pureftpd v řádku MYSQLPassword! Vezměte prosím na vědomí, že používáme md5 jako metodu MYSQLCrypt, což znamená, že hesla uživatelů uložíme do databáze jako řetězec MD5, což je mnohem bezpečnější než používání hesel ve formátu prostého textu!

    Nyní vytvoříme spouštěcí odkazy systému pro PureFTPd a spustíme jej:

    systemctl enable pure-ftpd.service
    systemctl enable pure-ftpd.service

    6 Naplnění databáze a test

    K naplnění databáze můžete použít shell MySQL:

    mysql -u root -p
    USE pureftpd;

    Nyní vytvoříme uživatele exampleuser se stavem 1 (což znamená, že jeho ftp účet je aktivní), tajným heslem (které bude uloženo zašifrované pomocí funkce MD5 MySQL), UID a GID 2001 (použijte ID uživatele a groupid uživatele/ skupinu, kterou jste vytvořili na konci druhého kroku!), domovský adresář /home/www.example.com, šířku pásma pro nahrávání a stahování 100 KB/s. (kilobajty za sekundu) a kvótu 50 MB:

    INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');
    quit;

    Nyní otevřete svůj FTP klientský program na své pracovní stanici (něco jako WS_FTP nebo SmartFTP, pokud používáte systém Windows nebo gFTP na ploše Linux) a zkuste se připojit. Jako název hostitele použijete server1.example.com (nebo IP adresu systému), uživatelské jméno je exampleuser a heslo je tajné.

    Pokud jste schopni se připojit - gratulujeme! Pokud ne, něco se pokazilo.

    Nyní, pokud spustíte

    ls -l /home

    měli byste vidět, že adresář /home/www.example.com (domovský adresář exampleuser) byl vytvořen automaticky a je vlastněn ftpuser a ftpgroup (uživatel/skupina, kterou jsme vytvořili na konci druhého kroku):

    [[email protected] ~]# ls -l /home/
    total 0
    drwx------. 2 administrator administrator 59 Sep 26 10:35 administrator
    drwxr-xr-x. 2 ftpuser       ftpgroup      22 Sep 26 12:07 www.example.com
    [[email protected] ~]#

    7 Správa databáze

    Pro většinu lidí je jednodušší, když mají grafický front-end k MySQL; proto můžete také použít phpMyAdmin (v tomto příkladu pod http://server1.example.com/phpMyAdmin/) ke správě databáze pureftpd.

    Kdykoli chcete vytvořit nového uživatele, musíte vytvořit záznam v tabulce ftpd, takže zde vysvětlím sloupce této tabulky:

    Tabulka ftpd:

    • Uživatel:Jméno virtuálního uživatele PureFTPd (např. exampleuser).
    • stav:0 nebo 1. 0 znamená, že účet je deaktivován, uživatel se nemůže přihlásit.
    • Heslo:Heslo virtuálního uživatele. Ujistěte se, že používáte funkci MD5 MySQL k uložení hesla zašifrovaného jako řetězec MD5:
    • UID:ID uživatele ftp uživatele, kterého jste vytvořili na konci druhého kroku (např. 2001).
    • GID:ID skupiny skupiny ftp, kterou jste vytvořili na konci druhého kroku (např. 2001).
    • Dir:Domovský adresář virtuálního uživatele PureFTPd (např. /home/www.example.com). Pokud neexistuje, bude vytvořen při prvním přihlášení nového uživatele přes FTP. Virtuální uživatel bude uvězněn do tohoto domovského adresáře, tj. nebude mít přístup k jiným adresářům mimo svůj domovský adresář.
    • ULBandwidth:Šířka pásma pro nahrávání virtuálního uživatele v kB/s. (kilobajtů za sekundu). 0 znamená neomezené.
    • Šířka DLBandwidth:Šířka pásma stahování virtuálního uživatele v kB/s. (kilobajtů za sekundu). 0 znamená neomezené.
    • komentář:Zde můžete zadat libovolný komentář (např. pro vaši interní administrativu). Normálně necháváte toto pole prázdné.
    • ipaccess:Zde zadejte IP adresy, které se mohou připojit k tomuto FTP účtu. * znamená, že se může připojit jakákoli IP adresa.
    • QuotaSize:Úložný prostor v MB (nikoli kB, jako v ULBandwidth a DLBandwidth!), který může virtuální uživatel používat na FTP serveru. 0 znamená neomezené.
    • QuotaFiles:množství souborů, které může virtuální uživatel uložit na server FTP. 0 znamená neomezené.

    8 anonymní FTP

    Pokud si chcete vytvořit anonymní ftp účet (ftp účet, ke kterému se může přihlásit každý bez hesla), potřebujete uživatele a skupinu s názvem ftp. Oba byly vytvořeny automaticky při instalaci balíčku pure-ftpd, takže je nemusíte vytvářet ručně. Homedir ftp je však ve výchozím nastavení /var/ftp, ale chtěl bych vytvořit anonymní adresář ftp v /home/ftp (adresáře ftp normálních uživatelů jsou také v /home, např. /home/www.example. com). Ale samozřejmě můžete použít adresář /var/ftp pro anonymní ftp, pokud to chcete.

    Pokud chcete použít /home/ftp, otevřete /etc/passwd a změňte homedir uživatele ftp z /var/ftp na /home/ftp (nedělejte to, pokud chcete použít /var/ftp):

    vi /etc/passwd
    [...]
    #ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    ftp:x:14:50:FTP User:/home/ftp:/sbin/nologin
    [...]

    Poté přesuňte /var/ftp do /home (nedělejte to, pokud chcete použít /var/ftp):

    mv /var/ftp /home

    Poté vytvoříme adresář /home/ftp/incoming, který umožní anonymním uživatelům nahrávat soubory. Adresáři /home/ftp/incoming udělíme oprávnění 311, aby uživatelé mohli nahrávat, ale neviděli ani stahovat žádné soubory v tomto adresáři. Adresář /home/ftp bude mít oprávnění 555, což umožňuje prohlížení a stahování souborů:

    chown ftp:nobody /home/ftp
    cd /home/ftp
    mkdir incoming
    chown ftp:nobody incoming/
    chmod 311 incoming/
    cd ../
    chmod 555 ftp/

    (Pokud chcete místo toho použít /var/ftp, nahraďte /home/ftp ve výše uvedených příkazech /var/ftp.)

    Anonymní uživatelé se budou moci přihlásit a budou moci stahovat soubory z /home/ftp, ale nahrávání bude omezeno na /home/ftp/incoming (a jakmile bude soubor nahrán do /home/ftp/incoming, nelze ji odtud číst ani stáhnout; administrátor serveru ji musí nejprve přesunout do /home/ftp, aby ji zpřístupnil ostatním).

    Nyní musíme nakonfigurovat PureFTPd pro anonymní ftp. Otevřete /etc/pure-ftpd/pure-ftpd.conf a ujistěte se, že v něm máte následující nastavení:

    vi /etc/pure-ftpd/pure-ftpd.conf
    [...]
    NoAnonymous                 no
    [...]
    AntiWarez                   no
    [...]
    AnonymousBandwidth            8
    [...]
    AnonymousCantUpload         no
    [...]

    (Nastavení AnonymousBandwidth je volitelné – umožňuje vám omezit šířku pásma pro nahrávání a stahování pro anonymní uživatele. 8 znamená 8 KB/s. Použijte libovolnou hodnotu, nebo zakomentujte řádek, pokud nechcete omezit šířku pásma.)

    Nakonec restartujeme PureFTPd:

    systemctl restart pure-ftpd.service

    • PureFTPd:http://www.pureftpd.org/
    • MySQL:http://www.mysql.com/
    • phpMyAdmin:http://www.phpmyadmin.net/
    • CentOS:http://centos.org/

    Cent OS
    1. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 14.04LTS

    2. FTP server s PureFTPd, MariaDB a virtuálními uživateli (včetně správy kvót a šířky pásma) na CentOS 7.2

    3. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na Ubuntu 7.10 (Gutsy Gibbon)

    1. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 8.04 LTS

    2. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na Ubuntu 8.10 (Intrepid Ibex)

    3. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 8.10

    1. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na Ubuntu 9.04 (Jaunty Jackalope)

    2. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na Ubuntu 9.10 (Karmic Koala)

    3. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na Ubuntu 10.10 (Maverick Meerkat)