windows中使用的IIS可以搭建ftp的平台,但是非常的不稳定,Serv-U等软件可以完成ftp的共享,一般来说,只要需要ftp的服务,都是基于Linux,Linux中的ftp的服务是VSFtp(Very Security FTP)
1、FTP的安装
yum install vsftpd
systemctl status vsftpd
systemctl enable vsftpd –>重启(reboot -h now)之后开启vsftpd
systemctl start vsftpd –>启动vsftp
2、ftp的配置
[root@localhost vsftpd]# more bak_conf
anonymous_enable=YES ##匿名登录
local_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
##以下配置是将用户锁定在宿主目录
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
##在vsftp的2.5之后如果打开chroot_list,这不具备写权限,需要通过以下命令打开写权限
allow_writeable_chroot=YES
chroot_list_file=/etc/vsftpd/chroot_list##在chroot_list中的用户不会锁定在宿主目录
3、匿名用户登录
匿名用户登录成功之后会默认访问/var/ftp 文件夹, 登录成功之后在window的命令提示符中可以通过一些ftp的命令来操作ftp
ftp 192.168.213.122 ##完成ftp 的登录操作,可以使用anonymous来匿名登录,没有密码
##登录成功之后使用dir可以查询ftp中的内容,使用!dir查询本地文件的内容
##使用get或者mget来下载一个文件,mget可以基于通配符的方式下载,get只能下载一个文件
mget hello* ##会获取所有的hello开头的文件
##使用put可以把文件上传到服务器
put jude.log ##上传jude.log到服务器
##使用bye退出ftp
bye
4、其他用户登录问题
为了安全性,不建议开启匿名用户登录,使用本地用户登录,首先要关闭匿名用户
anonymous_enable=NO
关闭用户之后,在/etc/vsftpd的文件夹中有两个非常重要的文件,ftpusers和user_list
ftpusers文件只要把用户写在里面,就一定不能登录
user_list:该文件中的用户,如果在配置文件里面设置了userlist_deny=NO表示只有该文件中的用户可以登录,如果设置为YES(默认情况)说明,该文件中的用户不能登录
此时只要是新建的任意的一个用户,都可以使用ftp,如果希望只有特殊的用户可以登录,那需要在vsftpd.conf中设置userlist_deny=NO,之后把需要登录的用户放到user_list中的,此时如果ftpusers中也有这个用户,也无法登陆。
验证的过程,首先验证user_list,如果user_list通过了,会让输入密码,之后会使用ftpusers来进行二次验证,如果两次都通过,就允许ftp登录。为了效率,建议在user_list中直接来隔离不同的用户。