Konfigurace FTP a RSYNC serveru
- ProFTPd - měl nahradit wu-ftpd, design obdobný jako Apache, v roce
1999 převzat novým týmem, velmi nadějný
- Wu-ftpd - nejrozšířenější, mnoho bezpečnostních děr, obvykle se
používá verze wu-ftpd-academ, která obsahuje některé bezp. patche
- SSLftpd - wu-ftpd s podporou SSL
- Troll-ftpd - rychlý, malý, bezpečný, nepodporuje ASCII konverzi
- pftpd - pouze anonymní, multithreading
Nejprve je potřeba nainstalovat RPM balík wu-ftpd, v případě
použití anonymního ftpserveru se doporučuje i balík anonftp.
Obvykle se spouští pomocí inetd kdykoliv je detekováno
připojení k ftpportu. Konfigurace parametrů při spuštění
se tedy provádí v /etc/inetd.conf, blíže viz.
man ftpd, doporučeny jsou alespoň parametry -l -a,
tj. každé spojení je logováno a ke konfiguraci s používá soubor
ftpaccess.
Tento soubor souží k nastavení drtivé většiny vlastností ftpserveru.
Nejdůležitější položky jsou
- class - Definuje třídu uživatelů, pro tuto skupinu se později
pomocí dalších příkazů nastaví konfigurace ftpserveru. Uživatelé
se rozlišují na opravdové uživatele (real), kteří mají účet na
počítači, na hosty (guest), kteří mají vytvořen pouze ftp účet
a na anonymní uživatele (anonymous). Další rozlišení je možno
provést pomocí IP adresy, ze které se připojují.
- deny - Odmítne připojení z určitého počítače, podle IP adresy,
jména nebo toho, jestli může být stroj zpětně nalezen pomocí DNS.
- guestgroup - Všichni uživatelé, kteří patří do těchto skupin
jsou považováni za guest uživatele, jejich domovský adresář musí
být správně nastaven (viz. níže).
- guestuser - Jako předchozí, ale jsou použita jména uživatelů
z /etc/passwd, nebo jejich UID. S tímto uživatelem se
zachází téměř jako s anonymním uživatelem, ftpserver se chrootne.
Domovský adresář v /etc/passwd má dvě složky,
part1/./part2, kde part! slouží jako parametr pro
chroot a part2 udává relativní cestu k domovskému adresáři
od kořene chrootu.
- limit - Počet uživatelů dané třídy, kteří mohou být současně připojeni.
Lze omezit i podle denní doby.
- banner - Nápis, který se má vypsat při loginu.
- email - Email osoby zodpovědné za provoz serveru.
- message, log
- alias, cdpath - definují adresáře, které budou přístupné
pomocí cd z libovolného adresáře
Další volby viz. man ftpaccess
- Vytvoříme skutečného uživatele better a nastavíme heslo
find, nebo vytvoříme položku v /etc/passwd ručně
a heslo doplníme pomocí funkce crypt.
- Nastavíme shell na /bin/ftponly a doplníme tento shell do
/etc/shells. Domovský adresář nastavíme např. na
/home/ftp/./better a vytvoříme adresář /home/ftp/better.
- Do /etc/ftpaccess doplníme guestuser better.
Tento soubor slouží ke konverzím souborů při downloadu. Např.
viz konfigurační příkazy compress a tar v /etc/ftpaccess.
Na požadavek uživatele může provést kompresi, dekompresi, ...
Požadavek se realizuje přidáním či vynecháním předpony nebo přípony
v názvu souboru. Např. existuje-li soubor pokus.txt a uživatel zadá
get pokus.txt.gz, je původní soubor zazipován (pokud je tato přípona
správně nastavena). Tato akce by se dala realizovat následujícím řádkem:
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
Obsahuje řádky allow(deny) s parametry uživatel a adresa.
Význam záznamů viz. man xferlog, nastavení v /etc/ftpaccess.
- ftpshut - Ukončí běh serveru, nemá význam pokud je server
spouštěn z /etc/inetd.conf pouze během aktivního spojení.
- ftpwho - Vypíše seznam právě připojených uživatelů.
- ftpcount - Počet přihlášených uživatelů.
Tento program slouží pro efektivní synchronizování obsahů disků dvou počítačů.
Může běžet buď v režimu klienta, nebo jako daemon. Nejefektivnějšího
přenosu je dosaženo, když na vzdáleném počítači běží rsync server,
data jsou potom přenášena pouze jako rozdíly mezi soubory.
Spuštění serveru se provádí příkazem rsync -daemon, který může
být umístěn buď v některém ze startupových skriptů, nebo
inetd.conf jako např.
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
V tomto případě je ještě do /etc/services třeba přidat
rsync 873/tcp
Ke konfiguraci slouží soubor /etc/rsyncd.conf. V tomto souboru
jsou definovány takzvané moduly, neboli balíky souborů určné ke stažení.
Většina voleb se dá nastavit buď globálně, nebo pro každý modul zvlášť.
Modul začíná svým jménem zapsaným jako [module_name].
Mezi nejdůležitější parametry patří
- path - cesta k souborům obsaženým v modulu
- comment - komentář k modulu, který se zobrazí když si klient nechá
vypsat seznam všech dostupných modulů
- use chroot
- uid, gid - uživatel, pod nímž má rsync pracovat, implicitní je
nobody
- exclude, exclude from, include, include from
- auth users - seznam uživatelů, kterým je dovoleno se připojit k modulu
- secrets file - seznam uživatelů, formát jméno:heslo
- strict modes
- hosts allow - IP adresy nebo jména strojů, ze kterých je povoleno
připojení
- hosts deny
- log format
K takto zkonfigurovanému serveru se potom připojíme ze vzdáleného počítače
a provedeme přenos souborů, obecně kterýmkoliv směrem, případný upload
záleží na nastavení serveru. Příkazová řádka má více tvarů, například
rsync [OPTIONS] [USER@]HOST::SRC [DEST]
Volby viz. man rsync.
Jan Bouda
Mon Nov 6 11:47:19 MET 2000