Kiszolgálók üzemeltetése FTP Iványi Péter
FTP File Transfer Protocol Abhay Bhushan, RFC 114, 1971 RFC 765, 1980 RFC 959, 1985 File-ok fel- és letöltése egy szerverről Két port-ot használ, out-of-band (sávon kívüli) jellegű TCP alapú, nincs UDP változat Aktív és passzív FTP is létezik
FTP Peer-to-peer kliensek előtérbe kerülnek manapság Egy nagy file többszöri FTP letöltése leterheli a szervert Problémák Nincs titkosítás FTP bounce attack (PORT parancs kihasználása) Spoofing támadás (Másnak tűnünk fel) Brute Force Attack Packet Capturing
Aktív FTP Port 21 (FTP): parancs csatorna Kliens nyitja meg a 21-es port felé a csatlakozást Port 20 (FTP-DATA): adat csatorna Szerver nyitja meg a 20-as portról a kliens portja+1 felé a csatlakozást!!!!! A parancs csatornán a kliens a PORT paranccsal küldi el az adatcsatorna kliens oldali portját Befelé irányuló forgalom Tűzfalak esetén problémás Okos tűzfal az FTP forgalmat figyelve tudhat a port-ról NAT-olás mellett nem működik, ha csak a tűzfal nem elég intelligens
PORT 1027 Aktív FTP
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PORT 192,168,150,80,14,178 200 PORT command successful. ---> LIST IP cím Port szám: 14*256+178=3762 150 Opening ASCII mode data connection for file list. drwx------ 3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye.
Passzív FTP Parancs csatorna felépülése után a PASV parancsot küldi a kliens Átkapcsol passzív módba A szerver nyit meg egy portot, amit átküld a kliensnek a PORT paranccsal A kliens építi ki a kapcsolatot a szerver felé Tűzfalak konfigurációja nagyon könnyű A probléma a szerver oldalon lehet Nem privilegizált portokhoz szabad hozzáférés kell A szerver oldalon korlátozhatjuk ezek listáját
Passzív FTP PASV PORT 1027
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> passive Passive mode on. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PASV 227 Entering Passive Mode (192,168,150,90,195,149). Szerver válasz ---> LIST 150 Opening ASCII mode data connection for file list drwx------ 3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye.
ftp abc.xyz.edu ftp> help ftp> ls ftp> cd customers ftp> lcd images ftp> ascii ftp> binary ftp> prompt FTP user parancsok
ftp> get image1.jpg ftp> put image2.jpg ftp> mget *.jpg ftp> mput *.jpg ftp> mdelete *.jpg ftp> quit FTP user parancsok
/etc/ftpusers Konfiguráció Azon felhasználók listája akik nem használhatják az ftp-t /etc/ftpchroot Azon felhasználók, akik chroot környezetbe kerülnek a belépés után
Anonymous FTP File-ok cseréje több ismeretlen felhasználóval Lehet csak feltöltő szervert is készíteni!! E-mail címet szokott kérdezni a szerver, de nem ellenőrzi
Konfigurációs lépések adduser ftp Anonymous FTP chown root:root /home/ftp chmod 555 /home/ftp cd /home/ftp mkdir bin etc lib pub chmod 511 bin etc lib chmod 555 pub mkdir pub/incoming
Anonymous FTP chroot környezetbe kell kerüljön a felhasználó /home/ftp lesz a főkönyvtár: / Mivel az ls parancs a /bin könyvtárban van a /home/ftp alatt nem tudjuk használni Át kell másolni a parancsot és minden kapcsolódó könyvtárat
chroot Bevezetése 1979-ben a Version 7 Unix-ban BSD-be 1982-ben Felhasználása Tesztelés és fejlesztés Kompatibilitás (legacy szoftverekhez) Privilégium szeparáció Kitörés viszonylag egyszerű: http://www.bpfh.net/simes/computing/chroot-break.html
chroot-nál figyelni kell Ne root-ként futassuk a programokat Adjuk fel a jogokat, ha nem kellenek Explicit módon váltsunk a könyvtárba: chdir(dir); chroot(dir); setxxuid(nonroot); // adjuk fel a root jogokat Kevés programot tároljunk a chroot környezetben Minnél kevesebb root jogosultságú file legyen Limitáljuk a file jogokat amennyire csak lehet http://www.unixwiz.net/techtips/chroot-practices.html
Anonymous FTP Konfigurációs lépések cp /bin/ls /home/ftp/bin chmod 111 /home/ftp/bin ldd /bin/ls librt.so.1 => /lib/librt.so.1 (0x4001e000) libc.so.6 => /lib/libc.so.6 (0x40030000) libpthread.so.0 => /lib/libpthread.so.0 (0x40153000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Anonymous FTP Konfigurációs lépések # cp /lib/librt.so.1 lib/ # cp /lib/libc.so.6 lib/ # cp /lib/libpthread.so.0 lib/ # cp /lib/ld-linux.so.2 lib/ # chmod 555 lib/* # chown root.root lib/*
Üzenet a belépésnél /etc/ftpwelcome Üzenetek Nem chroot-olt felhasználók esetén a belépés utáni üzenet /etc/motd Könyvtárankénti üzenet.message file
WU-FTPD Washington University FTP daemon Minden bejövő és kimenő forgalmat naplóz Minden user parancsot naplóz Tömörítés menet közben Felhasználók osztályokba sorolása Minden könyvtárra szabályozható a feltöltés Virtuális host-ok
ProFTPD Biztonságosabbnak tervezték mint WU-FTPD Alapoktól újraírták Könyvtárankénti kontroll az.ftpaccess file-al Rejtett file-ok Önmagában megáll, nincs szükség más programra
Referenciák http://slacksite.com/other/ftp.html http://www.snow.nl/dist/htmlc/ch12s02.html