FTP

Úvod

File Transfer Protocol je nejstarší, a poměrně komplikovanou, službou Internetu. Užívá se pro přenos souborů mezi vzdálenými počítači v obou směrech. Použití služby FTP závisí na právech na jednotlivých počítačích. Pracuje na principu klient - server. V Unixech se používá balík wu-ftpd (vyvinutý na Washingtonově universitě v Sant Luis a mající status volného software). Ftpd démon se spouští superdémonem inetd a tedy musí být uveden v /etc/inetd.conf.

Činnost FTP

Po spuštění ftp se pro přihlášení k vzdálenému stroji používá uživatelské jméno a heslo. Heslem je obvykle pro anonymní přihlašování e-mail adresa klienta nebo guest. Často stačí napsat cokoliv co obsahuje @.

Anonymní klient

Mnoho počítačů umožňuje anonymní přístup klientům. Pro anonymní přihlašování je zřízen speciální účet ftp, ke kterému se přihlašuje klient jako

            anonymous, nebo

ftp.

Účet ftp na serveru je potencionálním zdrojem ohrožení bezpečnosti serveru, a proto musí být zřízen za dodržení určitých pravidel.

            Pro anonymního uživatele se obvykle zřizuje skupina uživatelů (např. anonftp), jejímž členem je jediný uživatel a to ftp resp. anonymous. Zřízení uživatele ftp vyžaduje tedy v souboru

 /etc/group uvést

            anonftp::19:

/etc/passwd/

            ftp:*:404:19:Anonymous FTP user:/home/ftp/:/bin/false

Uživatel má zablokované heslo a nepoužitelnou přihlašovací utilitu /bin/false.

 

Démon ftpd označí adresář /home/ftp jako root (použitím utility chroot)

 

Pro stahování souborů je zřízen adresář ~ftp/pub, u kterého má kllient  jen právo čtení.

Pro zápis  musí být zřízen jiný adresář, jehož obsah je pro klienty neviditelný, aby se zabránilo nelegální šíření nekontrolovaného software.

Por stahování souborů je vhodné používat komprimační program gzip, který se umísťuje  do adresáře ~ftp/bin.

 

Bezpečnost serveru vyžaduje

·         pro údržbu a správu FTP je určena skupina administrátorů (např. ftpadmin)

·         pro anonymní klienty se musí zřídit zvláštní skupina uživatelů (anonftp)

·         vlastníkem adresáře ~ftp i všech podadresářů a souborů musí být root a skupina ftpadmin. Nastavení práv

pro soubory              -rw-rw-r--.

pro adresáře             drwxrwxr-x.

·         Pro zápis musí být vyhrazen zvláštní adresář, např. ~ftp/incoming s vlastníkem root a se skupinou určenou pro anonymní klienty anonftp, Přístupová práva k tomuto adresáři musí být drwx-wx---. Pak anonymní klient má v něm právo zápisu, ale nevidí obsah adresáře.

Konfigurace FTP

·         Démon ftpd na FTP serveru vyžaduje pro stahování jednak příkaz ls a jednak komprimační program gzip. Oba jsou umístěny v adresáři  ~ftp/bin. Tyto programy jsou sestaveny staticky a zkopírovány do daného adresáře, nebo využívají  dynamických knihoven, které musí být v tomto adresáři.

·         Dále je zapotřebí pro klienta zpřístupnit soubory group a psswd, ze kterého čerpá informace příkaz ls.  Proto je potřebí z těchto souborů vybrat jen ty položky, které se týkají potencionálních uživatelů a vlastníků souborů v adresářích ftp a tyto zkopírovat do souborů ~ftp/etc/passwd a ~ftp/etc/group.  Doporučuje se také změnit jména účtů v těchto souborech, aby se snížilo riziko zneužití.

·         Nastavení souboru  /etc/ftpusers . V tomto souboru jsou uživatelé, kteří mají zakázaný přístup pro relace FTP. Mezi nimi musí být i root, neboť se hesla při FTP relacích šíří volně a je možný jejich odposlech.

·         hlavním konfiguračním souborem je /etc/ftpacces ve kterém se definují třídy  uživatelů a počítačů, jimž pak lze selektivně upravovat přístupová práva,

·         loginfails 3                počet pokusů k přístupu 

·         class local real, guest, anonymous  jméno domény    lokální klienti

·         real           kteří mají účet

·         guest        něco mezi anonymous a těmi co mají účet

·         jméno domény se vztahuje na počítače, ze kterých lze provést přístup a musí být v reverzní doméně

·      class remote                         totéž pro vzdálené

·      readme README* login    oznamují po přihlášení kdy byly soubory                                                 modifikovány

·      passwd-check          enforce - nutné zadat heslo včetně @

warn      - varuje při nesprávném hesle, ale akceptuje

none      - bez hesla

trivial     -  kontroluje pouze @