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

Server WU-FTPD


V této kapitole Server WU-FTPD pro protokol FTP je vysvětleno a jsou uvedeny kroky, které je třeba dodržet při jeho konfiguraci pro mnoho běžných úloh.

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 WU-FTPD

WU-FTPD (WU znamená Washington University) je pravděpodobně nejoblíbenější unixový FTP server na internetu a je standardně součástí většiny operačních systémů Unix a Linux. Díky velkému množství konfigurovatelných možností je lepší než 'klasický' nebo BSD FTP server, který je stále používán některými variantami Unixu, ale podle mého názoru není tak flexibilně nebo čistě implementován jako ProFTPD, popsaný v kapitole 40. Tato kapitola obsahuje také krátký úvod do protokolu FTP, který byste si měli přečíst, než budete pokračovat, pokud nejste obeznámeni s pojmy jako FTP klienti a servery.

Ve své normální výchozí konfiguraci WU-FTPD umožní jakémukoli uživateli Unixu (kromě systémových uživatelů) přihlásit se svými standardními uživatelskými jmény a hesly a nahrávat, stahovat a manipulovat se soubory na serverovém systému se stejnými oprávněními, která by měli, kdyby se připojili přes telnet nebo SSH. Lze jej také nastavit tak, aby podporoval anonymní přihlášení, takže se kdokoli může připojit, aniž by potřeboval platný unixový účet – ačkoli anonymní klienti jsou obvykle omezeni na určitý adresář a je jim zabráněno nahrávat soubory.

Primární konfigurační soubor WU-FTPD se nazývá /etc/ftpaccess, ale využívá také několik dalších souborů, jako jsou /etc/ftpusers a /etc/ftphosts. Soubor ftpaccess obsahuje řadu direktiv, jednu na řádek, z nichž každá má název a několik hodnot. Každá direktiva nastavuje jednu možnost, jako je cesta k souboru zpráv nebo alias adresáře.

Stejně jako ProFTPD lze WU-FTPD spouštět buď jako permanentní samostatný proces démona nebo ze superserveru, jako je inetd nebo xinetd. Obvykle se používá druhá možnost, protože to odstraňuje potřebu dalšího serverového procesu, který musí být spuštěn po celou dobu čekání na připojení FTP. Pokud jde o klienty a konfigurační soubor, není mezi oběma režimy žádný rozdíl kromě výkonu.

Modul serveru WU-FTPD

Chcete-li nakonfigurovat FTP server z Webminu, klikněte na ikonu *WU-FTPD Server* v kategorii Servery. Pokud je správně nainstalován a funguje, zobrazí se hlavní stránka modulu, jak je znázorněno na obrázku 41-1. Každá z ikon vás přenese do formuláře pro nastavení třídy konfigurovatelných možností, jako jsou ty, které se týkají protokolování nebo zpráv a bannerů.

Nedokončeno

 Figure 41-1 “The WU-FTPD Server module” 

Pokud modul nemůže najít spustitelný soubor serveru WU-FTPD, zobrazí se chybová zpráva jako *V systému nebyl nalezen FTP server /usr/sbin/in.ftpd* nebo *Konfigurační soubor FTP serveru /etc/ftpaccess neexistuje. * zobrazí se. Obvykle to znamená, že program není nainstalován – vyhledejte na vašem distribučním CD nebo na webu Linuxu balíček wu-ftpd a nainstalujte jej pomocí modulu Softwarové balíčky, který je popsán v kapitole 12. Může to také znamenat, že modul hledá na nesprávném místě serverový program nebo konfigurační soubor. Pokud jste si jisti, že je nainstalován WU-FTPD, přečtěte si část „Konfigurace modulu serveru WU-FTPD“ dále v této kapitole, kde najdete informace o úpravě cest, na kterých je Webmin hledá.

Někdy, i když je nainstalován WU-FTPD, bude ve výchozím nastavení zakázán. Pokud spustíte ftp localhost na příkazovém řádku a zobrazí se chybová zpráva Připojení odmítnuto, není spuštěn žádný FTP server. Může to být proto, že pro FTP ještě nebyla vytvořena žádná služba inetd nebo xinetd, nebo proto, že jedna existuje, ale je zakázána. Postupujte podle pokynů níže, které vysvětlují, jak nastavit nebo aktivovat službu superserveru pro ProFTPD.

Pokud je opravdu nutné nainstalovat WU-FTPD, musíte nejprve odebrat jakýkoli jiný FTP server (jako je ProFTPD nebo PureFTP), který je aktuálně nainstalován ve vašem systému. Ujistěte se, že zabijete také všechny jeho procesy, takže na portu FTP nezůstane nic poslouchat. Úplné vypnutí druhého serveru můžete ověřit spuštěním ftp localhost na příkazovém řádku – měla by se zobrazit chybová zpráva Připojení odmítnuto, což znamená, že na portu 21 nic nenaslouchá.

Po instalaci WU-FTPD budete muset nakonfigurovat inetd nebo xinetd, aby naslouchal na FTP portu a spouštěl program serveru. Než to uděláte, zjistěte, kde byl program ve vašem systému skutečně nainstalován – obvykle to bude na /usr/sbin/in.ftpd, ale to se může lišit v závislosti na vašem operačním systému.

Pokud váš systém používá nadřazený superserver xinetd, nastavte službu FTP podle těchto pokynů. 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 wu-ftpd. 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 WU-FTPD s argumenty –l –a (například /usr/sbin/in.ftpd –l -a ) do sousedního textového pole.
  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.

Případně pro nastavení služby inetd pro WU-FTPD 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ě používá xinetd.
  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 WU-FTPD, například /usr/sbin/in.ftpd . V Args zadejte in.ftpd –l -a .
  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 WU-FTPD nastaven pro spuštění z inetd nebo xinetd, můžete jej otestovat pomocí Unix FTP klienta příkazového řádku 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 ne, zkontrolujte soubory protokolů (pomocí modulu Systémové protokoly, který je popsán v kapitole 13), zda neobsahují zprávy od inetd nebo xinetd, které by mohly vysvětlit, co se pokazilo.

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

Ve své normální konfiguraci WU-FTPD umožní přihlášení jakémukoli uživateli Unixu s výjimkou systémových účtů, jako je root, bin a daemon. Uživatel root je ve výchozím nastavení téměř vždy odepřen, protože protokol FTP nešifruje hesla při jejich odesílání po síti, což znamená, že vzdálené přihlášení jako root by mohlo jeho heslo odhalit útočníkům. Chcete-li změnit uživatele a skupiny, kteří se mohou přihlásit do vašeho systému, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Uživatelé a třídy ikonou zobrazíte formulář zobrazený na obrázku 41-2.
  2. Přidat do Uživatelé systému Unix k odmítnutí do pole všechny účty, kterým chcete zabránit v používání vašeho FTP serveru, nebo odeberte ty, které chcete povolit. Tím se aktualizuje soubor /etc/ftpaccess, který používají jiné FTP servery, jako je ProFTPD v případě, že se jednoho dne rozhodnete přejít.
  3. Chcete-li odmítnout uživatele, jejichž UID leží v určitých mezích, vyplňte Uživatelé systému Unix a UID k odmítnutí pole. Můžete zadat rozsah UID jako %3000-4000 , což by zablokovalo všechny uživatele s UID mezi 3000 nebo 4000. Nebo můžete zadat rozsahy jako %-100 nebo %5000- který odmítne uživatele s UID menším než 100 nebo větším než 5000. Lze zadat více rozsahů oddělených mezerami. V tomto poli lze také použít normální uživatelská jména, i když to má stejný účinek, jako když je vložíte do Uživatelé Unixu k odmítnutí pole.
  4. Chcete-li odmítnout uživatele, jejichž ID primární skupiny jsou v určitých mezích, vyplňte Skupiny Unix a GID k odmítnutí pole. Opět můžete zadat rozsahy ID jako %100-200 nebo %-10 , stejně jako názvy skupin jako uživatelé . Počítá se pouze členství v primární skupině – pokud je uživatel sekundárním členem jedné z uvedených skupin, nebude zablokován.
  5. Chcete-li vyloučit některé uživatele nebo skupiny ze seznamů odmítnutí definovaných v předchozích dvou krocích, vyplňte Unixové uživatele a UID, které se nemají odmítat a Unixové skupiny a GID neodmítat pole. První pole bude přijímat rozsahy UID nebo uživatelská jména a druhé pole rozsahy ID skupiny nebo názvy skupin. Tato pole jsou užitečná, pokud chcete povolit pouze několik uživatelů a zároveň blokovat všechny ostatní pomocí rozsahu UID, který pokrývá všechny účty.
  6. Klikněte na tlačítko Uložit tlačítko ve spodní části stránky pro uložení a aktivaci nových uživatelských omezení.

Nedokončeno

Figure 41-2 “The users and classes page” 

WU-FTPD také normálně zabrání uživatelům, jejichž shell není uveden v souboru /etc/shells v přihlášení. To se běžně provádí, aby bylo možné vytvořit účty, které se mohou přihlásit k serveru POP3, ale nemohou se připojit přes telnet, SSH nebo FTP. Bohužel neexistuje žádná možnost konfigurace WU-FTPD, kterou lze změnit, aby se tato kontrola shellu vypnula. Je to buď pevně zakódováno do programu, nebo vynuceno službou ftp PAM, která se skutečně používá k ověřování uživatelů.

Pokud WU-FTPD ve vašem systému používá PAM (stejně jako u většiny distribucí Linuxu), vypněte kontrolu /etc/shells takto:

  1. Přejděte do modulu PAM Authentication, který lze nalézt v kategorii Systém v hlavní nabídce Webmin.
  2. Klikněte na ftp nebo wu-ftpd službu na hlavní stránce.
  3. V editačním formuláři, který se zobrazí, klikněte na pam_shells.so v modulu PAM ve sloupci Kroky ověření sekce.
  4. Z Úrovně selhání v nabídce vyberte Volitelné , takže úspěch nebo neúspěch kontroly souboru shellu je pro účely ověřování ignorován.
  5. Klikněte na tlačítko Uložit knoflík. Uživatelé s neplatným shellem se nebudou moci přihlásit k vašemu FTP serveru.

Na jiných operačních systémech jsou výše uvedené kroky k ničemu, protože modul PAM Authentication je dostupný pouze v Linuxu.

Nastavení anonymního FTP

Konfigurace WU-FTPD pro přijímání anonymních přihlášení je o něco složitější, než byste očekávali, kvůli použití příkazu ls ke generování výpisů adresářů. Aby tento příkaz (a další používané serverem) nemohl uniknout z adresáře, na který jsou anonymní klienti omezeni, server používá systémové volání Unix chroot k omezení sebe a všech programů, které spouští, do tohoto adresáře. To znamená, že kořenový adresář musí obsahovat všechny programy, soubory a sdílené knihovny, které WU-FTPD a příkaz ls potřebují ke spuštění.

Ve výchozím nastavení se jako anonymní FTP kořen používá domovský adresář speciálního unixového uživatele ftp, ale různým třídám klientů lze přiřadit různé kořeny. Bez ohledu na zvolený adresář však musí obsahovat podadresář bin s příkazy ls, gzip, tar, recompress, cpio a zcat. Musí mít také podadresář lib obsahující všechny sdílené knihovny potřebné pro tyto příkazy, podadresář etc se soubory passwd a group a adresář pub, ve kterém jsou uloženy soubory ke stažení.

Jak si dokážete představit, zkopírovat všechny tyto soubory na místo a ujistit se, že fungují, je docela složité. Naštěstí mnoho linuxových distribucí, které obsahují balíček wu-ftpd, má také balíček s názvem anonftp, který umístí všechny potřebné soubory do domovského adresáře uživatele ftp. Ve většině případů vše, co musíte udělat, je nainstalovat tento balíček a WU-FTPD umožní klientům anonymní přihlášení.

Bez ohledu na oprávnění v kořenovém adresáři WU-FTPD vždy zabrání anonymním klientům nahrávat, přejmenovávat nebo mazat soubory. Jediné, co budou moci udělat, je stáhnout soubory, které umístíte do podadresáře pub k veřejné distribuci.

Anonymní přihlášení lze dále konfigurovat podle následujících kroků:

  1. Klikněte na Anonymní FTP ikonu na hlavní stránce modulu.
  2. Anonymní kořenové adresáře FTP tabulka umožňuje zadat různé kořeny, které se mají použít pro různé třídy klientů. Jakékoli existující adresáře (kromě výchozího ~ftp) jsou uvedeny v tabulce pro úpravy a vždy bude jeden prázdný řádek pro přidání nového. Jakmile je položka přidána, nahradí výchozí, takže pokud chcete, aby nadále fungoval, nezapomeňte ji explicitně přidat. Pokud chcete přidat více než jeden adresář, budete muset uložit a znovu otevřít tuto stránku, aby se objevil nový prázdný řádek. Každý řádek má dvě pole, konkrétně:Adresář Do tohoto pole musíte zadat úplnou cestu k platnému anonymnímu FTP adresáři (který obsahuje podadresáře etc, bin, lib a pub a všechny potřebné programy). Pro třídu Z této nabídky musíte vybrat třídu klienta, pro kterou by měl být adresář použit, za předpokladu, že se klienti v této třídě přihlásí anonymně. Pokud Jakékoli je vybrána bude použita pro klienty, kteří nejsou v žádné jiné třídě v této tabulce. Podrobnosti o tom, jak definovat své vlastní třídy, najdete v části „Správa tříd uživatelů“.
  3. Když se uživatel přihlásí k vašemu serveru FTP anonymně, musí zadat heslo, i když se nepoužívá k ověření. Toto heslo je obvykle e-mailová adresa uživatele, kterou lze použít k získání hrubé představy o tom, z jakých doménových klientů přicházejí. Z důvodu ochrany osobních údajů však mnoho moderních FTP klientů a prohlížečů již neposílá skutečnou e-mailovou adresu, místo toho se přihlašuje pomocí falešné adresy, jako je [email protected]. WU-FTPD můžete nakonfigurovat tak, aby zkontroloval formát anonymních přihlašovacích hesel, abyste se ujistili, že vypadají jako e-mailové adresy pomocí Kontrola anonymního hesla FTP pole na této stránce. Pokud je Výchozí je vybrána, nebude provedena žádná kontrola. Pokud je však vybrána druhá možnost, úroveň kontroly závisí na volbě, kterou provedete z nabídky:Povolit cokoli Je povoleno jakékoli heslo, dokonce i prázdné (toto je stejné jako výchozí režim). Musí obsahovat @ Heslo musí obsahovat symbol @. Musí se jednat o e-mailovou adresu RFC882 Heslo musí vypadat jako platná e-mailová adresa s písmeny a číslicemi před a za @. Druhá nabídka určuje, zda FTP server pouze varuje klienty, kteří porušují kontrolu (pokud Pouze varovat je vybráno), nebo je úplně zablokuje (pokud Odmítnout přihlášení je vybráno).
  4. Chcete-li zcela zablokovat určitá anonymní hesla (i když jsou platná), vyplňte Anonymní hesla FTP k odmítnutí pole se seznamem úplných nebo částečných e-mailových adres. To může být užitečné pro blokování FTP klientů, kteří jsou ve výchozím nastavení nakonfigurováni pro použití falešné adresy. Nedoporučuji však tuto funkci používat, protože zablokuje mnoho lidí, zejména těch, kteří používají webové prohlížeče.
  5. Klikněte na tlačítko Uložit tlačítko v dolní části stránky pro aktivaci nového anonymního nastavení FTP.

Správa uživatelských tříd

FTP server kategorizuje klienty do tříd na základě jejich zdrojových adres a typů přihlášení. Klasifikace může být použita na několika různých místech v konfiguraci WU-FTPD k definování nastavení, která se vztahují pouze na určité klienty. Lze jej také použít k blokování neanonymních přihlášení (nebo dokonce všech přihlášení) mimo vaši síť. To může být užitečné, pokud chcete povolit pouze určitým důvěryhodným hostitelům nahrávat data na váš server, ale umožnit komukoli na internetu anonymně se přihlásit a stahovat.

Každá třída má jméno, seznam typů přihlášení a seznam klientských adres, názvů hostitelů nebo sítí. Pouze klienti, kteří odpovídají jak typům přihlášení, tak adresám, jsou považováni za členy třídy, a pokud se shoduje více než jedna třída, použije se první. Klienti, kteří nespadají do žádné třídy, nemají povoleno používat FTP server.

WU-FTPD rozpoznává následující tři typy přihlášení:

Unix
Normální uživatelé Unixu, kteří se mohou přihlásit přes telnet nebo SSH a přistupovat ke všem souborům v systému se svými běžnými oprávněními.
Host
Uživatelé Unixu, kteří byli označeni jako hosté, a to jsou omezeni na adresář (obvykle jejich domov) stejně jako anonymní uživatelé. Další podrobnosti naleznete v části „Nastavení uživatelů typu host“.
Anonymní
Uživatelé, kteří se přihlásí anonymně a jsou tedy omezeni na určitý adresář.

Chcete-li definovat a upravit třídy pomocí modulu, postupujte podle těchto pokynů:

  1. Klikněte na Uživatelé a třídy ikonu v levém horním rohu hlavní stránky modulu. Ve vašem prohlížeči se objeví formulář zobrazený na obrázku 41-2.
  2. V horní části stránky je tabulka označená Třídy uživatelů . Každý řádek definuje třídu a vždy bude alespoň jedna již uvedena (obvykle třída all, která odpovídá všem klientům). Tabulka má ve spodní části vždy jeden prázdný řádek pro přidání nové třídy – pokud chcete přidat více než jednu, budete je muset vytvořit jednu po druhé. Existující třídy můžete upravit změnou jejich polí nebo třídu odstranit vymazáním pole jejího názvu. Ujistěte se, že je všechny nesmažete, protože to zabrání všem uživatelům přihlásit se. Pole pro každou třídu jsou:Název třídy Krátký název pro tuto třídu, který by se měl skládat pouze z písmen a číslic, například homenet nebo důvěryhodný . Více než jeden řádek může mít stejný název třídy a klient, který odpovídá typu uživatele a adresám v libovolném řádku, bude považován za člena třídy. *Typy uživatelů *Typy přihlášení, kterým tato třída odpovídá, jak je vysvětleno výše. Musíte vybrat alespoň jedno ze tří zaškrtávacích políček. Odpovídající adresy Do tohoto pole můžete zadat adresy klientů, kterým třída odpovídá. Můžete zadat jednotlivé adresy IP (například 192.168.1.1 ), názvy hostitelů (jako www.foo.com ), zástupné adresy IP a názvy hostitelů (jako 10.254.1.* nebo *.example.com ) nebo dokonce cesty k souborům obsahujícím více takových adres a názvů hostitelů. Více položek musí být odděleno mezerami. Negované položky jako !*.foo.com jsou dokonce povoleny, což by odpovídalo všem klientům, jejichž názvy hostitelů jsou mimo foo.com doména. Při používání názvů hostitelů buďte opatrní, protože WU-FTPD musí vyhledávat názvy hostitelů klientů z jejich IP adres, výsledek může být zfalšován útočníkem.
  3. Až budete s definováním tříd hotovi, stiskněte Uložit tlačítko ve spodní části formuláře. Nyní je můžete použít na dalších stránkách v modulu.

Odepření přístupu k souborům

Někdy je užitečné omezit typy souborů, které mohou uživatelé stahovat, zejména pro nedůvěryhodné anonymní klienty. Můžete zablokovat přístup k názvu souboru v libovolném adresáři (například secret.txt ), absolutní cesta (jako /etc/passwd ) nebo dokonce adresář a veškerý jeho obsah (jako /var/log ). Zástupné znaky * a ? lze použít také v názvech souborů a cest, což poskytuje další flexibilitu. To může být užitečné, pokud chcete chránit soubory obsahující tajné informace nebo omezit klienty na stahování z určitého adresáře (např. /home ). Neexistuje však žádný způsob, jak zabránit vypisování adresářů pomocí této funkce.

Chcete-li nastavit omezení stahování souborů, postupujte takto:

  1. Na hlavní stránce klikněte na Omezení a řízení přístupu ikonou zobrazíte formulář zobrazený na obrázku 41-4.
  2. Každý řádek v Zakázat přístup k souborům tabulka definuje omezení jednoho souboru. Stejně jako u ostatních tabulek v tomto modulu je ve spodní části tabulky jeden prázdný řádek pro přidání nového souboru nebo cesty – a pokud tuto funkci používáte poprvé, bude tabulka obsahovat pouze jeden řádek. V opačném případě budou uvedena existující omezení, která vám umožní je upravit nebo odstranit. Pole v každém řádku a jejich význam jsou:Soubory k odmítnutí Seznam relativních nebo absolutních názvů souborů nebo vzorů, ke kterým má být zakázán přístup, oddělených mezerami. Zástupné znaky * a ? lze použít pro obojí, což vám umožní zadávat soubory jako secret.* nebo /home/*/public_html . Vzhledem k chrootu? Pokud Ano je vybrána, jakákoli absolutní cesta zadaná do prvního pole se považuje za relativní k anonymnímu kořenovému adresáři FTP. Pokud Ne je zvoleno, cesty jsou vztaženy ke skutečnému kořenovému adresáři. Odmítnout pro kurzy V tomto poli musíte zaškrtnout políčka pro třídy, na které se omezení vztahuje. Další informace o tom, jak přidat své vlastní třídy, najdete v části „Správa tříd uživatelů“. To může být užitečné, pokud chcete zablokovat přístup anonymních klientů k některému souboru, ale povolit skutečné uživatele Unixu.
  3. Povolit přístup k souborům, i když je odepřen tabulka má přesně stejnou strukturu jako tabulka zamítnutí, ale slouží k zadávání názvů souborů a cest, ke kterým by měl být povolen přístup, i když jsou zakázány záznamem v tabulce výše. Toto lze použít k odepření přístupu ke všemu (zadáním _*_ do pole Soubory k odepření řádek) a poté udělení práv ke stažení pouze pro soubory odpovídající vzoru (jako *.html). například).
  4. Klikněte na tlačítko Uložit tlačítko ve spodní části stránky pro uložení a aktivaci jakýchkoli nových omezení souborů. Pokud chcete přidat více než jednu položku do kterékoli tabulky, klikněte znovu na ikonu *Limity a řízení přístupu*, abyste znovu zobrazili formulář a vyplnili nové prázdné řádky, které se objeví.

Nedokončeno

Figure 41-4 “The limits and access control form” 

Existuje také podobná funkce pro omezení názvů souborů, které mohou klienti nahrávat. To může být užitečné pro blokování vytváření skrytých souborů nebo adresářů, jejichž názvy začínají tečkou, nebo těžko pochopitelných názvů obsahujících mezery a řídicí znaky. Ty často používají záludní lidé ke skrytí souborů na vašem anonymním FTP serveru, pokud povolíte nahrávání. Protože důvěryhodní lidé mohou mít dobré důvody pro vytváření takových souborů, můžete definovat omezení, která se vztahují pouze na anonymní nebo hostující uživatele.

Chcete-li přidat a upravit limity nahrávaných souborů, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Oprávnění ikona.
  2. Ve formuláři, který se zobrazí, Názvy souborů nepovoleného nahrávání tabulka v dolní části uvádí názvy souborů, které jsou povoleny a zakázány pro různé typy uživatelů. Stávající omezení lze upravit pouhým změnou jejich polí v tabulce a nové vytvořit vyplněním posledního prázdného řádku (což bude vše, co tabulka obsahuje, pokud jste tento formulář dosud nepoužili). Sloupce v tabulce a význam jejich polí jsou:Povolené znaky Jediný regulární výraz Perl, kterému se musí shodovat všechny nahrané soubory. Pokud jste například zadali ^[a-z]+$ , budou povoleny pouze názvy souborů složené z malých písmen. Soubor regulárních výrazů k odmítnutí Mezerou oddělený seznam regulárních výrazů, které nejsou povoleny v názvech souborů. Dobrým příkladem je ^\. , který zablokuje jakýkoli název začínající tečkou, který soubor skryje. Typy uživatelů Typy uživatelů, na které se toto omezení vztahuje. Často budete chtít umístit přísnější limity na anonymní klienty než na skutečné nebo hostující uživatele. Soubor chybové zprávy Úplná cesta k souboru, která bude odeslána každému klientovi, který se pokusí nahrát soubor, jehož název neodpovídá povolenému výrazu nebo se shoduje s jedním ze zakázaných výrazů.
  3. Jako obvykle klikněte na tlačítko Uložit tlačítko ve spodní části stránky pro aktivaci případných nových omezení, až budete hotovi.

Pokud je pro stejný typ uživatele definováno více než jedno omezení, budou všechna zkontrolována, zda je povoleno nahrané jméno souboru.

Nastavení uživatelů typu host

Hostující uživatel FTP je skutečný uživatel Unixu, který je omezen WU-FTPD na určitý adresář, stejně jako jsou omezeni anonymní klienti. Stále však mají v tomto adresáři plná oprávnění, včetně práv nahrávat soubory, přejmenovávat a chmod soubory. Omezení přístupu uživatele na přístup hosta může být užitečné, pokud mu chcete zabránit, aby viděl části vašeho souborového systému mimo jeho domovský adresář nebo některý nadřazený adresář, jako je /home.

Každý uživatel, který je konfigurací FTP serveru označen jako host, může mít jiný kořenový adresář nebo některé mohou být stejné. Vybrané kořenové adresáře však musí být nastaveny stejným způsobem jako anonymní kořenový adresář FTP – s podadresáři bin, lib atd. obsahujícími všechny programy a soubory potřebné pro WU-FTPD. Tyto adresáře však můžete pouze zkopírovat z anonymního kořenového adresáře, takže proces nastavení není tak těžký.

Chcete-li nastavit uživatele jako hosta, jeho domovský adresář musí být speciálně upraven. Následující kroky vysvětlují, jak to provést pomocí Webmin:

  1. Přejděte do modulu Uživatelé a skupiny (popsaný v kapitole 4) a klikněte na jméno uživatele, kterého chcete omezit.
  2. Změňte jeho domovský adresář na guestroot_/./_homedir , ve kterém guestoot je kořenový adresář, který jste si připravili, a homedir podadresář pod ním. Pokud jako kořenový adresář používáte /home, může být adresářem pro uživatele jcameron /home/./jcameron. Tato speciální položka /./ v cestě říká WU-FTPD, kde je root, ale neměla by zmást ostatní programy.
  3. Klikněte na tlačítko Uložit tlačítko v dolní části stránky. Webmin v případě potřeby přesune svůj domovský adresář do nového umístění.

Samozřejmě můžete takový domov zadat i při vytváření nového uživatele. Toto je však pouze první krok – pro konfiguraci WU-FTPD tak, aby s určitými uživateli zacházelo jako s hosty, budete muset provést následující kroky:

  1. V modulu WU-FTPD Server klikněte na Uživatelé a třídy ikonou zobrazíte formulář zobrazený na obrázku 41-2.
  2. V části Uživatelé systému Unix a UID, které se mají považovat za hosty , zadejte seznam uživatelských jmen, UID nebo rozsahů UID oddělených mezerami (např. %1000-2000 _nebo %5000-_) uživatelů, kteří budou označeni jako hosté. Můžete také zadat seznam názvů skupin, ID a rozsahů ID do pole *Unixové skupiny a GID, které mají být považovány za hosty*, aby byli všichni jejich primární členové považováni také za hosty.
  3. Chcete-li zabránit převedení některých uživatelů na hosty, i když jsou v seznamech nebo rozsazích nastavených v kroku 2, vyplňte Uživatelé Unix a UID, které se nemají považovat za hosty a Unixové skupiny a GID, které nelze považovat za hosty pole. To může být užitečné, pokud chcete z každého udělat hosta kromě několika důvěryhodných uživatelů.
  4. Klikněte na tlačítko Uložit tlačítko v dolní části stránky pro aktivaci nových označení hostů.

Pokud byl uživatel nakonfigurován jako host, ale nemá /./ ve svém domovském adresáři, nebude omezen na žádný kořenový adresář.

Úprava aliasů adresáře

Pro zjednodušení života pro uživatele, kteří často potřebují přistupovat k adresářům s dlouhými cestami, vám WU-FTPD umožňuje definovat aliasy adresářů, které lze použít při přechodu do jiného adresáře. To znamená, že někdo, kdo používá FTP klienta příkazového řádku, může zadat cd stuff:místo cd /usr/local/etc/stuff, za předpokladu, že byl vytvořen vhodný alias.

Chcete-li nastavit aliasy, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Aliasy a cesty ikona.
  2. Aliasy adresáře CD pole je ve skutečnosti tabulka, která uvádí existující aliasy (pokud existují) a vždy má jeden prázdný řádek pro přidání nového. V prvním prázdném poli pod Název aliasu zadejte název nového aliasu, například stuff: nebo junk: . Neexistuje žádný požadavek, aby alias končil dvojtečkou – je to však dobrý nápad, protože to snižuje riziko, že název aliasu bude stejný jako skutečný relativní adresář. V odpovídajícím poli pod Alias ​​do adresáře , zadejte úplnou cestu k adresáři jako /usr/local/junk že alias se rovná. Pokud chcete přidat více než jeden alias, budete muset uložit a znovu otevřít tuto stránku, aby se objevil nový prázdný řádek. Chcete-li jedno smazat, stačí vymazat obě jeho pole v tabulce.
  3. Cesta pro vyhledávání adresáře CD textové pole umožňuje zadat seznam adresářů, které budou prohledány, pokud se klient pokusí přejít do relativního podadresáře, který není v aktuálním adresáři. Například pokud /usr/local byl zahrnut a klient se pokusil přepnout do adresáře bin, byl by umístěn do /usr/local/bin (za předpokladu, že neexistuje žádný skutečný podadresář bin).
  4. Klikněte na tlačítko Uložit tlačítko v dolní části stránky pro aktivaci nových aliasů.

Aliasy nejsou zvláště užitečné v grafických FTP klientech, které uživateli nabízejí výpis adresáře, na který může kliknout. Protože uživatelé nemají a často nemohou přejít na explicitní pseudo-adresář, jako jsou věci:a aliasy nejsou zahrnuty ve výpisech, je obtížné je používat. Příkazoví FTP klienti jako ncftp a klasický unixový ftp program jsou však pro jejich použití vhodnější.

Soubory zpráv a readme

WU-FTPD lze nakonfigurovat tak, aby posílal obsah různých souborů zpráv klientům, když se přihlásí nebo vstoupí do určitých adresářů. To může být užitečné pro zobrazení informací o vašem FTP serveru (např. kdo jej provozuje a jaké soubory jsou hostovány) nebo podrobnosti o obsahu konkrétního adresáře uživatelům FTP. Každý soubor je klientovi odeslán pouze jednou v jedné relaci, aby se zabránilo obtěžování uživatele opakovanými zprávami.

Server lze také nastavit tak, aby klienty informoval o existenci určitých souborů a informoval je o datech jejich poslední úpravy. To se obvykle používá pro soubory README obsahující o něco méně důležité informace o adresáři nebo serveru, které uživatelé mohou chtít číst. Opět platí, že klienti jsou upozorněni pouze jednou za relaci pro každý takový soubor.

Chcete-li definovat soubory zpráv a bannerů, postupujte takto:

  1. Klikněte na Zprávy a bannery na hlavní stránce modulu, která vás přenese do formuláře zobrazeného na obrázku 41-3.
  2. Soubory zpráv sekce je tabulka pro specifikaci souborů, jejichž obsah bude odeslán klientům. Jako obvykle u tabulek ve Webminu uvádí existující soubory a jejich kontexty a ve spodní části má jeden prázdný řádek pro přidání nového. Význam polí je:Cesta The path to the file whose contents should be sent to the client. This can be either an absolute path like /etc/login.message or a relative filename like message.txt . In the latter case, it is looked for in each directory that the client enters. If you enter a full path and want anonymous clients to be able to see it, it must be under the anonymous FTP root directory. When to display If At login is selected, the file will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and sent when changing to any directory. When Entering dir is chosen, the file will only be sent when the directory whose path you specify in the adjacent text box is entered. Again, this must be relative to the root directory for anonymous clients. Classes to display for If this field is left blank, the message is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes. This can be useful for defining message files just for anonymous users, especially when using absolute paths.
  3. To define files that clients will be notified of the existence of, you will need to fill in the README files stůl. Again, this lists all existing files and has a blank row for adding a single new one. The meanings of the fields in this table's columns are:Path' The path to the file whose existence and modification time should be sent to the client. This can be either an absolute path like /etc/README or a filename relative to the directory being entered like README.txt . You can even use shell wildcard characters like * and ? in the filename to match multiple files, for example README* . When to display last modified date If At login is selected, the information will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and its modification date sent when changing to any directory. When Entering dir is chosen, the modification date will only be sent when the directory whose path you specify in the adjacent text box is entered. Classes to display for If this field is left blank, the modification is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes.
  4. To change the amount of information that WU-FTPD sends to clients when they connect, adjust the Greeting level pole. If Hostname and version is selected, both the system's hostname and the FTP server version will be sent. If just Hostname is chosen only the hostname will be displayed, while if Neither is selected no information will be sent. The latter two options are the most secure, as an attacker may be able to use your FTP server's version to find a bug in it that could be exploited to take over your system.
  5. If you want to have the server sent a message to clients as soon as they connect, put it in a file and select the From file option for the Pre-login banner file pole. Then enter the full path to the message file into the text box next to it.
  6. To change the hostname that WU-FTPD sends in the greeting and other messages, select the second option in the Hostname for messages field and enter some alternative name in the text box. This can be useful if your system's real hostname does not match the name the FTP clients use (server5.example.com instead of ftp.example.com for example).
  7. When you are done with this form, click the Save button to activate your changes. They will apply to all new FTP clients that connect from now on.

On many operating systems, the WU-FTPD configuration will include one or two message and README file definitions by default. Typically the .message file is searched for in every directory and sent to clients, as is the modification time of any file whose name matches the README* pattern.

Any message files that you define that can contain special codes starting with % that are replaced when the file is sent by dynamically generated text. For example, %U is replaced with the client's FTP login name, so a file containing the line _Welcome %U to the example.com FTP server_ would be sent to the client as something like Welcome jcameron to the example.com FTP server . According to the WU-FTPD manual page, the available codes are:

Not done

Configuring logging

In a typical default configuration, WU-FTPD will log all uploads and downloads to the file /var/log/xferlog. However, you can choose the types of users that logging will be done for (Unix, anonymous or guest), have the log written to syslog instead, and select to record commands are security violations for some types of users. Logging to the system log gives you more flexibility, as you can choose which file messages are written to – although they will be mixed in with other daemon facility messages. See chapter 13 and the System Logs module for more information on how syslog works and which files it ultimately writes to.

Enabling logging of all commands allows you to track exactly what clients are doing, but can consume a large amount of disk space. The logging of security violations (attempts to violate WU-FTPD's file restrictions, covered in the “Denying access to files” section) can be useful for detecting hackers, and is unlikely to use up much space as such violations are not usually very frequent.

To edit FTP logging-related options in Webmin, the steps to follow are:

  1. On the module's main page, click on the Logging icon to bring up the small logging options form.
  2. To have all FTP commands executed by clients (including trivial ones such as CWD and LIST) recorded in the system log, select types of users for which they should be logged from the Log all commands for pole.
  3. To change the types of users that transfer logging is done for, select them from the Log transfers for pole. The *In directions* sub-field lets you choose whether uploads (Inbound ), downloads (Outbound ) or Both are recorded. On an anonymous FTP server, it may make sense to only record uploads due to the large number of downloads.
  4. To have transfers written to syslog, select System log in the Log transfers to pole. Or to tell WU-FTPD to write to the /var/log/xferlog file instead, select XFER log file . If Both is chosen, transfers will be logged to both destinations. If you want to use a program like Webalizer (covered in chapter 39) to analyze your FTP server's logs, they must be written to xferlog as the lines that end up being written out by syslog have additional information added and thus cannot be parsed. Anything written to the system log will use the daemon facility, unless WU-FTPD has been compiled to use a different one, such as local7. This can in fact be quite useful, as it allows you to separate out the FTP messages and have them written to a different file, while still enjoying all the benefits of syslog.
  5. To enable the logging of attempted filename security violations, select the types of users that this should be enabled for from the Log security violations for pole. These will always been written to syslog.
  6. Klikněte na tlačítko Uložit button at the bottom of the page to save and activate the new logging settings.

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).

WU-FTPD allows you to define limits on a per-class basis, so that anonymous clients can be restricted while real Unix users are not. It also lets you specify the times during which restrictions apply, so that a higher limit can be granted when the server is not as heavily used for other purposes (such as at night).

To set up concurrent login limits, follow these instructions:

  1. On the module's main page, click on the Limits and Access Control ikona. The form shown in Figure 41-4 will appear in your browser.
  2. The Concurrent user limits table is where limits on the number of connections can be entered. Each row defines a limit that applies to a certain class at certain times. As usual with tables in this module, there will be one empty row at the bottom for adding a new limit (and if this is the first one, the table will only contain that one row). Existing limits can be edited by changing their fields in the table, or deleted by selecting the empty option from the class menu. The fields in each row should be filled in as follows:Apply to class' You must select the name of the class that this limit will apply to from the menu. Multiple limits can be defined for the same class at different times. Maximum users To set a limit for the chosen class, select the second radio button and enter the maximum number of concurrent connections into the adjacent text box. If the Unlimited button is selected, no limit will apply to the class at the specified times. For example, you could add a row that turns off restrictions at night above another row that sets them for the entire day. At times If Any time is selected, the limit will apply all the time. However, if you choose the second option and enter a UUCP-style time specification into the text box, only connections made during that period will be restricted. For example, Any0900-1700 means 9am to 5pm every day, Mo,Tu,We means Mondays, Tuesdays and Wednesdays, Wk means weekdays and and Wk1700-0900,Sa,Su means times outside office hours. WU-FTPD always checks the table in order for an entry that matches a connecting client's class and the current time, and stops when it finds one. This means that entries that specify times (such as Any0900-1700 ) should be placed above those that have Any time selected so that the specific entry is actually used when appropriate. Error message file The full path to a file containing a message that will be sent to clients whose connections exceed the limit. This should explain why they are being rejected, and suggest other times or FTP servers to try.
  3. Klikněte na tlačítko Uložit button at the bottom of the page to activate the connection limits. To add more than one, you will need to re-visit the form so that a new blank row appears in the table.

Restricting clients by IP address

Even though it is possible to block clients from certain addresses by ensuring that they do not fall into any class, there is a feature in the module dedicated specifically to blocking clients based on their IP addresses or hostnames. This can be used to lock out specific hosts that are abusing your FTP server, or to restrict access to clients from only your own company or home network.

The steps to define banned client systems are:

  1. Click on the Limits and Access Control icon on the module's main page to open the form shown in Figure 41-4.
  2. Each row in the Deny access from table specifies an IP address, hostname or pattern to block logins from. As with other tables in this module, it will always an additional empty row for adding a new restricted address. In the Deny from address field you can also enter the full path to a file containing banned addresses, use negated patterns like !192.168.1.* or even the special address !nameserved which matches all clients that do not have a valid reverse DNS address. Only one can be entered though – to block additional addresses, you will need to add more rows. In the Error message file field you must enter the full path to a file containing a message that will be sent to blocked clients. This should explain to connecting users that they have been blocked, and perhaps give a reason why. If you want to add more than one row, you will need to save this form and re-open it so that a new empty row appears at the bottom of the table. Existing restrictions can be edited by just changing their fields, or deleted by clearing out the address.
  3. When you are done, hit the Save button at the bottom of the form to activate the new address restrictions.

Restricting access to FTP commands

WU-FTPD can be configured to restrict the FTP commands that certain types and classes of users can use. This is useful for stopping anonymous clients modifying files, as on most FTP servers they are only allowed to download, not upload, rename or delete. In fact, in its usual default configuration this is exactly how WU-FTPD is configured.

There are five commands that you can restrict access to, all related to server-side data modification. They are:

chmod
Change the Unix permissions of a file on the server (chmod in the Unix FTP client).
delete
Delete a file or directory on the server (del or rmdir in the Unix FTP client).
rename
Change the name of a file or directory (rename in the FTP client).
overwrite
Upload a file with the same name as one that already exists.
umask
Change the default Unix permissions for newly created files (umask in the Unix FTP client).

It is not possible to stop clients using directory listing or download commands. Neither is it possible using this feature to prevent the upload of files that do not already exist – however, this can be achieved by setting directory permissions appropriately, or blocking all uploaded filenames as explained in the “Denying access to files” section.

To define which clients can use which commands, follow these steps:

  1. Click on the Permissions icon on the module's main page.
  2. On the form that appears, the Command restrictions table lists existing commands and the user types and client classes that are or are not allowed to use them. As usual, you can add a new command using the blank row at the bottom, edit existing entries or delete the restrictions on a command altogether by selecting the blank option from the Command Jídelní lístek. The FTP server processes this table in order when a client tries to do something, and uses the selection in the Allow? column for the first entry that matches to decide if it is allowed or not. This means that the order matters, and thus if two entries match the first one will decide what happens. The fields for each row and their meanings are:Command You must select types. The restriction will only apply to the types of user selected in this column. See the “Managing user classes” section earlier in the chapter for details on what each means. For classes Only the client classes selected in this column will be effected by the restriction.
  3. When you are done editing or adding to the table, hit the Save button to activate your changes.

If a client command does not match any entry in the table, it will be allowed by the FTP server (unless blocked by some other filename restriction set elsewhere).

Configuring the WU-FTPD Server module

To change the paths that the module uses for the WU-FTPD configuration files and programs, you will need to click on the standard Module Config link in the top-left corner of the main page. Unlike other modules there are no options related to the user interface, so you will probably not need to adjust anything on the configuration form if the module is working for you. By default, all the configuration fields are set to match the WU-FTPFD package included with your operating system or Linux distribution.

Even though there are fields for configuration files other than ftpaccess, at the time of writing the module does not actually edit those files yet.


Webmin
  1. Jabber IM Server

  2. Server ProFTPD

  3. Instalace FTP serveru na Debian 10 – průvodce krok za krokem?

  1. Základní Ubuntu FTP server?

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

  3. Jak nainstalovat FTP server na Ubuntu 20.04

  1. Jak nastavit FTP server na vašem Raspberry Pi

  2. Jak nainstalovat FTP server na Ubuntu 20.04

  3. Jak nainstalovat FTP server na CentOS 7