首页 > 代码库 > centos关于vsftpd的配置、配置说明及常见问题

centos关于vsftpd的配置、配置说明及常见问题

一、安装vsftpd

安装
yum install -y vsftpd开机启动chkconfig vsftpd on启动service vsftpd start加入防火墙vi /etc/sysconfig/iptables-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT重启防火墙service iptables restart

二、修改配置文件

1、基础配置

#不允许匿名访问anonymous_enable=NO#允许本地用户登录local_enable=YES#开放本地用户写的权限write_enable=YES#新建目录/文件的权限local_umask=022#匿名用户不允许上传文件anon_upload_enable=NO#匿名用户不允许创建目录anon_mkdir_write_enable=NO#用户进入一个目录后,是否给出静态提示。dirmessage_enable=YES#链接端口connect_from_port_20=YES#日志文件xferlog_file=/var/log/xferlog#日志格式xferlog_std_format=YES#开启ipv4监听listen=YES#开启ipv6监听listen_ipv6=YES#使用pam模块控制,vsftpd文件在/etc/pam.d目录下pam_service_name=vsftpd#此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd查到该用户名在列表中,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚userlist_enable=YES#是否允许tcp_wrappers管理tcp_wrappers=YES

  

2、设置用户访问目录、权限

chroot_local_user=YESchroot_list_enable=YES#文件中的用户不限制目录chroot_list_file=/etc/vsftpd/chroot_list

 

3、ssl密钥的配置

使用命令生成密钥:

openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

修改配置文件

# 启用TLS/SSLssl_enable=YES# 强迫客户机在登录时使用TLSallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_ciphers=HIGHrsa_cert_file=/etc/vsftpd/vsftpd.pem4、FTP模式与数据端口#设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高pasv_min_port=64000pasv_max_port=65535#允许数据传输时使用PASV模式pasv_enable=YES

  

5、别忘了在防火墙中添加对应的端口


三、FileZilla错误提示
错误: GnuTLS 错误 -15: An unexpected TLS packet was received.

chroot_list_file=/etc/vsftpd/chroot_listuser_config_dir=/etc/vsftpd/userconf这两项配置,没有找到文件

 

错误: 无法建立数据连接: ETIMEDOUT - 连接尝试超时?

vsftpd配置文件有问题

  

无法访问目录?

有三处地方需要检查
1、首先vsftp运行在pasv模式,也就是被动(Passive)模式,需要配置一下:#vi /etc/vsftpd/vsftpd.conf增加:pasv_min_port=6000pasv_max_port=7000pasv_enable=YES2、如果运行了防火墙,设置一下:ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:6000:7000 这里的6000:7000对应被动模式的最小到最大端口3、如果服务器是在外网,还需要将上面的最小到最大的端口在防火墙上设置映射到内网

  


四、参数说明

listen_address=ip address指定侦听IPlisten_port=port_value指定侦听端口,默认21anonymous_enable=YES是否允许使用匿名帐户local_enable=YES是否允许本地用户登录nopriv_user=ftp指定vsftpd服务的运行帐户,不指定时使用ftpwrite_enable=YES是否允许写入anon_upload_enable=YES匿名用户是否可上传文件anon_mkdir_write_enable=YES匿名用户是否建立目录dirmessage_enable=YES进入每个目录是显示欢迎信息,在每个目录下建立.message文件在里面写欢迎信息xferlog_enable=YES上传/下载文件时记录日志connect_from_port_20=YES是否使用20端口传输数据(是否使用主动模式)chown_uploads=YES、chown_username=whoever修改匿名用户上传文件的拥有者xferlog_file=/var/log/vsftpd.log日志文件xferlog_std_format=YES使用标准文件日志idle_session_timeout=600会话超时,客户端连接到ftp但未操作data_connection_timeout=120数据传输超时async_abor_enable=YES是否允许客户端使用sync等命令ascii_upload_enable=YES、ascii_download_enable=YES是否允许上传/下载二进制文件chroot_local_user=YES限制所有的本地用户在自家目录chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list指定不能离开家目录的用户,将用户名一个一行写在/etc/vsftpd/chroot_list文件里,使用此方法时必须chroot_local_user=NOls_recurse_enable=YES是否允许使用ls -R等命令listen=YES开启ipv4监听listen_ipv6=YES开启ipv6监听pam_service_name=vsftpd使用pam模块控制,vsftpd文件在/etc/pam.d目录下userlist_enable=YES此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd查到该用户名在列表中,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚userlist_deny=YES决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入密码的提示。NO,只允许在文件中的用户登录FTP服务器tcp_wrappers=YES是否允许tcp_wrappers管理local_root=/home/ftp所有用户的根目录,,对匿名用户无效anon_max_rate匿名用户的最大传输速度,单位是Byts/slocal_max_rate本地用户的最大传输速度,单位是Byts/sdownload_enable= YES是否允许下载vsftpd如何设置pasv模式:pasv_enable=yes (Default: YES) 设置是否允许pasv模式pasv_promiscuous=no (Default: NO) 是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用)pasv_max_port=10240 (Default: 0 (use any port)) pasv使用的最大端口pasv_min_port=1024 (Default: 0 (use any port)) pasv使用的最小端口pasv_address (Default: (none - the address is taken from the incoming connected socket)) pasv模式中服务器传回的ip地址

五、另外推荐一篇文章:史上最详细的vsftpd配置文件讲解(http://os.51cto.com/art/201008/221842.htm)

centos关于vsftpd的配置、配置说明及常见问题