FTP简介
FTP是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。目前在Linux上流行的FTP服务端软件有ProFTPd, vsftpd ,wu-FTPd等。
vsftpd
- vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”(很安全)的缩写,它的最大优点就是安全。
VSFTP的优点
- 体积小:
151K May 9 2012 vsftpd-2.2.2-11.el6.x86_64.rpm- 可定制强:
可配置各种应用类型,匿名、虚拟、独立等。- 效率高:
在百兆网络里经过测试可达80多Mbps的传输速率。- 安全性好:
安全选项比较多,且自身安全性较好。
FTP协议是C/S结构
用户通过一个支持ftp协议的客户端程序连接到远程主机的ftp服务器程序;
用户通过客户端程序向服务器程序发出命令,
服务器程序执行用户所发出的命令,并将结果返回给客户机。
大多数的TCP应用程序使用单个连接,而在FTP会话中存在两个独立的TCP连接
- 一个控制连接(传送ftp命令及命令的响应,要求延迟时间小)
- 一个数据连接(传送用户的数据,要求吞吐量大)
vsftpd服务器配置
vsftpd的安装
yum install vsftpd
或rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm
vsftpd的重要文件和目录
- /etc/rc.d/init.d/vsftpd 启动脚本
- /etc/vsftpd/ftpusers 配置文件
- /etc/vsftpd/user_list 配置文件
- /etc/vsftpd/vsftpd.conf 主配置文件
- /usr/sbin/vsftpd 守候进程
- /usr/share/doc/vsftpd-1.2.1 文档目录
- /var/ftp 匿名FTP目录
参数说明
/etc/vsftpd/vsftpd.conf
- anonymous_enable=yes (允许匿名登陆)
- dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
- local_umask=022 (FTP上本地的文件权限,默认是777)
- connect_form_port_20=yes (启用FTP数据端口的数据连接)
- xferlog_enable=yes (激活上传和下传的日志)
- xferlog_std_format=yes (使用标准的日志格式)
- ftpd_banner=XXXXX (欢迎信息)
- pam_service_name=vsftpd (验证方式)
- listen=yes (独立的vsftpd服务器)
- anon_upload_enable=yes (开放上传权限)
- anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
- write_enable=yes (开放本地用户写的权限)
- anon_other_write_enable=yes (匿名帐号可以有删除的权限)
- anon_world_readable_only=no (放开匿名用户浏览权限)
- ascii_upload_enable=yes (启用上传的ASCII传输方式)
- ascii_download_enable=yes (启用下载的ASCII传输方式)
- banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息文件)
- ldle_session_timeout=600(秒) (用户会话空闲后10分钟)
- data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
- accept_timeout=60(秒) (将客户端空闲1分钟后断)
- connect_timeout=60(秒) (中断1分钟后又重新连接)
- local_max_rate=50000(bite) (本地用户传输率50K)
- anon_max_rate=30000(bite) (匿名用户传输率30K)
- pasv_min_port=50000 (将客户端的数据连接端口改在
- pasv_max_port=60000 50000—60000之间)
- max_clients=200 (FTP的最大连接数)
- max_per_ip=4 (每IP的最大连接数)
- listen_port=5555 (从5555端口进行数据连接)
- local_enble=yes (本地帐户能够登陆)
- write_enable=no (本地帐户登陆后无权删除和修改文件)
- chroot_local_user=yes (本地所有帐户都只能在自家目录)
- chroot_list_enable=yes (文件中的名单可以调用)
- chroot_list_file=/任意指定的路径/vsftpd.chroot_list (前提是chroot_local_user=no)
- userlist_enable=yes (在指定的文件中的用户不可以访问)
- userlist_deny=yes
- userlist_file=/指定的路径/vsftpd.user_list
- banner_fail=/路径/文件名 (连接失败时显示文件中的内容)
- listen_address=10.2.2.2 (将虚拟服务绑定到某端口)
- local_root=/var/ftp #本地用户login后所在目录
- anon_root =/var/ftp #匿名用户login后所在目录