FTPD(8) | System Manager's Manual | FTPD(8) |
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>
January 10, 1997 | 4.2 Berkeley Distribution |