NÉV¶
ftpd - DARPA Internet File Transfer Protocol szerver
ÁTTEKINTÉS¶
ftpd [
-d ] [
-v ] [
-l ] [
-ttimeout ] [
-Tmaxtimeout ] [
-a ] [
-A ] [
-L ] [
-i ]
[
-o ] [
-pctrlport ] [
-Pdataport ] [
-q ] [
-Q ] [
-rrootdir ] [
-s ] [
-S ] [
-uumask
] [
-w ] [
-W ] [
-X ]
LEÍRÁS¶
Az
ftpd a DARPA Internet File Transfer Protocol szerver procesz. A
szerver a TCP protokollt használja, és az ``ftp''
szervíz-specifikációban megadott porton várakozik,
lásd
services(5).
Ha a
-d vagy
-v opció meg van adva, debugging
információ íródik a syslog-ba.
Ha az
-l opció meg van adva, minden ftp session loggolva lesz a
syslog-ba.
Ha a kliens 15 percig nem csinál semmit, az ftp szerver
megszakítja a kapcsolatot. Ha a
-t opció meg van adva, a
várakozási idő
timeout másodpercre
állítódik. A kliens szintén kérhet
különboző várakozási időt; a
maximálisan megengedett időt
timeout másodpercre
állítja a
-T opció. A default határ 2
óra.
Ha az
-a opció meg van adva, az
ftpaccess(5)
konfigurációs fájl használata engedélyezve
van.
Ha az
-A opció meg van adva, az
ftpaccess(5)
konfigurációs fájl használata nincs
engedélyezve. Ez a default.
Ha az
-L opció meg van adva, akkor az
ftpd(8) szervernek
küldött parancsok a syslog-ba íródnak. Az
-L
opció használatát felülbírálja
az ftpaccess(5) fájl használata. Ha a
-L flag
használva van, az összes USER parancs loggolva lesz, vagyis ha a
felhasználó véletlenül a jelszavát
írja be a felhasználói neve helyett, a jelszava a
syslogon keresztül loggolódik.
Ha az
-i opció meg van adva, az
ftpd(8) szerver
által fogadott fájlok az
xferlog(5) -ba
loggolódnak. Az
-i opciót felülbírálja
az ftpaccess(5) fájl használata.
Ha az
-o opció meg van adva, az
ftpd(8) szerver
által elküldött fájlok az
xferlog(5) -ba
loggolódnak. Az
-o opciót felülbírálja
az ftpaccess(5) fájl használata.
Ha az
-u opció meg van adva, a default umask
umask lesz
Ha a
-W opció meg van adva, a belépések nem
kerülnek a wtmp fájlba. A default (
-w ) minden
belépés és kilépés feljegyzése.
Az
-s és
-S opciók "standalone"
üzemmódba teszik a démont. (ilyenkor
közvetlenül figyeli a portot, és nem az inetd
démon indítja - a ford.) Az
-S opció a
háttérbe teszi a démont, és a
rendszerinicializálós szkriptekben lehet hasznos
(például az rc.local -ban) Az
-s opció az
előtérben hagyja a démont, és az init-ból
való futtatáskor (például az /etc/inittab
segítségével) hasznos.
A
-p és
-P felülírják a démon
által használt portszámokat. Normálisan a
démon a portszámokat úgy állapítja meg,
hogy az "ftp" és "ftp-data" bejegyzéseket
megnézi az /etc/services fájlban. Ha nincs "ftp-data"
bejegyzés az /etc/services fájlban, és a
-P
opció nincs megadva, akkor a démon a kontroll-kapcsolat
portszámát megelőző portot használja. A
-p opció csak a "standalone" démonként
való futás esetén használható.
A
-q és
-Q opciók azt határozzák meg,
hogy használjon-e PID fájlokat a démon. Ezeket a
fájlokat a limit direktíva használja arra, hogy
meghatározza az egy elérési osztályban levő
egyszerre jelenlevő felhasználók számát. A
PID fájlok letiltása a felhasználói limiteket is
letíltja. A default (
-q ) a PID fájlok
használatának az engedélyezése. A
-Q
opciót akkor add meg, ha normális
felhasználóként teszteled a szervert, és a PID
fájloktól nem léphetsz be. Olyan nagyforgalmú
szájtok esetén, amelyek nem limitálják az
egyszerre jelenlevő felhasználók számát,
szintén meggondolhatod a PID fájlok letiltását.
A
-r opció arra utasítja a démont, hogy a megadott
könyvtárba
chroot(2) -oljon, rögtön az
elindulás után. Ez annyiban javíthatja a rendszer
biztonságát, hogy korátozza azoknak a fájloknak a
számát, amelyek károsíthatók egy a
démonon keresztüli betörés esetén.
Akárcsak az anonymous FTP esetén, szükség van
néhány külön fájlra, a rendszertől
függően.
Az ftp szerver jelenleg a következő ftp kéréseket
támogatja (nem számít, hogy nagybetű vagy
kisbetű):
Kérés Leírás
ABOR az előző parancs végrehajtását szakítsd meg
ACCT account megadása (figyelmen kívűl hagyva)
ALLO foglalj tárolási helyet
APPE írd egy fájl végére (append)
CDUP menj eggyel feljebb a könyvtárstruktúrában
CWD változtass könyvtárat
DELE törölj egy fájlt
HELP adj segítő információt
LIST listázd a fájlokat egy könyvtárban (``ls -lgA'')
MKD csinálj egy könyvtárat
MDTM mutasd meg egy fájl utolsó módósításának idejét
MODE specifikálja az adatátvitel módját
NLST add meg egy könyvtárban levő fájlok neveit
NOOP ne csinálj semmit
PASS ez a jelszavam
PASV szerverről-szerverre átvitel előkészítése
PORT ezen a porton menjenek az adatok
PWD írd ki az aktuális könyvtárat
QUIT kilépek
REST kezdd újra a nem teljes átvitelt
RETR kérek egy fájlt
RMD törölj egy könyvtárat
RNFR átnevezésnél a régi fájlnév
RNTO átnevezésnél az új fájlnév
SITE nem standard parancsok (lásd alább)
SIZE mekkora ez a fájl
STAT mi a szerver státusza
STOR tárolj egy fájlt
STOU tárolj egy fájlt egyedi névvel
STRU az adatátvitel struktúrájának megadása
SYST mutasd a szerver operációs rendszerének a típusát
TYPE az adatátvitel típusának a meghatározása
USER felhasználói név meghatározása
XCUP válts a jelenlegi munkakönyvtár szülőjébe (elavult)
XCWD könyvtárváltás (elavult)
XMKD csinálj egy könyvtárat (elavult)
XPWD írd ki az aktuális munkakönyvtárat (elavult)
XRMD törölj egy könyvtárt (elavult)
A következő nem standard vagy UNIX-specifikus parancsokat
támogatja a SITE kérés:
Kérés Leírás
UMASK umask váltás. Pl.: SITE UMASK 002
IDLE idle-timer beállítása. Pl.: SITE IDLE 60
CHMOD egy fájlra vonatkozó jogokat változtat. Pl.: SITE CHMOD 755 fájlnév
HELP help-et kér valamiről. Pl.: SITE HELP
NEWER egy adott dátumnál újabb fájlokat listázza
MINFO mint a SITE NEWER, de több extra információt ad
GROUP különleges csoportelérés kérése. Pl.: SITE GROUP foo
GPASS különleges csoportelérési jelszó megadása. Pl.: SITE GPASS bar
EXEC futtass egy programot. Pl.: SITE EXEC program params
A többi, az Internet RFC 959-ben specifikált
ftp-kéréseket felismeri, de ezek nincsenek implementálva.
MDTM és SIZE nincsenek benne az RFC 959 -ben, de meg fognak jelenni a
következő FTP RFC-ben. (Az RFC 2228 a következő,
ami 1997-ben jelent meg - a ford.)
Az ftp szerver csak akkor fog megszakítani egy aktív
fájlátvitelt, ha az ABOR parancsot megelőzi egy Telnet
"Interrupt Process" (IP) jel és egy Telnet "Synch"
jel, ahogyan az az Internet RFC 959-ben meg van írva. Ha
adatátvitel közben kap egy STAT parancsot, amelyet egy Telnet IP
és Synch előz meg, akkor az átvitel
státusát küldi vissza.
Az
ftpd a fájlneveket a
csh(1) ``globbing''
konvenciói szerint interpretálja, vagyis a
felhasználók használhatják a ``*?[]{}~''
metakaraktereket.
Az
ftpd a felhasználókat négy szabály szerint
authentikálja:
- 1)
- A felhasználói névnek szerepelni kell az
/etc/passwd fájlban, vagy egyéb, az
operációs rendszernek megfelelő
jelszóadatbázisban, és a jelszó nem lehet
üres. Ilyenkor a jelszó megadása előtt
semmilyen fájlműveletet nem lehet végrehajtani.
- 2)
- A felhasználói névnek nem szabad az
/etc/ftpusers fájlban szerepelnie.
- 3)
- A felhasználónak kell legyen egy alapértelmezett
parancsértelmezője, amit a getusershell(3) ad
vissza.
- 4)
- Ha a felhasználói név is ``anonymous'' vagy ``ftp'',
egy anonymous ftp account kell legyen a jelszó fájlban
(``ftp'' felhasználó). Ebben az esetben a
felhasználó bármilyen jelszóval
beléphet (a konvenció szerint ez a kliens gép neve).
(ez itt egy elég régi manpage-részlet lehet - mint
tudjuk, az email címet szokták kérni manapság
-- a ford. megjegyzése)
Az utolsó esetben az
ftpd különleges
intézkedéseket tesz, hogy a kliens
hozzáférési lehetőségeit korlátozza.
A szerver egy
chroot(2) rendszerhívást hajt végre
az ``ftp'' felhasználó home könyvtárába. A
rendszer biztonságának érdekében az ``ftp''
al-fát gondosan kell felépíteni, a
következő szabályok betartása ajánlott:
- ~ftp)
- Tedd a home könyvtárat a root tulajdonába, és
mások által nem írhatóvá.
- ~ftp/bin)
- Tedd ezt a könyvtárat a root tulajdonába, és
mások által nem írhatóvá. Az
ls(1) programnak jelen kell lennie, hogy a list parancsot
támogassa. Ennek a programnak a jogai legyenek 111-re
állítva.
- ~ftp/etc)
- Tedd ezt a könyvtárat a root tulajdonába, és
mások által nem írhatóvá. A
passwd(5) és group(5) fájloknak jelen kell
lennie, hogy az ls parancs neveket, és ne számokat
tudjon kiírni. Az operációs rendszertől
függően más fájlokra is szükség
lehet. Nézd meg a getpwent(3) könyvtári
hívás kezikönyvlapját. A jelszó
mező a passwd fájlban nincs használva,
és nem ajánlott igazi titkosított jelszavakat tenni
oda. Ezek a fájlok legyenek 444 joggal ellátva, és a
root tulajdonában. Ne használd a rendszer /etc/passwd
fájlját jelszó fájlként, vagy a
rendszer /etc/group fájlját group fájlként az
~ftp/etc könyvtárban.
- ~ftp/pub)
- Csinálj egy ~ftp/pub alkönyvtárat 733 vagy 777
joggal, attól függően, hogy meg akarod-e engedni a
normál felhasználoknak, hogy fájlokat
töltesenelk fel.
EGY CSAK A BSD/OS RENDSZEREKEN HASZNÁLT AUTHENTIKÁCIÓS MECHANIZMUS¶
Az ftpd által használt authentikációs mechenizmust
az
/etc/login.conf fájlban található ``auth-ftp''
bejegyzés határozza meg. (lásd
login.conf(5))
amely illeszkedik a felhasználói osztályra. Ha nincs az
adott osztálynak megfelelő ``auth-ftp'' bejegyzés, akkor
a normál ``auth'' bejegyzés kerül
felhasználásra. Egy alternatív
authentikációs mechanizmust is meg lehet adni egy
kettőspont (``:'') után, például: ``joe:skey''.
ÁLTALÁNOS FTP KITERJESZTÉSEK¶
Van néhány kiterjesztése az FTP szervernek,
például ha a felhasználó egy fájlnevet ad
meg (a RETRIEVE parancs használatákor):
Igazi fájlnév Megadott fájlnév Ami történik
------------- ------------------ -----------------------------------
<fájlnév>.Z <fájlnév> Kitömöríti a fájlt küldés előtt
<fájlnév> <fájlnév>.Z Tömöríti a fájlt küldés előtt
<fájlnév> <fájlnév>.tar Tar (becsomagolja) a fájlt küldés előtt
<fájlnév> <fájlnév>.tar.Z Tar (becsomagolja) és tömöríti a fájlt küldés előtt
(a ford. megjegyzése: ma már a compress helyett inkább a gzip
a szokásos fájltömörítési eljárás, .Z helyett .gz kiterjesztéssel)
Ezenkívül az ftp szerver megpróbálja az email
címet ellenőrizni, és megszidja a
felhasználót, ha nem megy át a teszten. (Mivel
általában egy email címről csak akkor lehet
biztosan tudni, hogy érvényes, ha egy levelet
küldünk oda és nem jön vissza, nem túl
nehéz átverni az ftp szervert - a ford. megjegyzése) Azok
a felhasználók, akiknek az ftp-kliense kiakad a többsoros
válaszoktól, adjanak meg egy kötőjelet a jelszavuk
első karaktereként, ez le fogja tiltani a szerver lreply()
függvényének a használatát.
Az FTP szerver képes az összes fájlátvitelt
loggolni, megőrizve a követező
információkat:
Mon Dec 3 18:52:41 1990 1 wuarchive.wustl.edu 568881 /files.lst.Z a _ o a chris@wugate.wustl.edu ftp 0 *
%.24s %d %s %d %s %c %s %c %c %s %s %d %s
1 2 3 4 5 6 7 8 9 10 11 12 13
1 aktuális idő NNN HHH nn óó:pp:mm ÉÉÉÉ alakban
2 az adatátviteli idő másodpercekben
3 a távoli gép neve
4 fájlméret bájtokban
5 fájl neve
6 átvitel típusa (a>scii, b>inary)
7 különleges flag-ek (összefüzve):
C a fájl compress-el össze volt tömörítve
U a fájl ki volt tömörítva
T a fájl tar-olva volt
_ semmi különleges nem történt
8 a fájl kiment a felhasználónak (o>utgoing) vagy tőle érkezett
(i>ncoming)
9 anonymous-ként elérve(r>eal, a>nonymous, g>uest)
10 lokális felhasználói név, vagy guest esetén a megadott név
(anonymous FTP jelszó)
11 szervíz név ('ftp', other)
12 authentikációs módszer (bitmaszk)
0 semmi
1 RFC931 authentikáció
13 authentikált user id (ha elérhető, '*' egyébként)
LÁSD MÉG¶
ftp(1),
getusershell(3),
syslogd(8),
ftpaccess(5),
xferlog(5),
umask(2)
HIBÁK¶
Az anonymous account természeténél fogva veszélyes,
és elkerülendő, amikor csak lehetséges.
A szervernek root-ként kell futnia, hogy privilégizált
portokon hozhasson létre socketeket. A belépett
felhasználó effektív felhasználói
id-jét használja, és csak addig root, amíg a
címeket összeköti (bind) a port-számokkal. A
lehetséges biztonsági lyukakat rendkívüli
elővigyázatossággal tömködték be, de
nem biztos, hogy mind sikerült.
MAGYAR FORDÍTÁS¶
Balázs-Csíki László <bcsl@elender.hu>