vsftpd是非常安全的ftp服务器程序,在开发linux应用程序中它是一个非常好的工具。
安装Linux系统时一般已经安装,但需要配置起来作为与开发板进行ftp文件传输的后台服务
器。通过命令可以看到系统中是否已经安装vsftpd服务器:
#rpm -q vsftpd
vsftpd-2.0.4-1.2
如果已经安装,则会显示其版本;否则需要重新安装。Vsftpd的通用配置先项及其意义如下:
用户控制
anonymous_enable=NO 禁用匿名用户
no_anon_password=YES 需要密码
anon_root=/var/ftp 匿名用户的默认主目录
local_enable=NO 禁用本地用户
local_root=webdisk 本地用户的主目录(相对路径是相对于用户的家目录,绝对
路径是所有用户都只能登录到这个目录下比如:/localftp)
guest_enable=NO 禁用gust用户
ftp_username=ftp 匿名用户的用户名(默认还有anonymous可使用)
权限控制
write_enable=YES 本地用户可写
local_umask=022 上传文件的umask
file_open_mode=0666 使用文件的方式
anon_upload_enable=NO 匿名用户不可以上传
anon_mkdir_write_enable=NO 匿名用户不可以建目录等写操作
anon_other_write_enable=NO 匿名用户不可以做其他的写操作
anon_world_readable_only=YES 匿名用户可以读文件
ascii_upload_enable=NO 不使用ascii上传文件
ascii_download_enable=NO 不使用ascii下载文件
secure_chroot_dir=/usr/share/empty 默认值
超时控制
idle_session_timeout=600 空闲超时 600 秒
data_connection_timeout=120 传输超时 120 秒
accept_timeout=60 pasv模式等待时间 60 秒
connect_timeout=60 port模式等待时间 60 秒
服务控制
xferlog_enable=YES 启动日志功能
xferlog_std_format=YES 使用标准日志格式
xferlog_file=/var/log/vsftpd.log 日志默认的位置
pasv_enable=YES 启用被动模式
#port_enable=YES 启用主动模式
#注意此处pasv和port只能写一个,不能一个YES,另一个NO,要想让另一个不起作用,只能
用#注释掉,否则会出错。
tcp_wrappers=YES 启用tcp_wrappers功能
nopriv_user=nobody 最低权限用户
listen=YES 使用standalone 模式(推荐的)
显示信息
ftpd_banner=welcome to ftp. 登录时的欢迎信息
dirmessage_enable=YES 启动切换目录时提示目录信息的功能
message_file=.message 目录提示信息的内容文件
文件权限设置
chroot_list_enable=YES 启动用户目录限制功能
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 此文件中的用户不能改变到其他外
层目录中。
userlist_enable=YES 启动用户限制功能
userlist_deny=YES userlist文件中的用户禁止登录, NO的话则只有userlist中用户
可以登录
userlist_file=/etc/vsftpd/vsftpd.user_list 禁止登录用户列表文件名和位置
(可自定义)
user_config_dir=/etc/vsftpd/userconf/ 对个别用户特殊设置的配置文件的
目录(在此目录下建立对应“用户名”的文件,文件里写
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
max_clients=100 最大连接数
max_per_ip=5 每个ip最大连接数
connect_from_port_20=YES 启用 20 端口传输数据
#listen_address=192.168.0.2 指定监听的ip地址,如果你有多个ip的话
listen_port=21 监听的端口号
ftp_data_port=20 数据传输端口号
pasv_max_port=40000 被动模式的端口号的上限(0 为不限)
pasv_min_port=30000 被动模式的端口号的下限(0 为不限)
数据传输速度
anon_max_rate=51200 匿名用户最大传输率
local_max_rate=5120000 本地用户最大传输率
实际上,对于一个仅用于开发系统的ftp服务器,只需要基本功能。大多数选项可以用
vsftpd的缺省值。配置一个需要能匿名登录vsftp server,只允许下载公开的内容,不允许
匿名用户上传和和其他操作的基本ftp服务器的实际配置文件如下
(/etc/vsftpd/vsftod.conf):
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES #启动日志功能
connect_from_port_20=YES #启用 20 端口传输数据
xferlog_std_format=YES #使用标准日志格式
修改配置文件后,可以重新启动服务来测试一下。在本机上登录本机ftp服务器(假设本
机IP为 192.168.1.103):
#ftp 192.168.1.103
Connected to 192.168.1.103.
220 (vsFTPd 2.0.4)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.103:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
Ftp>
上面是用匿名(anonymous)登录,随便输入密码后的登录状态。