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=YES chroot_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/SSL ssl_enable=YES # 强迫客户机在登录时使用TLS allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_ciphers=HIGH rsa_cert_file=/etc/vsftpd/vsftpd.pem 4、FTP模式与数据端口 #设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高 pasv_min_port=64000 pasv_max_port=65535 #允许数据传输时使用PASV模式 pasv_enable=YES
5、别忘了在防火墙中添加对应的端口
三、FileZilla错误提示
错误: GnuTLS 错误 -15: An unexpected TLS packet was received.
chroot_list_file=/etc/vsftpd/chroot_list user_config_dir=/etc/vsftpd/userconf 这两项配置,没有找到文件
错误: 无法建立数据连接: ETIMEDOUT - 连接尝试超时?
vsftpd配置文件有问题
无法访问目录?
有三处地方需要检查
1、首先vsftp运行在pasv模式,也就是被动(Passive)模式,需要配置一下: #vi /etc/vsftpd/vsftpd.conf 增加: pasv_min_port=6000 pasv_max_port=7000 pasv_enable=YES 2、如果运行了防火墙,设置一下: 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 指定侦听IP listen_port=port_value 指定侦听端口,默认21 anonymous_enable=YES 是否允许使用匿名帐户 local_enable=YES 是否允许本地用户登录 nopriv_user=ftp 指定vsftpd服务的运行帐户,不指定时使用ftp write_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=NO ls_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/s local_max_rate 本地用户的最大传输速度,单位是Byts/s download_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)