FTP服务概述:
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议
常见FTP服务器:
windows:Serv-U FTP Server,filezilla_server
Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。
vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特点:
它是一个安全、高速、稳定的FTP服务器;
模式: C/S 模式
端口:vim /etc/services
20 (传数据) 21 (传指令)
fsp(File Service Protocol): 文件服务协议。
工作流程(原理):
这里的主动和被动,是相对于的FTP server 端来判断的
如果server 去连接client 开放的端口,说明是主动的,相反,如果client去连接server开放的端口,则是被动的。
安装vsftp服务器端、客户端
[root@localhost110 ~]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
或
yum -y install vsftpd lftp
安装客户端:
[root@localhost63 ~]# yum install -y lftp
lftp
注:从RHEL6开始,系统镜像中默认没有ftp客户端命令。取而代之的是lftp命令
Linux客户端:
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常好一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
配置文件位置:
2.vsftpd 相关文档
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
vim /etc/vsftpd/user_list
如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本
/var/ftp/:默认情况下匿名用户的根目录
启动服务
[root@localhost110 vsftpd]# systemctl start vsftpd
[root@localhost110 vsftpd]# systemctl enable vsftpd
##注意关闭iptables 和selinux
[root@localhost110~]# netstat -antup | grep ftp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 11725/vsftpd
为什么看不到20端口?。
因为没有数据通信。
此服务的使用方法
Linux:
[root@localhost110 vuserconfig]# rpm -vih /mnt/Packages/lftp-4.0.9-1.el6.x86_64.rpm
[root@localhost110 vsftpd]# lftp 192.168.0.63
windows:
通过浏览器访问或 打开文件夹,在地址栏输入地址:ftp://192.168.0.110/
例1:公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用
户自己的目录。
分析:
允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
开启,
anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。
[root@localhost110 vsftpd]# cp vsftpd.conf vsftpd.conf.back
vim /etc/vsftpd/vsftpd.conf #修改以下内容
允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
启动服务:
service vsftpd restart
测试: 不能写
[root@localhost110 vsftpd]# chown ftp.ftp /var/ftp/pub/
然后测试,是可以新建文件夹了,但是不能重命名,不能删除!
[root@localhost110 vsftpd]# vim vsftpd.conf
anon_other_write_enable=YES ##默认没有,需要手动添加下这行
重启服务,即可重命名文件夹。
但是可以删除文件夹了,这个参数对匿名用户来说权限太大,不安全,均衡使用这个参数
注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!
下面我们来一步一步的实现,先修改目录权限,创建一个公司上传用的目录,叫xuegoddata,设置拥有者为ftp 用户所有,目录权限是755
[root@localhost110 vsftpd]# mkdir /var/ftp/xuegoddata
[root@localhost110 vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/
[root@localhost110 vsftpd]# ll -d !$
ll -d /var/ftp/xuegoddata/
drwxr-xr-x 2 ftp root 4096 Mar 9 19:30 /var/ftp/xuegoddata/
然后重新启动服务
[root@localhost110 ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
测试
匿名登录FTP
现在我们匿名上传
现在匿名上传的文件是禁止删除滴~
这样匿名用户的上传就算成功了
注:工作中,匿名用户只是只读访问,写的权限也没有的。