Your SlideShare is downloading. ×
0
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
US07FFT-mod_ftp.ppt
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

US07FFT-mod_ftp.ppt

660

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
660
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Apache HTTP mod_ftp William A. Rowe, Jr. ASF Member, httpd and APR projects Sr. Software Engineer, Covalent Technologies
  • 2. FTP Overview <ul><li>File Transfer Protocol (FTP) is an efficient protocol for transferring files over a TCP/IP network </li></ul><ul><li>Unlike HTTP, FTP is designed to handle binary files directly without encoding and decoding data </li></ul><ul><li>FTP session can be initiated over a command line, using graphical tools or via the Web Browser </li></ul><ul><li>Need to have a login account on the FTP server machine, or login as “anonymous” </li></ul><ul><li>Several FTP commands for manipulating files </li></ul><ul><ul><li>STOR, DELE, LIST, RMD, MKD etc. </li></ul></ul>
  • 3. Shortcomings of traditional FTP <ul><ul><li>Lacks in enterprise integration, security and performance </li></ul></ul><ul><ul><li>Need to have a parallel management infrastructure for serving FTP </li></ul></ul><ul><ul><li>User administration </li></ul></ul><ul><ul><li>Logging, log rotation </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Many do not support FTP restart </li></ul></ul><ul><ul><li>Monolithic architecture, missing extensibility </li></ul></ul>
  • 4. mod_ftp overview <ul><li>Fully RFC Compliant FTP implementation powered by Apache 2.0 (RFC: 959, 1123, 2228, 2389)‏ </li></ul><ul><li>Leverages the new architecture of Apache 2, whereby content serving protocols are also modules now </li></ul><ul><li>Same instance of Apache can serve FTP, Secure FTP as well as HTTP and HTTPS. </li></ul><ul><li>Many FTP clients supported for SSL </li></ul><ul><ul><li>CuteFTP, WSFTP Pro etc. </li></ul></ul><ul><li>Supports FTP restart </li></ul>
  • 5. mod_ftp Additional Features <ul><li>FTP over SSL </li></ul><ul><li>Extensive authentication and authorization support </li></ul><ul><li>Dynamic content </li></ul><ul><li>Robust and known API </li></ul><ul><ul><li>Allows for extensive expandability </li></ul></ul><ul><ul><li>Leverages Apache web server popularity </li></ul></ul><ul><ul><li>Extensible with module integration, mod_perl </li></ul></ul>
  • 6. FTP over SSL <ul><li>mod_ftp leverages mod_ssl to encrypt traffic </li></ul><ul><ul><li>Digital Certificates (X.509)‏ </li></ul></ul><ul><li>Explicit SSL </li></ul><ul><ul><li>Server accepts both encrypted and unencrypted connections </li></ul></ul><ul><li>Implicit SSL </li></ul><ul><ul><li>Server accepts encrypted SSL connections only </li></ul></ul><ul><ul><li>User must connect using SSL, port 990 by default </li></ul></ul>
  • 7. <ul><li>ServerName ftphost.mydomain:21 </li></ul><ul><li>ServerRoot / path / to /server/ $(ServerName) </li></ul><ul><li>ServerAdmin webmaster@ ftphost.mydomain </li></ul><ul><li>DocumentRoot &quot;/ path / to /server/ $(ServerName) /ftpdocs&quot; </li></ul><ul><li><Directory /> </li></ul><ul><li>Options FollowSymLinks </li></ul><ul><li>AllowOverride None </li></ul><ul><li></Directory> </li></ul><ul><li><Directory &quot;/ path / to /server/ $(ServerName) /ftpdocs&quot;> </li></ul><ul><li><Limit MKD RMD STOR DELE RNFR> </li></ul><ul><li>Order deny,allow </li></ul><ul><li>Deny from all </li></ul><ul><li></Limit> </li></ul><ul><li></Directory> </li></ul><ul><li>LoadModule ftp_module / path /modules/mod_ftp.so </li></ul><ul><li>LogFormat &quot;%u [%a] %r&quot; cmd_log </li></ul><ul><li>LogFormat &quot;%{%b %e %H:%M:%S %Y}t %T %a %B %U %M %F %d %W %u %S %Z %Y&quot; trans_log </li></ul>Config Example
  • 8. Config Example continued <ul><li>Listen 21 </li></ul><ul><li><VirtualHost _default_:21> </li></ul><ul><li>DocumentRoot &quot;/ path / to /ftpdocs&quot; </li></ul><ul><li>FTP On </li></ul><ul><li>ErrorLog logs/ftp_error_log </li></ul><ul><li>CustomLog logs/ftp_command_log cmd_log </li></ul><ul><li>CustomLog logs/ftp_transfer_log transfer_log env=do_trans_log </li></ul><ul><li><Directory &quot;/ path / to /ftpdocs&quot;> </li></ul><ul><li><IfModule mod_authz_file.c> </li></ul><ul><li>AuthType Basic </li></ul><ul><li>AuthName &quot;FTP Authentication&quot; </li></ul><ul><li>AuthUserFile &quot;/ path / to /ftp_userfile&quot; </li></ul><ul><li>Require valid-user </li></ul><ul><li></IfModule> </li></ul><ul><li></Directory> </li></ul><ul><li></VirtualHost> </li></ul>
  • 9. Good References <ul><li>http://httpd.apache.org/dev/dist/ </li></ul><ul><li>http://httpd.apache.org/modules/ </li></ul><ul><li>http://wiki.apache.org/httpd/ </li></ul><ul><li>http://en.wikipedia.org/wiki/Ftp_client </li></ul>
  • 10. Contact and Followup <ul><li>http://people.apache.org/~wrowe/ </li></ul><ul><li>[email_address] </li></ul><ul><li>IRC help at irc.freenode.net #apache </li></ul><ul><li>Peer help at users@httpd.apache.org </li></ul>

×