GNU/Linux >> Znalost Linux >  >> Panels >> Webmin

Server ProFTPD

Tato stránka vysvětluje protokol FTP a poté popisuje, jak nastavit server ProFTPD a jak jej nakonfigurovat pro různé účely.

Poznámka: Vzhledem k tomu, že moderní FTP klienti podporují SSH, zvažte použití SSH serveru místo FTP serveru, protože zajistí (mnohem) větší bezpečnost, než může jakýkoli FTP server slíbit

Obsah

Úvod do FTP a ProFTPD

FTP je zkratka pro protokol přenosu souborů a spolu s telnet a SMTP je jedním z nejstarších protokolů, které se stále běžně používají na internetu. FTP je navržen tak, aby umožňoval klientským programům číst, zapisovat a odstraňovat soubory na vzdáleném serveru bez ohledu na operační systém, na kterém server běží. V podstatě se jedná o protokol pro sdílení souborů, ale na rozdíl od běžnějších protokolů NFS a SMB je vhodnější pro použití v síti s pomalou nebo vysokou latencí.

FTP se obvykle používá k přenosu souborů z jednoho systému do druhého. Někdy jsou tyto soubory obrazy CD distribuce Linuxu nebo balíčky RPM, stažené různými hostitelskými klienty na internetu z velkého serverového systému, který je hostí, aby k nim měl přístup každý. Jindy jsou soubory stránky pro webovou stránku, nahrané klientem FTP provozovaným vlastníkem webu do systému, který provozuje webový server i server FTP.

I když byl protokol FTP jako způsob stahování souborů většinou nahrazen HTTP, stále má mnoho výhod. Největší je schopnost klientů nahrávat soubory na server, za předpokladu, že je nakonfigurován tak, aby to umožňoval. Dalším je polostandardní formát výpisu adresářů, který mohou klienti použít k načtení seznamu souborů v adresáři ze serveru.

Když se FTP klient připojuje k serveru, musí se nejprve ověřit, než bude možné provést přenos souborů. Klienti se často přihlásí jako speciální anonymní uživatel, který nevyžaduje žádné heslo a je obvykle nakonfigurován tak, aby mohl pouze stahovat soubory. Na unixových systémech většina FTP serverů umožňuje jakémukoli místnímu uživateli přihlásit se pomocí stejného uživatelského jména a hesla, jaké by použil pro telnet nebo SSH, a poskytnout svému klientovi přístup ke stejným souborům se stejnými oprávněními.

Další unikátní vlastností protokolu FTP je jeho podpora pro překlad souborů mezi datovým formátem používaným na klientovi a datovým formátem používaným na serveru. Nejběžnějším využitím tohoto je převod textových souborů mezi formáty Unix, Windows a MacOS, z nichž každý používá jiné znaky k reprezentaci konce řádku. Tuto funkci lze zakázat pro přenos binárních souborů, jako jsou obrázky, spustitelné soubory a ISO, protože poškozuje netextová data.

Existuje mnoho různých FTP klientských programů, od základních unixových ftp příkazů až po prohlížeče jako IE a Mozilla. Každý moderní operační systém má alespoň jeden a téměř všechny standardně obsahují nějakého klienta. FTP serverů je také mnoho, ale tato kapitola se zaměřuje pouze na jeden - ProFTPD, což je podle mého názoru nejflexibilnější server dostupný pro operační systémy Unix.

Přestože jsou všechny varianty Unixu standardně dodávány s FTP serverem, dodaný server je obvykle buď velmi základní a postrádá funkce, nebo je výkonnější WU-FTPd. Ačkoli druhý má mnoho konfigurovatelných možností, není tak schopný jako ProFTPD, pokud jde o virtuální hosting, omezení adresářů a zamykání uživatelů do jejich domovských adresářů.

ProFTPD obecně používá jeden konfigurační soubor, který se nachází na /etc/proftpd.conf. Tento soubor se skládá z direktiv, z nichž každá obvykle zabírá jeden řádek a má název a hodnotu. Každá direktiva nastavuje jednu konfigurovatelnou možnost, jako je název skrytého souboru nebo cesta k uvítací zprávě. Existují také speciální direktivy kontejneru pro seskupení dalších direktiv, které se vztahují pouze na jeden virtuální server nebo adresář, které zahrnují více řádků.

Modul serveru ProFTPD

Ikonu modulu ProFTPD Server lze nalézt ve Webminu pod záložkou Servery v hlavním menu. Když na něj kliknete, zobrazí se hlavní stránka modulu, jak je znázorněno na obrázku níže, za předpokladu, že máte server skutečně nainstalovaný.


Modul serveru ProFTPD

Pokud se na hlavní stránce místo toho zobrazí chybová zpráva jako *Server ProFTPD /usr/sbin/proftpd nebyl ve vašem systému nalezen*, pak server pravděpodobně není nainstalován a modul nelze použít. Většina linuxových distribucí obsahuje balíček ProFTPD na svém disku CD nebo webové stránce, takže k jeho instalaci použijte modul Software Packages (popsaný v kapitole 12). Pokud žádný balíček neexistuje, stáhněte si zdrojový kód z www.proftpd.org, zkompilujte jej a nainstalujte.

Pokud již máte nainstalovaný nějaký jiný FTP server, měl by být nejprve odstraněn, aby nedošlo ke konfliktu.

Další chyba, kterou může zobrazit hlavní stránka, je *Program /usr/sbin/ftpd se nezdá být serverem ProFTPD*. K tomu dojde, pokud Webmin zjistí, že je místo toho nainstalován nějaký jiný FTP server – pokud ano, budete jej muset odebrat a nainstalovat ProFTPD.

ProFTPD lze spustit ve dvou různých režimech – buď jako samostatný proces démona, který naslouchá připojení FTP, nebo ze superserveru, jako je inetd nebo xinetd. První z nich přijímá připojení rychleji, ale za cenu většího využití paměti procesem, který běží neustále. To druhé je lepší pro systémy, které neočekávají, že budou přijímat velké množství FTP provozu, protože program ProFTPD se spustí pouze tehdy, když je potřeba.

Protože se samostatný režim snadněji nastavuje a protože na většině systémů je dostatek paměti, předpokládá tato kapitola, že jej budete spouštět v tomto režimu. Chcete-li spustit proces serveru ProFTPD, postupujte takto :

  1. V modulu Internetové služby a protokoly (pokryté Internetovými službami) se ujistěte, že jakákoli existující služba s názvem ftp má Program zakázán nebo Není přiřazen žádný program vybraný. To zajišťuje, že inetd nebude spouštět žádnou službu FTP. Pokud zakážete službu, nezapomeňte kliknout na Použít změny tlačítko na hlavní stránce modulu pro aktivaci změn.
  2. V modulu Extended Internet Services se ujistěte, že všechny služby s ftp v názvu (např. wu-ftpd, proftpd nebo vsftpd) mají svou Službu povolenou? pole nastaveno na Ne . Opět budete muset kliknout na moduly Použít změny pro aktivaci jakýchkoli změn.
  3. Zpět v modulu ProFTPD Server klikněte na ikonu Možnosti sítě.
  4. Vyberte Samostatný démon z Typ serveru Jídelní lístek.
  5. Klikněte na tlačítko Uložit tlačítko v dolní části stránky.
  6. Zpět na hlavní stránku modulu, tlačítko označené Spustit server by se měla objevit ve spodní části. Klepnutím na něj spustíte démona ProFTPD.
  7. Pokud chcete, aby byl démon restartován při bootování, použijte modul Bootup and Shutdown k vytvoření akce nazvané proftpd, která spustí příkaz /usr/sbin/proftpd při bootu. Skutečná cesta může být /usr/local/sbin/proftpd nebo /usr/sbin/in.proftpd v závislosti na tom, jakou distribuci Linuxu používáte, nebo zda jste si program zkompilovali a nainstalovali sami místo použití balíčku. Některé balíčky ProFTPD také mohou obsahovat spouštěcí skript, jako je tento, který možná budete muset povolit.

Jakmile je ProFTPD spuštěn, můžete jej otestovat pomocí příkazového řádku Unix FTP klienta pro připojení k vašemu vlastnímu systému. Stačí spustit ftp localhost a ujistěte se, že se můžete přihlásit jako jiný uživatel než root. Zda je server skutečně ProFTPD, můžete ověřit kontrolou verze zobrazené příkazem ftp těsně před výzvou k zadání uživatelského jména, pokud nebyl ve výchozím nastavení nakonfigurován tak, aby nezobrazoval informace o verzi.

Spuštění ProFTPD z inetd nebo xinetd

Nastavení ProFTPD pro spuštění ze super-serveru také není příliš těžké a může být dobré, pokud má váš systém málo paměti nebo téměř nikdy nepřijímá FTP připojení. Než to budete moci udělat, musíte ukončit jakýkoli existující proces serveru proftpd (snadno to provedete pomocí modulu Running Processes) a zakázat nebo odstranit jakoukoli akci, která jej spouští při spouštění.

Pokud váš systém používá nadřazený xinetd, postupujte podle těchto pokynů pro nastavení služby FTP. Protože mnoho balíčků obsahuje konfigurační soubor /etc/xinetd.d pro server, některá pole vysvětlená níže již mohou být správně vyplněna.

  1. Přejděte do kategorie Webmin Networking a klikněte na ikonu *Extended Internet Services*. Pokud neexistuje, xinetd není nainstalován a budete muset nastavit server pomocí inetd.
  2. Na hlavní stránce modulu vyhledejte existující službu s názvem ftp nebo proftp. Pokud nějaká existuje, klikněte na ni – v opačném případě postupujte podle Vytvořit novou internetovou službu odkaz nad nebo pod tabulkou.
  3. V Název služby zadejte ftp (pokud již není vyplněno).
  4. Ujistěte se, že Ano možnost je vybrána v Služba povolena? pole.
  5. Ponechte Vazba na adresu pole nastaveno na Vše a *číslo portu* na Standardní nebo 21 .
  6. Vyberte možnost Stream z Typ soketu a Výchozí nebo TCP z Protokolu seznam.
  7. V části Služba obsluhovaná vyberte Serverový program a zadejte cestu ke spustitelnému souboru proftpd (například /usr/sbin/proftpd ) do sousedního textového pole. Cesta závisí na tom, zda jste program nainstalovali z balíčku nebo jej zkompilovali ze zdrojového kódu.
  8. V části Spustit jako uživatel zadejte root .
  9. Vyberte možnost Ne pro Počkat na dokončení? pole.
  10. Ponechte všechna ostatní pole nastavena na výchozí hodnoty a stiskněte tlačítko Uložit nebo Vytvořit tlačítko ve spodní části formuláře.
  11. Zpět na hlavní stránce modulu klikněte na Použít změny tlačítko pod seznamem služeb.

Alternativně pro nastavení služby inetd pro ProFTPD pomocí modulu Internetové služby a protokoly postupujte takto:

  1. Přejděte do kategorie Webmin Networking a klikněte na ikonu *Internet Services and Protocols*. Pokud neexistuje, váš systém pravděpodobně místo toho používá xinetd – pokyny k jeho konfiguraci naleznete v krocích v předchozím odstavci.
  2. Na hlavní stránce modulu klikněte na ftp v tabulce *Internetové služby*. Pokud není vidět, zadejte ftp do pole *Upravit službu* a stiskněte tlačítko. V obou případech se zobrazí stejná stránka pro úpravu služby protokolu FTP.
  3. V Serverovém programu vyberte Program povolen .
  4. V poli Program , vyberte Příkaz a do pole vedle zadejte úplnou cestu ke spustitelnému serveru ProFTPD, například /usr/sbin/proftpd . V Args zadejte pouze proftpd . Cesta závisí na tom, zda jste program nainstalovali z balíčku nebo jej zkompilovali ze zdrojového kódu.
  5. Nastavte režim čekání na Nečekejte a zadejte root v Spustit jako uživatel pole. Všechny ostatní mohou být ponechány beze změny.
  6. Klikněte na tlačítko Uložit a poté zpět na hlavní stránce modulu klepněte na Použít změny .

Jakmile je ProFTPD nastaven tak, aby se spouštěl z inetd nebo xinetd, můžete jej otestovat pomocí příkazového řádku Unix FTP klienta pro připojení k vašemu vlastnímu systému. Stačí spustit ftp localhost a ujistěte se, že se můžete přihlásit jako jiný uživatel než root. Pokud se vaše testovací připojení nezdaří s chybou jako Služba není dostupná , nejpravděpodobnější příčinou je, že ProFTPD je nakonfigurován tak, aby běžel jako samostatný server. To lze snadno opravit pomocí následujících kroků :

  1. Přejděte do modulu ProFTPD Server a klikněte na ikonu *Možnosti sítě* na hlavní stránce.
  2. Z Typ serveru ve formuláři, který se zobrazí, vyberte Spustit z Inetd .
  3. Klikněte na tlačítko Uložit tlačítko v dolní části stránky.

Pokyny ve zbytku této kapitoly budou fungovat dobře bez ohledu na to, ve kterém režimu ProFTPD běží. Jediný rozdíl je v tom, že Použít změny tlačítko se na hlavní stránce nezobrazí, protože není nutné znovu spouštět proces serveru, aby se změny konfigurace projevily. Místo toho se změny použijí na další spuštěnou relaci FTP.

Použití modulu ProFTPD Server

ProFTPD používá velmi podobný formát konfiguračního souboru jako Apache, takže uživatelské rozhraní tohoto modulu je v mnoha ohledech stejné jako konfigurační modul Apache. Na nejvyšší úrovni konfigurace jsou globální nastavení, která ovlivňují celý server. Pod nimi jsou virtuální servery a pak anonymní možnosti FTP, možnosti pro jednotlivé adresáře a možnosti, které se vztahují pouze na určité příkazy FTP.

Možnosti, které se vztahují na každé připojení nebo příkaz FTP, jsou určeny připojeným virtuálním serverem, typem přihlášení, adresářem, ve kterém je požadovaný soubor, a konkrétním použitým příkazem FTP. Možnosti nastavené objekty níže v hierarchii přepíší možnosti na vyšších úrovních, takže můžete zabránit odesílání na server, ale povolit to pro adresář. Podobně volby pro specifičtější adresář (jako /usr/local/upload) přepíší volby pro jeho rodiče (jako /usr/local).

Speciálním případem je výchozí server, který definuje nastavení pro klienty, kteří se nepřipojují k žádnému konkrétnímu virtuálnímu serveru. Na rozdíl od Apache neovlivňují možnosti nastavené ve výchozím serveru virtuální servery. Místo toho, pokud chcete zadat nějaké nastavení, které je ovlivňuje všechny, musí být ve speciální globální sekci konfigurace ProFTPD. To platí také pro specifické možnosti adresáře a příkazu FTP.

Modul má stránku pro úpravy možností pro každý objekt ve stromu, která obsahuje ikony odkazující na objekty níže. Například na stránce možností virtuálního serveru jsou ikony pro různé kategorie možností, které se vztahují na daný server (jako je protokolování a uživatel a skupina), spolu s ikonami pro všechny adresáře nebo příkazy FTP, které mají vlastní možnosti v rámci virtuálního serveru. server. Je zde také ikona pro možnosti specifické pro anonymní FTP připojení.

Na každé stránce v hierarchii jsou formuláře pro přidávání objektů (jako je adresář nebo skupina příkazů FTP) a Konfigurovat ikona pro změnu nebo odstranění aktuálního objektu. Každá stránka také obsahuje Upravit směrnice ikona umožňuje zobrazit a ručně změnit direktivy ProFTPD pro adresář, virtuální server nebo cokoli, co stránka představuje. Výjimkou je výchozí stránka serveru, která žádné takové ikony nemá, protože ji nelze změnit ani smazat a protože její direktivy nelze oddělit od zbytku konfiguračního souboru.

Na první pohled se mohou některé formuláře v modulu zdát skličující, protože zobrazují pole pro téměř všechny dostupné možnosti ProFTPD v některé kategorii související s objektem. Mnohé z těchto možností jsou však extrémně specializované a lze je většinu času ignorovat. Kroky v různých částech této kapitoly vysvětlují, které z nich potřebujete upravit, abyste dosáhli určitého výsledku – ostatní můžete nechat být, protože jejich výchozí hodnoty jsou obvykle dostatečné.

Protože každá nová verze ProFTPD, která je vydána, podporuje nové direktivy, může tento modul detekovat verzi, kterou používáte, a upravit své uživatelské rozhraní tak, aby zobrazovalo pouze ta pole, která jsou platná pro vaši verzi. To znamená, že formuláře nemusí na všech systémech vypadat úplně stejně a že některé části pokynů v této kapitole nemusí být platné pro váš FTP server, pokud používáte starší verzi.

Vytváření virtuálních serverů

Pravděpodobně nejužitečnější funkcí ProFTPD je jeho podpora pro virtuální FTP servery. To vám umožňuje definovat zcela odlišnou sadu možností, které se vztahují na klienty připojující se k určité IP adrese. Ve většině ohledů jsou podobné virtuálním serverům Apache založeným na IP, které by měla znát většina správců webových stránek.

Virtuální servery jsou opravdu užitečné pouze v případě, že váš systém má více IP adres. Obvykle se to provádí přidáním dalších virtuálních IP adres do vašeho síťového rozhraní připojeného k Internetu, jak je vysvětleno na stránce Konfigurace sítě. Jakékoli další IP adresy musí být jako obvykle správně směrovány do vašeho systému – pokud jste připojeni k ISP a máte přiřazenu pouze jednu statickou adresu, nemůžete jen přidat další virtuální rozhraní a očekávat, že budou fungovat. Na rozdíl od Apache nepodporuje ProFTPD virtuální servery založené na názvech, protože pro ně neexistuje žádné ustanovení v protokolu FTP. Klienti serveru nikdy nesdělují název hostitele, ke kterému se připojují, takže server FTP může k určení, který virtuální server klient požaduje, použít pouze adresu IP, na které bylo přijato připojení.

Když váš systém přijme FTP připojení, ProFTPD porovná připojenou adresu s adresami všech nakonfigurovaných virtuálních serverů. První, která se shoduje, definuje možnosti, které se vztahují na připojení. Pokud není nalezena žádná shoda, použije se místo toho výchozí server.

Chcete-li do systému přidat nový virtuální FTP server, postupujte takto:

  1. V modulu Konfigurace sítě přidejte novou virtuální IP adresu do externího síťového rozhraní ve vašem systému. Ujistěte se, že bude aktivován při spouštění a je aktivní nyní.
  2. Zpět v modulu ProFTPD Server přejděte dolů na formulář *Vytvořit virtuální server* ve spodní části hlavní stránky.
  3. V části Adresa zadejte IP adresu, kterou jste právě přiřadili. Neměl by být používán žádným jiným již definovaným virtuálním serverem.
  4. Opusťte Port pole nastaveno na Výchozí .
  5. V Název serveru vyberte druhý přepínač a zadejte název tohoto serveru, který se zobrazí připojujícím se klientům. Můžete například zadat _FTP server Example Corporation_. Pokud je Výchozí je vybrána, klienti místo toho uvidí zprávu jako ProFTPD 1.2.2rc2 Server.
  6. Klepněte na Vytvořit tlačítko pro přidání serveru. Jakmile bude vytvořen, budete přesměrováni na stránku možností nového serveru.
  7. Vraťte se na hlavní stránku modulu a klikněte na Použít změny tlačítko pro aktivaci.

Jakmile je virtuální server vytvořen, můžete nastavit možnosti, které se na něj vztahují, kliknutím na jeho ikonu na hlavní stránce a poté na jednu z ikon kategorií. Některé z nich jsou podrobněji vysvětleny dále v kapitole. Je také možné změnit atributy virtuálního serveru kliknutím na Konfigurovat virtuální server , upravte pole ve formuláři (která mají stejný význam jako ve formuláři pro vytvoření) a klikněte na Uložit . Nebo jej můžete úplně odstranit kliknutím na Odstranit virtuální server tlačítko na konfiguračním formuláři.

Nastavení anonymního FTP

Ve výchozí konfiguraci ProFTPD obecně umožní všem uživatelům Unixu přihlásit se svými normálními hesly a přistupovat ke všem souborům v systému se stejnými oprávněními, která by měli, kdyby se přihlásili přes telnet nebo SSH. Některé balíčky mají také povolený anonymní FTP pro výchozí server, takže kdokoli se může připojit jako anonymní uživatel a prohlížet soubory v určitém adresáři. Chcete-li nastavit anonymní FTP pro nový virtuální server, nakonfigurovat, co mohou klienti dělat a ke kterým adresářům mohou přistupovat, postupujte takto :

  1. Na hlavní stránce modulu klikněte na ikonu výchozího nebo virtuálního serveru, pro který chcete nakonfigurovat anonymní FTP.
  2. Na stránce možností virtuálního serveru klikněte na ikonu *Anonymní FTP*. Pokud je to poprvé, co byl pro tento server nastaven, objeví se malý formulář pro zadání anonymního nastavení FTP.
  3. V Omezit na adresář zadejte adresář, na který mají být anonymní klienti omezeni, například /home/example.com/anonftp .
  4. V části Přistupovat k souborům jako uživatel vyberte druhý přepínač a zadejte jméno neprivilegovaného uživatele Unixu, jako je ftp nebo nikdo . Klienti budou nejen omezeni na vybraný adresář, ale budou také moci přistupovat pouze k souborům s oprávněními daného uživatele Unixu. Samozřejmě byste se měli ujistit, že skutečně umí číst a vypisovat adresář a soubory, které obsahuje. Tento uživatel nesmí být v seznamu zakázaných ProFTPD nebo mít neplatný shell. Viz Omezení, kdo se může přihlásit sekce dále v kapitole, kde najdete více informací o úpravě tohoto seznamu a umožnění uživatelům s libovolným shellem.
  5. Pokud jste rádi, že klienti používají skupinová oprávnění uživatele nastavená v předchozím poli, ponechte pole *Přístup k souborům jako skupina* nastaveno na Výchozí . V opačném případě vyberte druhý přepínač a do jeho pole zadejte název skupiny.
  6. Klepněte na Vytvořit tlačítko pro nastavení počáteční anonymní konfigurace FTP. Za předpokladu, že bude úspěšný, bude prohlížeč přesměrován na stránku anonymních možností FTP, na které jsou ikony pro různé kategorie konfigurovatelných možností, které se týkají anonymních připojení FTP.
  7. Klikněte na Authentication a do tabulky aliasů uživatelských jmen zadejte anonymní pod Přihlašovací uživatelské jméno a jméno uživatele, kterého jste vybrali v kroku 4 v části Skutečné uživatelské jméno . To říká ProFTPD, že klientům, kteří se přihlašují jako anonymní, by měla být udělena oprávnění daného uživatele.
  8. Klikněte na tlačítko Uložit tlačítko pro návrat na stránku anonymních možností FTP.
  9. V příkazech FTP zadejte WRITE a klikněte na Vytvořit tlačítko pro zahájení procesu definování voleb, které se vztahují na příkazy FTP, které upravují data na serveru. Budete přesměrováni na stránku možností jednotlivých příkazů.
  10. Klikněte na Řízení přístupu a vyberte Odmítnout všechny klienty v Řízení přístupu oblasti politiky. To říká ProFTPD, aby blokoval pokusy anonymních klientů nahrávat, mazat nebo přejmenovávat soubory.
  11. Klikněte na tlačítko Uložit knoflík.
  12. Vraťte se na hlavní stránku modulu a klikněte na Použít změny . Abyste se ujistili, že vše funguje, zkuste se přihlásit na virtuální server jako anonymní uživatel a stáhnout nějaké soubory.

Používáte-li svůj systém k hostování více webových stránek a serverů FTP pro různé zákazníky, každý může mít svůj vlastní virtuální anonymní server, aby byly soubory dostupné lidem prostřednictvím FTP. Prohlížeče předpokládají, že ftp:// URL vyžadují anonymní přihlášení a většina z nich si neporadí s FTP servery, které vyžadují ověření.

Omezení uživatelů na jejich domovské adresáře

Ve výchozím nastavení mohou klienti, kteří se přihlásí do ProFTPD jako platný unixový uživatel (ne anonymní), procházet celý souborový systém vašeho systému, stejně jako by mohli, kdyby se uživatel přihlásil přes SSH nebo telnet. To však není vždy žádoucí na systému, který má více nedůvěryhodných uživatelů, kterým chcete zabránit ve vzájemném prohlížení souborů. Přestože lze unixová oprávnění použít k tomu, aby si uživatelé navzájem nevypisovali adresáře, způsobují problémy, pokud také provozujete webový server a potřebujete, aby jeho uživatel httpd měl přístup k souborům všech.

Naštěstí ProFTPD usnadňuje omezení uživatelů na jejich domovské adresáře nebo na nějaký jiný adresář. Protože to platí pouze pro FTP připojení, je docela zbytečné, pokud tito uživatelé mohou používat telnet nebo SSH. Je však snadné umožnit uživateli připojit se pouze přes FTP tím, že mu poskytnete shell jako /bin/false. Na virtuálním hostingovém serveru uživatelé skutečně potřebují pouze nahrávat soubory pro své webové stránky a vůbec nepotřebují přístup k unixovému shellu. Jen se ujistěte, že /bin/false nebo jakýkoli jiný nefunkční shell, který zvolíte, je zahrnut v souboru /etc/shells, aby ProFTPD neodepřel uživatelům přístup.

Chcete-li omezit adresáře, ke kterým mohou klienti FTP přistupovat, postupujte takto :

  1. Pokud chcete omezení použít pouze na jeden virtuální server, klikněte na jeho ikonu na hlavní stránce modulu a poté na Soubory a adresáře ikonu na stránce možností virtuálního serveru. To však není vhodné, protože to může uživatelům umožnit vyhnout se omezení připojením k jinému virtuálnímu serveru. Místo toho byste měli kliknout na Soubory a adresáře ikonu v Globální konfiguraci sekce na hlavní stránce - veškerá omezení v ní definovaná budou platit pro všechny servery. V obou případech se zobrazí stránka pro konfiguraci toho, jak server uvádí adresáře a které z nich jsou k dispozici (zobrazeno na snímku obrazovky níže).
  2. Omezit uživatele na adresáře pole je ve skutečnosti tabulka, která umožňuje zadávat omezení jednoho adresáře najednou. Bude mít vždy jeden prázdný řádek, a pokud se jedná o první takové omezení, které jste vytvořili, bude obsahovat vše. V Adresáři vyberte Domovský adresář pokud chcete, aby tam byli uživatelé omezeni. Případně můžete vybrat třetí přepínač a zadat cestu jako /home nebo /var/www omezit uživatele na tento adresář. Je také možné zadat cestu relativní k domovským adresářům uživatelů, například ~/public_html . Ve skupinách Unix vyberte možnost Všichni chcete-li, aby se omezení vztahovalo na všechny uživatele, nebo vyberte druhý přepínač a zadejte název skupiny, aby se vztahovalo pouze na členy této skupiny. Více skupin lze zadat tak, že jejich jména oddělíte čárkami, například uživatelé, zaměstnanci .
  3. Klikněte na tlačítko Uložit tlačítko pro návrat na stránku možností virtuálního serveru. Pokud chcete přidat další omezení (například pro jinou skupinu a adresář), klikněte na Soubory a adresáře znovu a vyplňte nový prázdný řádek v tabulce.
  4. Po dokončení se vraťte na hlavní stránku modulu a stisknutím tlačítka *Použít změny* aktivujte omezení.


Soubory a adresáře tvoří

Od nynějška, když se uživatelé s omezeným přístupem připojí, nebudou moci vidět soubory mimo zadaný adresář nebo dokonce zjistit, na který adresář byli omezeni. Na rozdíl od některých jiných FTP serverů, které podporují tento druh omezení, není potřeba kopírovat žádné soubory nebo knihovny jako /bin/ls do adresáře, protože ProFTPD není závislý na žádných externích programech.

Omezení, kdo se může přihlásit

ProFTPD neumožňuje každému uživateli Unixu se přihlásit, i když má platná uživatelská jména a hesla. Samostatný soubor /etc/ftpusers obsahuje seznam uživatelů, kteří se nemohou autentizovat, což obvykle zahrnuje systémové účty, jako je bin, daemon a uucp. Kromě toho existuje samostatná možnost konfigurace, která řídí, zda se uživatel root může přihlásit nebo ne. Ve výchozím nastavení tomu tak není, protože hesla odesílaná protokolem FTP nejsou zašifrována a povolení roota k ověření by tedy mohlo představovat velké bezpečnostní riziko.

ProFTPD také ve výchozím nastavení brání uživatelům bez platného shellu v přihlášení. Platný shell je uveden v souboru /etc/shells. Tato funkce může být užitečná pro zabránění přihlášení velké skupiny uživatelů, například těch, kteří se mají připojit pouze k serveru POP3 a stáhnout si e-maily. V případě potřeby jej však lze vypnout.

Chcete-li upravit seznam zakázaných uživatelů a další omezení přihlášení, postupujte takto :

  1. Na hlavní stránce modulu klikněte na Odmítnutí uživatelé FTP ikona. Ve formuláři, který se objeví, je textové pole se seznamem všech blokovaných uživatelů Unixu. Upravte jej, abyste přidali nebo odebrali ty, kterým by nemělo být nebo by mělo být povoleno se přihlásit, a klikněte na Uložit knoflík.
  2. Chcete-li povolit připojení uživatele root, klikněte na Autentizace a změňte Povolit přihlášení uživatelem root? pole na Ano .
  3. Chcete-li povolit přihlášení uživatelům s neuvedenými shelly, změňte pole *Povolit přihlášení pouze uživatelům s platným shellem?* na Ano také.
  4. Klikněte na tlačítko Uložit se vraťte na hlavní stránku a poté klikněte na Použít změny aby byla nová omezení aktivní.

Možnosti pro povolení přihlášení uživatele root a uživatelů s neplatnými shelly lze také nastavit na bázi jednotlivých virtuálních serverů v části Authentication ikonu na stránce možností virtuálního serveru. Z bezpečnostního hlediska však není obecně užitečné povolit přihlášení klientů pouze jednoho serveru, protože uživatelé si mohou vybrat libovolný server, ke kterému se připojí.

Nastavení možností výpisu adresáře

Normálně, když FTP klient požaduje výpis adresáře, ProFTPD vrátí úplný přesný seznam ve formátu vytvořeném příkazem ls -l. Někdy to však poskytuje příliš mnoho informací o vašem systému, jako jsou jména uživatelů a skupin nebo symbolické cíle odkazů. Často může být užitečné skrýt určité soubory, které nejsou relevantní pro klienty, tím, že musí být uloženy v adresáři přístupném přes FTP z jiných důvodů. Tento druh skrývání informací se nejlépe uplatní u anonymních uživatelů FTP, protože by neměli být schopni zjistit o vašem systému nic, co nepotřebují vědět.

Chcete-li změnit formát výpisů adresářů, postupujte takto:

  1. Na hlavní stránce modulu klikněte na ikonu výchozího nebo virtuálního serveru, pro který chcete změnit výpisy adresářů, aby se zobrazila stránka jeho možností.
  2. Za předpokladu, že chcete změnit uvedené informace pouze pro anonymní klienty, klikněte na Anonymní FTP přejděte na stránku anonymních možností FTP. Jinak budou ovlivněni i normální uživatelé Unixu.
  3. Klikněte na Soubory a adresáře zobrazíte formulář podobný tomu na obrázku 40-3 pro nastavení různých možností výpisu.
  4. Chcete-li skrýt soubory s určitými vlastníky skupin, zadejte jeden nebo více názvů skupin oddělených mezerami do pole *Skrýt soubory vlastněné skupinami*. Uvědomte si, že soubory skryté tímto způsobem lze stále stahovat, přejmenovávat nebo mazat, pokud tomu nebrání unixová oprávnění nebo konfigurace serveru.
  5. Podobně, chcete-li skrýt soubory s určitým vlastnictvím uživatele, vyplňte Skrýt soubory vlastněné uživateli pole se seznamem unixových uživatelských jmen.
  6. Chcete-li skrýt soubory, které by anonymní uživatel FTP nemohl číst, změňte Skrýt soubory, ke kterým nelze získat přístup? pole na Ano .
  7. Chcete-li, aby ProFTPD převedl symbolické odkazy ve výpisech na jejich oprávnění a velikost cílového souboru, změňte pole *Zobrazit symbolické odkazy?* na Ano . Normálně se zobrazuje odkaz i název cíle a zobrazená oprávnění a vlastnictví jsou oprávnění a vlastnictví odkazu. I když je tato funkce povolena, cíl odkazu musí být stále v anonymním adresáři FTP.
  8. Normálně seznamy adresářů obsahují skutečné uživatele a vlastníky skupin souborů. Chcete-li to změnit, nastavte pole *Falešná skupina ve výpisech adresářů?* na Ano, jako skupina . Poté z pole níže vyberte buď ftp vynutíte, aby byl vlastník skupiny vždy zobrazen jako ftp, nebo třetí přepínač, aby se zobrazil jako jakákoli skupina, kterou jste zadali do sousedního textového pole. Možnost *Připojená skupina* má smysl pouze pro neanonymní klienty, protože se zdá, že soubory vlastní primární skupina připojeného uživatele.
  9. Podobně můžete změnit vlastníka souborů uživatele Unix pomocí Falešný uživatel ve výpisech adresářů? pole. Pokud zvolíte *Připojený uživatel*, soubory se budou jevit jako vlastněné uživatelem aktuálně přihlášeným na FTP server.
  10. Ve výchozím nastavení zobrazuje ProFTPD ve výpisech skutečná oprávnění k souborům Unix. Chcete-li místo toho vynutit zobrazování padělků, vyberte druhou možnost v Falešná oprávnění ve výpisech adresářů a zadejte osmičkové číslo jako 0644 typu používaného příkazem chmod. To nemá žádný vliv na skutečná oprávnění, která platí, pokud se klient pokusí stáhnout nebo nahrát soubor.
  11. Chcete-li ve výpisech skrýt tečkové soubory jako .login a .profile (jak to obvykle dělá příkaz ls), nastavte *Zobrazit soubory začínající na . ve výpisech?* na Ano .
  12. Nakonec klikněte na Uložit tlačítko ve spodní části stránky pro aktualizaci konfiguračního souboru ProFTPD.
  13. Return to the module's main page and press the Apply Changes button to make the settings active.

As well as hiding certain files (as explained in steps 4 and 5), you can also prevent clients from reading or writing those files altogether. This can be done using the Make hidden files inaccessible? field, explained in the Restricting access to FTP commands section later in the chapter.

Message and readme files

ProFTPD can be configured to display messages to clients when they login or enter certain directories. This can be useful for notifying users of possible mirror sites, the locations of various common files on the server, and the details of the contents of a directory.

To set the messages that are displayed to clients, follow these steps :

  1. If you want the messages to be used by all virtual servers, click on the Authentication icon on the module's main page. To set messages for a specific virtual server, click on its icon and then on Authentication on the server options page. Either way, the same form will be displayed. It is also possible to set most of the message file options below for only anonymous clients by clicking on the Anonymous FTP icon on the virtual server page and then on Authentication . Naturally, you cannot set the pre-login message because the server does not know if a client is anonymous or not at that stage.
  2. In the Pre-login message file field, enter the full path to a file whose contents should be sent to clients as soon as they connect. If you don't want any message file to be used at all, select None namísto.
  3. In the Post-login message file field, enter the path to a text file whose contents will be sent to clients after they have been properly authenticated. If the client is limited to a directory (because it logged in anonymously or has a home directory restriction in force), the file must be within and relative to that directory. If the filename is relative (like welcome.txt ), it will be searched for in the directory that the client is initially placed in.
  4. To set a message sent to clients when they request to disconnect, fill in the Logout message file pole. Again, this must be relative to and under any directory that the client is restricted to.
  5. If you have a restriction on the maximum number of simultaneous logins in force, you can set the message sent to clients blocked by it by filling in the Too many connections message file pole. You should enter a full path, which can be anywhere on your system. See the Limiting concurrent logins section for more details.# Hit the Save button at the bottom of the page to go back to the global, virtual server or anonymous FTP options page.
  6. Click on the Files and Directories icon on the same page.
  7. In the Directory README filename field, enter a relative name like readme.txt that will be searched for in each directory that a client enters. If this is the first time the client has entered the directory in this session (or if the file has changed since the last time), its contents will be sent to the FTP client.
  8. To have the server send a message to clients suggesting that a particular file should be read, fill in the *Notify user of readme files matching* field. If files in the directory matching the specified regular expression (like README.* ) exist, a short message containing their names and modification times will be sent.
  9. Klikněte na tlačítko Uložit button on this form, then return to the module's main page. Finally click the Apply Changes button to activate the new message file settings.

The files sent to the client by the options covered above can contain certain special cookies that start with a %, which are replaced by ProFTPD with text determined at the time of sending. According to the ProFTPD documentation, the currently supported cookies are :

Not all may make sense in all situations though - for example, %U will not be set in the pre-login message file.

Setting per-directory options

The ProFTPD module allows you to set options that apply only to a specific directory, rather than globally or to an entire virtual server. This allows you to do things like hide a directory from clients, allow uploads by anonymous clients in just one location, or set the user and group ownership of files added to a directory.

To create a new set of per-directory options, follow these steps:

  1. If you want the options to apply to all virtual servers, enter the directory into the Directory path field in the *Add per-directory options for* form on the module's main page and hit the Create knoflík. Alternately, you can limit them to a particular virtual server by clicking on its icon and using the same form on the virtual server options page. Or you can define options that only apply to anonymous clients by hitting the Anonymous FTP icon for a virtual server and using its directory options creation form. In all cases, the directory should be entered as an absolute path like /usr/local . It is also possible to specify a path relative to the connecting user's home directory, like ~/public_html . You can even enter a path in a particular user's home directory, like ~jcameron/www . Normally, the options will apply to the directory and all its contents and subdirectories. To have them apply to only the contents and not the directory itself, add /* to the end of the path that you enter, like /usr/local/* .
  2. After hitting Create , you will be taken to a page of option category icons for the directory as shown in Figure 40-4. As usual, clicking on these icons will take you to forms for configuring various settings that apply only to requests for and listings of that directory.
  3. To totally deny access to clients, click on Access Control and change the Access control policy field to Deny all clients, then click Save .
  4. Normally, files uploaded by clients will end up owned by the Unix user that the client logged in as. To change this, click on the User and Group icon and enter a username for the *Owner of uploaded files* field. Uploaded files' group will be the primary group of the specified user, unless you fill in the Group owner of uploaded files field as well. Again, click Save after making any changes to return to the per-directory options page.
  5. To limit only the uploading or downloading of files in this directory, you will need to create a set of per-command options under it. The Restricting access to FTP commands section explains how.
  6. To activate your changes for this directory, return to the module's main page and hit the Apply Changes knoflík.


The per-directory options page

You can also remove a directory options object from the ProFTPD configuration entirely by clicking on Configure Directory and then hitting the Delete directory config knoflík. All settings and per-command options for the directory will be immediately and permanently deleted from the FTP server's configuration.

If you define options for both a directory and one of its children (such as /usr/local and /usr/local/bin ), ProFTPD will always give precedence to the most specific directory when deciding which options to apply to a particular client request. This means that a setting made for /usr/local will apply to a download of /usr/local/bin/foo, unless it is overridden by a setting for /usr/local/bin.

Restricting access to FTP commands

When a client wants to download or upload a file, list a directory or perform any other operation it sends a command to the server. ProFTPD can be configured to restrict which commands a client can use for a particular virtual server or directory, or when logged in anonymously. However, before you can do this you need to have a basic understanding of which FTP commands exist and what they do. The table below lists the ones that are relevant for access control purposes :

ProFTPD allows you to define options that only apply to particular client commands or groups of commands. Typically, this is used to deny access to certain operations, such as uploading by anonymous FTP users. It is also possible to allow or deny only certain Unix users, or only clients connecting from certain addresses.

To create a new set of per-command options, follow these steps:

  1. First decide if the options should apply to commands only in a particular directory, only to clients of a virtual server, only to anonymous clients or to all users of your FTP server. On the per-directory, virtual server, anonymous FTP and main pages is a form titled Add per-command options for . In the FTP commands field, enter one or more commands from the list above, separated by spaces. When you hit the Create button, your browser will be taken to the page shown in Figure 40-5.
  2. Click on the Access Control icon to bring up a form for restricting who can use these commands.
  3. To completely deny access to everyone, change the *Access control policy* field to Deny all clients . Conversely, to allow access select Allow all clients namísto. This is most useful if you are editing options for commands within a directory and there is a set of options for the same commands at a higher level (such as for the virtual server or anonymous FTP) that denies access. For example, typically anonymous clients cannot use the WRITE commands, but you may want to allow it for a particular directory.
  4. To only allow certain Unix users or members of certain group access to the commands, fill in the Only allow users and Only allow group pole. Multiple user or group names must be entered separated by spaces.
  5. Similarly, to deny certain users and groups while allowing everyone else access to the FTP commands, fill in the *Deny users* and Deny groups pole.
  6. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from using the commands. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will contain. In the empty row select either Allow or Deny from the Action Jídelní lístek. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied. *All *All clients match, no matter where they are from. *None *No clients match the rule. *IP address *Only clients from the IP address entered in the adjacent text field match. *Network *Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. . *Hostname *Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action Jídelní lístek.
  7. When you are done choosing who can use the FTP commands, hit the Save knoflík. Then return to the module's main page and click Apply Changes to make the restrictions active.


The per-command options page

Configuring logging

By default, ProFTPD logs all transfers to the file /var/log/xferlog in the standard FTP logging format (unless a different path has been selected at compile time). However, you can configure the server to log transfers to and from each virtual server differently, and anonymous FTP traffic as well. This is most useful in a virtual hosting environment, in which your system hosts FTP sites for many different customers.

It is also possible to define additional log files that use different formats, and optionally include only a subset of FTP commands. This can be useful if you only care about uploads, and don't want your log files clogged up with useless information.

To configure where and how logs are written globally or for an individual virtual server, the steps to follow are :

  1. If you want to change the location of the global log file that is used for all transfers (unless overridden by a virtual server), click on the Logging icon on the main page. Alternately, if you want to configure a specific virtual server to use a different log file, click on its icon and then on Logging on the virtual server options page. To change the logging settings for anonymous clients only, click on a virtual server icon, then on Anonymous FTP and finally on the Logging icon on the anonymous FTP options page.
  2. On the resulting logging options form, the *FTP transfers logfile* field controls where logs are written to. To specify a file, select the last option and enter a full path like /var/log/example.com.xfers into the adjacent text field. To turn off logging altogether, select Logging disabled . To use the global default, select the Default option (if you are editing the global logging settings, ProFTPD will use the compiled-in default log file /var/log/xferlog).
  3. The Custom logfiles table can be used to define additional logs for specific commands and with arbitrary formats. As usual, it will always have one empty row for adding a new custom log file. To add one, fill in the fields under these headings :*Logfile *The full path to the log file, such as /home/example.com/ftplog . For FTP commands *If *All is selected, all FTP commands will be logged. However, if you choose the second option only those command classes in the adjacent text box will be included. Recognized classes are NONE (no commands), ALL (all commands), INFO (information requests), DIRS (directory navigation), READ (file download), WRITE (file upload and directory creation), SITE (non-standard commands like CHMOD) and MISC (other miscellaneous commands). Multiple classes must be separated by commas, like READ,WRITE . You cannot use the names documented in the Restricting access to FTP commands sekce. *Log format If *Default is selected, the standard FTP log format will be used. But if the second option is chosen, you must enter a recognized log format name into the text box. The next paragraph explains how to set up named log formats. Because only one empty row appears in the table, you can only add one custom log at a time. To add more, click on the Logging icon again after saving and fill in the new blank row. To delete a custom log, just clear out its field in the Logfile sloupec.
  4. Klikněte na tlačítko Uložit button to save the new settings, and then *Apply Changes* on the main page to activate them.

If you want to use your own custom formats for log files, they must first be defined globally. The steps to create a format are :

  1. On the module's main page, click on the Logging icon to bring up the global log file options page.
  2. The Custom log formats table is for defining your own formats. In the first blank field under Format name , enter a short name for your new format such as filesonly . In the field next to it under Format string , enter text containing the log codes recognized by ProFTPD, like Downloaded %f at %t . The special codes in the string starting with % are replaced by the server with information about the command, as explained in the table below. As usual, you can add more than one custom format by re-entering the page after saving so that a new blank row appears. A format can be deleted by just clearing out its Format name pole.
  3. Klikněte na tlačítko Uložit button to return to the main page, and then click Apply Changes . The new format can now be used in custom log files.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

This limit can be set globally, on a per-virtual server basis or just for anonymous clients. This means that you can set a limit that applies to all servers, and then increase or decrease it for a particular virtual host. Or you can set a lower limit for anonymous clients versus those that have valid logins.

ProFTPD can also be configured to limit the number of concurrent connections that a single client host can have. This is useful if you want to stop people downloading more than one file at a time from your server, and thus taking more than their fair share of bandwidth.

To set a connection limit for your server, follow these steps:

  1. If you want to set a global limit, click on the *Networking Options* icon on the module's main page. To set a limit for a single virtual server, click on its icon and then on *Networking Options*. To define a limit that applies only to anonymous clients, click on the icon for a virtual server, then on *Anonymous FTP* and finally on the Networking Options icon on the anonymous FTP options page.
  2. On the form that appears, find the Maximum concurrent logins pole. To set a limit, select the third radio button and enter a number in the text box next to it. Alternately, you can select Unlimited to turn off any restriction that applies to this virtual server that has been set globally.
  3. To define an error message sent to clients that try to connect when the limit has been reached, enter it into the *Login error message* box in the Maximum concurrent logins pole. If the message contains the special code %m it will be replaced with the maximum allowed number.
  4. To set the per-client host limit, fill in the *Maximum concurrent logins per host* field in the same way. It also has a *Login error message* box that can be used to set a message sent to FTP clients that exceed the limit.
  5. If you are editing the global networking options, you can also set a limit on the total number of ProFTPD sub-processes that can be active at any one time. This is useful for protecting your system from denial-of-service using hundreds of useless connections. Just select the second option for the *Maximum concurrent sessions* field and enter a number into its adjacent text box. If Default is selected, no limit will be enforced. If you are running the server from a super-server like inetd or xinetd, this limit will have no effect. Fortunately, both those servers have configuration options that can be used to achieve the same result.
  6. When you are done editing client restrictions, hit the *Save *button at the bottom of the form to update the ProFTPD configuration, and then the Apply Changes button back on the main page.

Restricting clients by IP address

By default, ProFTPD will allow clients to connect from any IP address. However, like everything else this is configurable so that you can restrict access to systems on your own network, either globally or for particular virtual servers. This comes in handy if you are setting up an FTP server that is for internal use only, even though the system it is running on is accessible from the Internet.

To restrict clients by address, follow these steps:

  1. To create a global restriction that will apply to all virtual servers, enter LOGIN into the FTP commands field of the Add per-command options for form on the module's main page, then click Create . If you only want to limit who can connect to a particular virtual server, click on its icon before entering LOGIN into the same form on the virtual server options page.
  2. Regardless of what level the restriction is being defined at, you will be taken to the per-command options page shown above. Click on the Access Control icon to go to the aptly-named access control form.
  3. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from logging in. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will initially contain. In the empty row select either Allow or Deny from the Action Jídelní lístek. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied.
  • All
    All clients match, no matter where they are from. *None *No clients match the rule.
    IP address
    Only clients from the IP address entered in the adjacent text field match.
    Network
    Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. .
    Hostname
    Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action Jídelní lístek.
  1. When you are finished entering client restrictions, hit the Save button at the bottom of the form. Then return to the main page and click Save and Apply to activate them.

Commonly, you will want to give only clients on a single network access. To do this, select the Deny then allow option, choose Allow from the Action menu , Network from the Condition menu and enter the network address with a trailing dot (like 10.254.1.) into the condition text box.

Limiting uploads

If clients are allowed to upload files to your server, they will be able to choose any name that they wish for uploaded files. Sometimes this is not desirable though - you may want to allow the storing of only image files whose names end with .gif or .jpg, or prevent the uploading of Windows executables with filenames ending in .exe or .com. Fortunately, ProFTPD has configuration options that allow you to set this up.

There are also several other settings that apply to uploads, which control whether clients are allowed to overwrite files and if partially transferred files are visible. All can be set globally, for a single virtual server or for anonymous clients only. The steps to set these options are :

  1. If you want to the settings to be global, click on the *Files and Directories* icon on the module's main page. To have them apply to just a single virtual server, click on its icon and then on Files and Directories . Or to effect just clients that login anonymously, click on a virtual server icon, then on Anonymous FTP and finally on Files and Directories icon on the virtual server options page. No matter which configuration object you chose, the files and directories form that appears will be almost identical.
  2. To hide files that are in the process of being uploaded, change the Hide files during upload? pole na Ano . This tells ProFTPD to use a temporary file whose name starts with .in. for transferred data, which is only renamed to the real filename when the upload is complete. This prevents incomplete partial uploads, and stops files being downloaded or accessed while they are still being sent.
  3. To have ProFTPD delete uploaded files that are not fully transferred, select Yes for the Delete aborted uploads? pole. Again, this prevents corrupt partially uploaded files from being created on your system.
  4. To allow users to only create files whose relative names match a certain pattern, fill in the *Allowed uploaded filename regex* field with a Perl regular expression. For example, to only allow GIF files you might enter ^.*\.gif$ . Because clients are normally allowed to rename files, this option alone is not enough to stop the creation of invalid filenames. You will also need to block access to the RNFR command, as explained in the Restricting access to FTP commands sekce.
  5. Alternately, you can block the use of certain filenames by filling in the Denied uploaded filename regex field with a regular expression like ^.*\.exe$ . If both this and the previous field are set, only files that match the allow expression but not this deny expression will be permitted. Another common use of this option is blocking the upload of .ftpaccess or .htaccess files, which set per-directory ProFTPD and Apache options.
  6. Klikněte na tlačítko Uložit tlačítko v dolní části stránky.
  7. If you want to stop clients overwriting files with new uploads, click on the Access Control icon and change the *Allow overwriting of files?* field to No . This can be useful on an server that allows anonymous users to upload to a particular directory, perhaps for incoming files of some kind. Don't forget to click Save if you make this change.
  8. Return to the module's main page and hit the Apply Changes button to activate your new filename restrictions.

Manually editing directives

If you prefer to manually edit your ProFTPD configuration file in some cases or just want to see which directives an action in Webmin has set, you can do so using this module. Except for the default server, every object's options page (virtual server, per-directory and per-command) has an icon labeled Edit Directives . When clicked on it will take you to a form containing a large text box showing the lines from the configuration file in the section related to the object. You can edit them to your heart's content, then click the Save button to update the actual file. Be aware though that no validation of your input is done. Also, you will need to use the Apply Changes button on the module's main page to activate any changes, as usual.

To view and edit the entire ProFTPD configuration, use the *Edit Config Files* icon on the module's main page. This will bring up a similar form, but showing and allowing the editing of a complete configuration file at once. Because ProFTPD can read multiple configuration files (though the use of Include directives), at the top of the form is a button labeled Edit Directives in File with a menu of filenames next to it. To switch the view to a different file, just select the one you want and hit the button. Normally though only a single proftpd.conf file will be used.


Webmin
  1. Server WU-FTPD

  2. Jak nainstalovat ProFTPD na Debian 8

  3. Jak nainstalovat ProFTPD na Ubuntu 14.04

  1. Jak nainstalovat ProFTPD na CentOS 7

  2. Jak nainstalovat ProFTPD na Ubuntu 15.04

  3. Základní Ubuntu FTP server?

  1. Zabezpečené nastavení serveru ProFTPD na CentOS 7 s TLS

  2. Jak se připojit k místnímu serveru?

  3. Jak nainstalovat FTP server na CentOS 7