Manpages

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 [AT] wugate.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 [AT] elender.hu>