FTP介绍
- 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层, 即应用层, 使用 TCP的20,21端口,20作为数据传输端口,21作为建立连接端口。
FTP两种模式
- 主动模式:别人来连接时,用20端口来传输
- 被动模式:别人连接时,随机开放一个端口,范围为1024到5000之间
FTP的主配置文件
首先下载ftp服务
- yum -y install vsftpd
然后进入主配置文件
vim /etc/vsftpd/vsftpd.conf - anonymous_enable=YES //允许匿名登录
- local_enable=YES //控制是否允许本地用户登录
- anon_upload_enable=YES //允许上传数据
- chroot_local_user=YES //绑定本地的家目录
- allow_writeable_chroot=YES //允许写的权限,一般是手动添加
我们用win10真机去ftplinux机,用匿名用户登录
进入的目录其实是在/var/ftp里面
[root@server ~]# ls /var/ftp/
CentOS_BuildTag EULA images LiveOS pub RPM-GPG-KEY-CentOS-7 TRANS.TBL
EFI GPL isolinux Packages repodata RPM-GPG-KEY-CentOS-Testing-7
我们用zhangsan本地用户登录
此时的家目录是用户的家目录
使用匿名用户进行下载操作
文件直接存在win10用户家目录下
如果需要上传的话,需要开启anon_upload_enable=YES
然后重启服务,将文件上传到家目录下面的一个文件,给777权限,如果直接放到家目录底下,没有满权限的话,不给上传,满权限的话会因为安全问题直接不给连接,所以退求其次在家目录下创建一个目录
[root@server pub]# ll
总用量 0
-rw------- 1 ftp ftp 0 5月 26 21:17 123.txt
drwxr-xr-x 2 root root 6 5月 26 16:14 centos7
用普通用户也能上传文件
[root@server ~]# cd /home/zhangsan/
[root@server zhangsan]# ls
123.txt
[root@server zhangsan]# ll
总用量 0
-rw-r--r-- 1 zhangsan zhangsan 0 5月 26 21:22 123.txt
[root@server zhangsan]#
但是这样普通用户权限会很大
所以我们需要将普通用户绑定在家目录
需要在主配置文件开启chroot_local_user=YES
然后添加一行 allow_writeable_chroot=YES允许写的权限
发现怎么样都改变不了目录
我们发现root用户不能登陆
这时去两个文件里面修改配置
- /etc/vsftpd/ftpusers里面删除root
- /etc/vsftpd/user_list里同样删除root
发现可以登陆
ftpusers优先级更大,先看ftpusers
但是ftp并不安全
用tcpdump命令可以监听ftp并窃取用户名和密码
[root@server ~]# tcpdump -i ens33 -nnX port 21
21:40:35.937253 IP 192.168.3.5.63126 > 192.168.3.1.21: Flags [P.], seq 15:30, ack 47, win 8146, length 15: FTP: USER zhangsan
0x0000: 4500 0037 6334 4000 8006 1036 c0a8 0305 E..7c4@....6....
0x0010: c0a8 0301 f696 0015 cc7b 563b 43c3 613f .........{V;C.a?
0x0020: 5018 1fd2 ccd7 0000 5553 4552 207a 6861 P.......USER.zha
0x0030: 6e67 7361 6e0d 0a ngsan..
21:40:37.638062 IP 192.168.3.5.63126 > 192.168.3.1.21: Flags [P.], seq 30:40, ack 81, win 8112, length 10: FTP: PASS 123
0x0000: 4500 0032 6336 4000 8006 1039 c0a8 0305 E..2c6@....9....
0x0010: c0a8 0301 f696 0015 cc7b 564a 43c3 6161 .........{VJC.aa
0x0020: 5018 1fb0 4722 0000 5041 5353 2031 3233 P...G"..PASS.123
账户密码都是明文显示的,所以并不安全
本地ftp的yum仓库
先清除yum源
用yum clean all
然后进入yum源配置文件中,先将文件备份,然后创建一个ftp.repo
[root@server ~]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
[root@server yum.repos.d]# mkdir bak
[root@server yum.repos.d]# mv * bak/
mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
[root@server yum.repos.d]# ls
bak
[root@server yum.repos.d]# touch ftp.repo
然后编辑ftp.repo
[ftp] //创建源名称
name=centos7
baseurl=ftp://192.168.3.1/ 指定ftp的服务器
enabled=1 启用
gpgcheck=0 不校验
发现能访问
服务器更新索引
在服务器上
[root@server ftp]# createrepo --update /var/ftp/Packages/
将下载的nginx包转到Packages中
然后yum clean all 然后yum makecache
[root@client ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
ftp centos7 4,030
repolist: 4,030
会发现增加了9个
nfs
nfs是网络共享服务,先在nfs服务器上下载服务
[root@client ~]# rpm -q rpcbind
rpcbind-0.2.0-47.el7.x86_64
[root@client ~]# rpm -q nfs
nfs4-acl-tools nfs-utils
[root@client ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.61.el7.x86_64
然后在主配置文件/etc/exports中写
/opt/web 192.168.3.7(rw,sync) /挂载web,挂到客户机上,给读写同步
然后重启服务
先查看共享
[root@client ~]# showmount -e 192.168.3.1
Export list for 192.168.3.1:
/opt/web 192.168.3.7
然后挂载
[root@client ~]# mount -t nfs 192.168.3.1:/opt/web /var/
[root@client ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 17G 4.5G 13G 27% /
devtmpfs 895M 0 895M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs 182M 32K 182M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
192.168.3.1:/opt/web 17G 8.5G 8.6G 50% /var
然后查看是否同步
[root@client ~]# cd /var/
[root@client var]# ls
1