ftps, které už umí „každý“ ftp server (např filezilla, viz http://filezilla-project.org/download.php?type=server , Guild neznám, možná to umí taky) nebo možná (nemám vyzkoušeno) open-ssh přes cygwin
Tento plugin nefunguje spravne, par let uz se nevyvyji, a s poslednima verzema openssh, prave v situaci, kdy je uzivatel zamcen v chrootu ma problem. Spravny plugin je tenhle, primo od tvurce TC: http://www.ghisler.ch/wiki/index.php/Secure_FTP_plugin, Download: http://www.ghisler.ch/board/viewtopic.php?t=19994
Administrátoři rozhodně nemají obavy z toho, že by se jim po systému potulovali uživatelé a nahlíželi, kam nemají (snad jen administrátoři-studenti).
Důvodem rozšířenosti FTP je:
1. že je to řešení dostatečné pro publikování dat a v řadě případů dostatečné i pro upload.
2. špatná dostupnost klientů jiných protokolů pro uživatele.
3. nastavení firewallů příp. proxy často nepočítá s jinými protokoly
Autor navíc zcela opomněl problématiku ověřování pravosti účastníků přenosu, která je pro mnohé uživatele složitá a řada klientů ji ani neimplementuje resp. implementuje špatně. Bez tohoto ověřování je jakékoli bezpečnostní řešení řešením jen na půl cesty.
Situaci, kdy mi druhá strana není ani telefonicky schopena potvrdit pravost serveru a to ani u komerčních subjektů jako je Česká spořitelna nebo dokonce Global Payments Europe, které jsou zodpovědné u nás za většinu karetních transakcí přes internet (v podstatě ani nevěděli, co po nich chci), považuji za dost tristní. .
A ještě bych dodal:
4) Rychlost přenosu – šifrování přece jen poněkud snižuje dosažitelnou přenosovou rychlost, a pokud mám FTP server určený pouze pro upload velkých souboru na GBit LAN (který není přístupný zvnějšku), tak mi může vadit cca poloviční až třetinová dosažitelná rychlost SFTP.
ad 4) skutecne sftp/scp neni dost dobry na gigabitu, protoze puvodne slo o bezpecnost a ne o rychlost, ale da se to resit treba takto: http://www.psc.edu/networking/projects/hpn-ssh/
Ale to je velmi zajímavé. Před pár lety jsem si říkal, kdy v open-ssh konečně upraví chování bufferů, aby se přenos souborů tak nevlekl (SCP/SFTP u mě nepřekročil 2 mega, FTP sviští co linka dovolí). A ono asi nic, musíme použít patch od někoho jiného. A dokonce je tam i patch na dodatečný server logging! Hezká stránka, díky :-).
Prave, nejvetsi problem jsou uzivatele, co tak maximalne zvladnout si najit ftp server, pres ikonku „mista v siti“. O nejakem stahovani a instalaci sftp klienta nemuze byt rec. BTW, nevite nekdo o nejake programku pod win, co by takovymto (pro BFU jednoduchym zupsobem) umel zprostredkovat i to SFTP – namountovat ho jednoduce uzivateli jako slozku?
Sshfs neexistuje pro Widle, ale je k dispozici Dokan sshfs: http://dokan-dev.net/en/download/#sshfs
Ad 1 a ad 2: WebDAV over HTTPS umí to samé a je vestavěný i ve Windows. Protože WebDAV používá HTTPS, tak je už velmi dobře implementované i ověřování serveru pomocí HTTPS certifikátů. Jenže správně nastavit WebDAV není moc jednoduché a většina adminů spíše upřednostní svoji lenost před bezpečím uživatelských dat
Ad 3: zrovna FTP je jeden z nejhorších protokolů pro nastavoení firewallu, právě proto, že používá dva porty a navíc umí pasivní a aktivní mód, takže firewall musí zkoumat všechny FTP pakety na příkaz PORT, což je výkonově docela náročné a znemožňuje použití FTPS (v případě, že firewall je dedikovaný, což by z bezpečnostních důvodů měl být). SSH a WebDAV over HTTPS je oproti tomu pohádka
WebDAV s ničím problém nemá, je to velmi dobře definovaný a standartizovaný protokol. Problém má Micro$hit, který záměrně svoji podporu WebDAV-u przní (je to vidět mj. na tom, jak vždy WebDAV funguje nějak teprve od SP2-SP3, nová verze widlí je zmršená. Na netu se dá najít kopie mailu, který rozesílal velký DeBill někdy kolem roku 2000, ve kterým nařizuje programátorům M$, že musí WebDAV zprznit, protože je to nebezpečný protokol pro M$ :-(. Ten mail nějak unikl z onoho antimonopolního řízení proti M$ v USA před pár lety…).
Nikoliv. FTP se používá proto, že ho umí nativně MS Windows. Můžu vám poslat:
\\mujserver\adresar
http://nekde.neco.com/aaa
ftp://nekde.jinde.com/aaa
Cokoliv z toho je klikatelný odkaz. Prostě kliknete a jste tam. Možná bude chtít username a heslo, ale o to si řekne.
Jakmile začne SFTP, SCP nebo něco jiného být stejně „nativně klikatelné“, bude to použitelné. Do té doby (s nutností něco instalovat) je to neschůdné. Pokud potřebuji zprovoznit adresář, kam má přístup 150 lidí z naší firmy, 80 lidí od zákazníka a dalších 190 lidí od různých dodavatelů, pak v případě FTP vím, že to bude fungovat. Požadavek na větší zabezpečení obvykle nevede na SFTP/SCP, ale vede k HTTPS a PHP/Java/Ruby atd. Posílat zákazníkovi ultimátum, ať na počítače uživatelů instaluje SW třetí strany… no, zkusit to můžete :-)
Nevím jaký je stav dnes, ale když jsem cca před rokem sftp „pro uživatele“ používal, tak jsem narazil jednak na problém logování a jednak nastavení práv. Zatímco normální FTP servery mají docela propracovaný systém, aby se transakce logovaly, a aby uživatelé nemohli libovolně měnit práva nahraných souborů, tak řešení pro SFTP v tomto ohledu vyžadovalo aplikaci nějakého (neoficiálního) patche a pak ještě večer nad kódem ve stylu „proč to sakra nefunguje“.
Kdo si neumí zabezpečit ftp, tak není dobrý admin. Na citlivá data přes internet použiji třeba scp; ale to nic nemění na tom, že nahrazovat šifrovaným přenosem anonymní ftp je pitomost. Pro velké objemy dat na rychlých sítích je veškeré šifrování přenosu neakceptovatelné zpomalení a pruda. Rozumný člověk volí vždy takový nástroj, který je pro danou akci nejvhodnější.
Dalsi duvod, proc se porad pouziva klasicke FTP pripadne FTPS je jednotna sprava uctu. Vetsina hostingu ma nejakou sql databazi klientu, kde ma klient centralni login a heslo. Pro nej si saha extranet, ftp, posta. Jde nejak rict SSH, aby se neoveroval vuci /etc/passwd ale vuci SQL databazi nebo LDAPu?
Všechny dnešní distribuce používají PAM a PAM se umí ověřovat vůči prakticky čemukoliv včetně MySQL a PostgreSQL databází, Kerberos, RADIUS, LDAP, HTTP, POP3, IMAP, SMTP, SMB/CIFS, přítomnosti Bluetooth nebo USB zařízení, čtečce otisků prstů, PCKS#11, MuscleCard a OpenPGP/GnuPGP kartám nebo klidně FTP nebo jinému SSH serveru a dokonce umožňuje mít pro každou službu jinou metodu autentifikace, jiné heslo nebo jiný domovský adresář nebo metody autentifikace skriptovat
Co se stane kdyz nekdo v sftp session napise:
!/bin/bash
Pokud byl /bin viditelny tak se spusti bash, pokud byl chrootovany, tak stale muzu udelat
put /bin/bash
put make-me-the-root
chmod 755 bash
!./bash
$ chmod 755 make-me-the-root
$ make-me-the-root
# gotyou!
Doufam ze se da ! nejak vypnout.
Jeste nejak nerozumim te poznamce s /etc. Muze mi nekdo vysvetlit jak ziskam roota tim ze budu moct vytvorit /etc ?
Jo uz mi to taky doslo. Asi jsem mel nejaky `zkrat' v mysleni.
Jenom porad nevim proc vadi dat nekomu moznost vytvorit /etc. I kdyby nekdo vytvoril /etc/passwd s rootem bez hesla, tak jelikoz nemuze spustit su, tak je mu to nanic. Predpokladam teda ze kdyby se pak pokusil o ssh root@machine tak ze se pouzije globalni /etc/passwd a taky ho to nepusti.
Takze me nenapada jak by se to dalo zneuzit.
„Tento problém se dříve řešil pomocí prostředí chroot, do kterého byl uživatel uzavřen. Problém ale je, že tento postup vyžaduje kopírování systémových souborů do domovského adresáře, udržování verzí knihoven, ruční konfiguraci a má další nevýhody.“
Riesenie:
1) # aptitude install vsftpd alebo # pkg_add -r vsftpd
2) v vsftpd.conf zmenit chroot_local_user=NO na chroot_local_user=YES
2.1) pre freebsd este # echo ‚vsftpd_enable=„YES“‘ >> /etc/rc.conf
3) spustit vsftpd
SSH/SFTP pouzivam casto a paci sa mi, ze SFTP je nastavene out of box. Data transfer funguje aj cez firewall bez FTP proxy (pokial mate otvorenu 22ku).
Autorov argument mi ale pripada samoucelny. Viem, ze v pripade FreeBSD so standardnym ftpd je potrebne robit nieco ako autor popisuje a argument plati. No aj tam ma clovek moznost nainstalovat alternativny FTP server a vyhnut sa celej procedure.
Ak niekto poskytuje FTP pristup pre vela uzivatelov, urcite spusta ftp server v jail-e alebo nejakom sandboxe.
„ruční konfiguraci“
je mozne nazvat aj zmenu v sshd_conf, preto nechapem, ktory konkretny krok ma autor na mysli.
Ospravedlnujem sa. Z povodnej struktury mi to nebolo jasne.
Preco uz potom rovno nepouzit FTP server s podporou FTPS, ktory je primarne urceny na poskytovanie suborov a neni nutne v nom obmedzovat shell pristup atd.?
Ak by ste napr. chceli povolit shell pre dalsiu skupinu uzivatelov pripajajucich sa na ssh server, aj tak by im bolo treba kopirovat userland.
Nedavno jsem toto resil a nasel jsem i dalsi shelly k tomuto urcene:
http://sourceforge.net/projects/lshell/
http://mysecureshell.sourceforge.net/
Prvni dovoli i interaktivni prihlaseni, kdy muzu vyjmenovat povolene prikazy a znaky. Vse je logovano, muzu nastavit pocet provineni (treba pokus o opusteni chroot adresare) a po dosazeni tohoto poctu je uzivatel automaticky odhlasen.
Lze ho pomerne snadno chrootnout, home adresar nemusi vlastnit root, jen pridam uzivatele do systemu a do konfiguraku jeden radek pro jeho domovsky adresar
Vůbec se mi nelíbí, že SCP/SFTP pouští uživatele na nějaký shell. Výhod FTP je v možnosti virtuálních účtů a virtuálních adresářů.
Pustit lidi do shellu a pak řešit, jak to omezit aby se nedostali dál je po vzoru „admin blbec“. Mnohem lepší je vystavit internetu server, který umí jen to co má umět a nic víc.
Svět potřebuje přenosový protokol. ale SFTP to fakt nebude.
SSH už dávno není jenom shell (dokonce ani nemusí spouštět shell, aby fungovalo např. jako VPNka), je to šifrovaný multiplex (tunel) a pomocí toho lze realizovat nejrůznější úkoly. Včetně SFTP, které je pro přenos souborů v současném nebezpečném internetovém světě daleko lépe vymyšlené než velice důvěřivé FTP.
Kdyz provedete chroot do /sftp, tak by prece uzivatel nemel mit home dir /sftp/uzivatel, ale jen /uzivatel (http://www.debian-administration.org/articles/590)? To ale pak muze kolidovat s FTP (ktere uzivatele stejne vyzaduji) a ktere potrebuje v home dir realnou cestu, tj. /sftp/uzivatel. Dal by me zajimalo, proc je nutne, aby mel adresar vlstnika a skupinu root, kdyz FTP toto nevyzaduje a chroot do domovskeho adresare provadi take?
FTP nedělá chroot, ale „překládá“ zadané adresáře na adresáře na serveru. Adresář, do kterého se chrootuje, může vlastnit kdokoliv, pokud vím, tak SSH to nijak neomezuje.
Kolize lze vyřešit tak, že se do /sftp vytvoří symlink „sftp“ ukazující na „.“. Nebo přes PAM lze pro SFTP a FTP nastavit rozdílné domovské adresáře.
Jak už jsem vykřikoval loni při tvé přednášce na LinuxTagu, pořád preferuji FTP-TLS/SSL (v tvém dělení FTPS) oproti řešením postaveným nad SSH. S vsftpd to celé nakonfiguruji na 3 řádky:
chroot_local_user=YES
force_local_logins_ssl=YES
force_local_data_ssl=NO
Tím zajistím, že uživatelé hlásící se jménem/heslem (tj. local users) budou v chrootu, jejich credentials budou poslány šifrovaně a data už potom nešifrovaně, tj. maximální rychlostí bez zbytečné režie.
Shell jim dám klidně /bin/false, nemusím řešit žádné jejich omezování, používají klasický FTP jak byli zvyklí.
A hlavní věc – pořád můžu mít v /etc/hosts.deny zakázáno logování přes SSH z cizích IP adres, což u SFTP nejde (pro tcpwrappers používá sftp stejné sshd jako normální ssh, ne?), jestli se nepletu.
FTP-TLS/SSL je samozrejme krajsie a vykonnejsie riesenie, ale ma problem so striktnymi firewallmi a NAT-om, dokonca v pripade ze obe strany su za NAT-om, tak to nechodi vobec.
RFC 4217 sice popisuje sposob ako sa s tym vyrovnat – CCC FTP command (Clear Command Channel), ale za prve to musi byt specialne povolene na strane serveru a za druhe tu musi podporovat tiez klient, navyse to moze vies k bezpecnostnym problemom.
Takze z mojho pohladu este si musime pockat na skoro idealny, bezpecny a vykonny protokol na efektivny prenos dat.