前言
Ftp简称文件传输协议,是专门用来传输文件的,本篇将说明如何建立及配置FTP服务,如何上传和下载文件
一、FTP服务
1.1 什么是FTP
FTP服务是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源,今天就教你用不同类型用户访问FTP服务器
1.2 FTP作用
作用:用于文件的上传和下载。
ftp属于tcp,端口号:20,21.
21:控制层面,用于账户密码验证,权限的验证
20:数据层面,用于文件上传和下载。.
1.3 FTP账户类型
匿名账户:登录名: ftp、anonymous。不验证密码即可登录
系统账户:本身系统已存在的账户、密码作验证。验证方式
虚拟账户:预定 义的 列表账户。(以前系统未创建过的)
1.4 验证方式
1.验证的/etc/passwd和/etc/shadow
2.验证的是用户列表(用户必须是系统创建),相当于白名单.
默认root账户不允许登录。
二、不同用户类型访问服务器
2.1 建立ftp服务器
#任何用户类型访问ftp,服务器都要先安装ftp服务
[ root@server1 ~]# systemctl stop firewalld #关闭防火墙
[ root@server1 ~]# setenforce 0 #关闭核心防护
[ root@server1 ~]# yum -y install vsftpd #安装ftp服务
2.2 匿名账户访问
服务器设置:
一、编辑配置文件:
[ root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
添加:
anon_umask=022 #设置匿名账户的权限为755
anon_other_write_enable=YES #允许匿名账户的其他写权限
修改:
local_enable=NO #不允许本地账户登录
#local_umask=022 #本地账户的权限为755
anon_upload_enable=YES #允许匿名账户上传
anon_mkdir_write_enable=YES #允许匿名账户新建文件或目录
listen=YES #监听IPV4地址的请求
listen_ipv6=NO #不监听IPV6地址的请求
[ root@server1 ~]# systemctl start vsftpd #重启ftp服务
[ root@server1 ~j# grep -v “#"/etc/vsftpd/vsftpd.conf / grep -v“^s #过滤掉#及空行后显示配置文件内容
二、设置权限,创建文件用来测试匿名用户:
[ root@server1 ~]# cd /var/ftp/ pub #进目录创建文件
[ root@server1 pub]# echo "abc123" > a.txt #创建a.txt文件内容abc123
[ root@server1 pub]# echo "bcd123" > b.txt #创建b.txt文件内容bcd123
[ root@server1 ~]# chown -R ftp.ftp /var/ftp/pub #设置文件归属
[ root@server1 ~]# chmod -R 755 /var/ftp/pub #设置文件目录权限
[ root@server1 pub]# ls -lh
客户机设置:
[ root@client2 ~]# systemctl stop firewalld #关闭防火墙
[ root@client2 ~]# yum -y install ftp #安装ftp
[ root@client2 ~]# ftp 20.0.0.10 #连接ftp服务器地址
ftp> cd pub #默认进入的是 /var/ftp/目录下,需进入pub目录才有权限
ftp> ls -lh #查看里面文件
ftp> mkdir 1 # 创建目录1
ftp> put anaconda-ks.cfg #上传文件
ftp> ls -lh #查看
服务器查看:
[ root@server1 pub]# ls -lh
在Window是进行访问ftp服务器
在文件搜索栏输入地址ftp://20.0.0.10 进入 /pub/
可以新建文件夹3,添加文件新建文本文档
在网页上同样可以访问ftp服务器
同样在搜索栏上输入命令ftp://20.0.0.10 进入/pub/
ftp服务器进行查看
[root@server1 pub]# ls -lh
2.3 系统账户访问
服务器建立用户并创建文件
[ root@server1 ~]# useradd lisi
[ root@server1 ~]# passwd lisi
[ root@server1 ~]# useradd zhangsan
[ root@server1 ~]# passwd zhangsan
[ root@server1 ~]# cd / home / zhangsan #进入目录创建文件
[ root@server1 zhangsan]# vi a1.txt
[ root@server1 zhangsan]# cd /home/lisi
[ root@server1 lisi]# vi a2.txt
客户机创建文件
[ root@client2 ~]# touch ttt
[ root@client2 ~]# vi ttt
[ root@client2 ~]# vi tt2
服务器编辑配置文件:
[ root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
修改:
#anonymous_enable=YES #允许匿名账户登录
#anon_upload_enable=YES #允许匿名账户上传
#anon_mkdir_write_enable=YES #允许匿名账户新建文件或目录
#anon_other_write_enable=YES #允许匿名账户的其他写权限
#anon_umask=022 #设置匿名账户的权限为755
chroot_local_user=YES #锁定宿主目录
添加:
allow_writeable_chroot=YES #允许宿主目录的写权限
[ root@server1 ~]# systemctl start vsftpd #重启ftp服务
[ root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$" #过滤掉#及空行后显示配置文件内容
客户机登录上传下载
[ root@client2 ~]# ftp 20.0.0.10
Name (20.0.0.10: root) : zhangsan
ftp> get a1.txt #gat:下载文件
ftp> put ttt #put:上传文件
服务器查看
[ root@server1 ~]# cd / home/zhangsan
[ root@server1 zhangsan]# ls -lh
客户机查看
以上为本地用户的上传和下载
第二部分:基于用户列表,限定用户列表里的用户才可以登录服务器
设置本地用户的可登录用户列表
[ root@server1 ~]# vi /etc/vsftpd/user list #原数据删除
liming #添加liming账户名
服务器编辑配置文件:
[ root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
添加
userlist_deny=NO #只允许用户列表里的用户登录,白名单
[ root@server1 ~]# systemctl start vsftpd #重启ftp服务
客户机登录
[root@client2 ~]# ftp 20.0.0.10
Name (20.0.0.10: root) : lisi
liming登录失败
[root@client2 ~]# ftp 20.0.0.10
Name (20.0.0.10: root) : liming
ftp> get a1.txt #gat:下载文件
ftp> put initial-setup-ks.cfg #put:上传文件
以上为设置用户列表白名单,限定用户登录