rpm -qa |grep vsftpd
如果已经安装需要删除重装,使用yum安装的也可以通过yum卸载。
和其他的Liunx程序安装一样,vsftpd也有多种安装方式, yum是最便捷的方式了。
注意: Redhat的yum需要收费, CentOS可以直接用。
安装只需要输入:
yum install -y vsftpd
启动命令:
systemctl start vsftpd
注:systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本,各服务间基于依赖关系进行精密控制。
检视和控制systemd的主要命令是systemctl。
也可以使用如下方式启动和关闭:
#启动
service vsftpd start
#重启
service vsftpd restart
#停止
service vsftpd stop
可以将vsftpd添加到开机启动项:
systemctl enabled vsftpd
vsftpd启动后,可以通过:
ftp host/IP
匿名登录,
匿名登录需要使用确定那个anonymous_enable值是YES, vi打开配置文件 vsftpd.conf:
vi /etc/vsftpd/vsftpd.conf
找到anonymous_enable的值:
anonymous_enable=YES
匿名登录可以使用账号anonymous和ftp登录, 密码不需要输入。
但正式环境基本上不适用匿名登录,而是建立FTP的虚拟机器账号来登录和权限控制。
配置选项说明:
1、 核心设置
local_enable=YES //允许本地用户登录
write_enable=YES //本地用户的写权限
local_umask=022 //使用FTP的本地文件权限,默认为077,一般设置为022
pam_service_name=vsftpd //验证方式
connect_from_port_20=YES //启用FTP数据端口的数据连接
listen=yes // 以独立的FTP服务运行
listen_port=23 //修改连接端口
2、匿名登录设置
anon_upload_enable=YES // 如果允许匿名登录,是否开启匿名上传权限
anon_mkdir_write_enable=YES //如果允许匿名登录,是否允许匿名建立文件夹并在文件夹内上传文件
anon_other_write_enable=yes // 如果允许匿名登录,匿名帐号可以有删除的权限
anon_world_readable_only=no //如果允许匿名登录,匿名的下载权限,匿名为Other,可设置目录/文件属性控制
anon_max_rate=30000 // 如果允许匿名登录,限制匿名用户传输速率,单位bite
3、限制登录
userlist_enable=yes //用userlist来限制用户访问
userlist_deny=no //名单中的人不允许访问
userlist_file=/etc/vsftpd/userlist_deny.chroot //限制名单文件放置的路径
4、限制目录
chroot_local_user=yes //限制所有用户都在家目录
chroot_list_enable=YES //调用限制在家目录的用户名单
chroot_list_file=/etc/vsftpd/chroot_list //限制在家目录的用户名单所在路径
5、日志设置
xferlog_file=/var/log/vsftpd.log //日志文件路径设置
xferlog_std_format=YES // 使用标准的日志格式
6、安全设置
idle_session_timeout=600 //用户空闲超时,单位秒
data_connection_timeout=120 //数据连接空闲超时,单位秒
accept_timeout=60 //将客户端空闲1分钟后断开
local_max_rate=10000 //本地用户传输速率,单位bite
max_clients=100 //FTP的最大连接数
max_per_ip= 3 //每IP的最大连接数
7、被动模式设置
pasv_enable=yes //是否开户被动模式
pasv_min_port=3000 // 被动模式最小端口
pasv_max_port=5000 //#被动模式最大端口
包括vsftpd.conf核心配置文件的配置文件有:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录
一般用于客户端下载文件, 也可以配置上传,但是匿名一般不开发上传。
匿名访问下, 共享给用户的文件放在下面的目录下:
/var/ftp/pub
也可以通过修改配置文件的anon_root来指定其他目录,
匿名访问的一般配置选项如下:
anonymous_enable=YES #允许匿名访问
anon_root= /data/pub #匿名访问的本地实际目录
local_enable=YES
anon_upload_enable=YES # 允许匿名用户上传文件(须将全局的write_enable=YES,默认YES)
anon_mkdir_write_enable=YES #允许匿名用户创建目录
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
上面配置了匿名访问的目录 /data/pub, 但这个目录的权限不能设置成777,这是vsftpd的安全性设置,需要在pub里面再创建一个目录并给777的权限。
配置项一般如下:
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
1.创建用户ftpuser,并指定/home/ftpuser目录
useradd -g root -M -d /home/ftpuser -s /sbin/nologin ftpuser
2.设置用户ftpuser密码
passwd ftpuser
…
可能原因: 运行写的设置未开启
解决方式:修改/etc/vsftpd.conf,将write_enable=YES前面的 “#”去掉, 保存后重启vsftp。
service vsftpd restart