Linux的FTP安装、使用和配置(FTP客户端管理工具)
文章目录
- 一、FTP服务介绍
- 1. 什么是FTP服务
- 2. FTP服务的客户端工具
- 3. FTP的两种运行模式
- 1)主动模式
- 2)被动模式
- 3)为什么默认是被动模式
- 二、搭建FTP服务
- 1. 关闭防火墙和selinux
- 2. 安装软件
- 3. 了解FTP软件配置文件
- 三、FTP使用
- 1. 任务背景
- 2. 任务要求
- 3. 配置过程
- 1)创建客服账号
- 2)不允许匿名用户访问
- 3)指定账号访问的目录
- 4)限定kefu/123只能在/data/kefu目录下活动
- 5)解决无法上传
- 6)禁锢目录
- 四、Linux下ftp客户端管理工具
- 1. 安装ftp和lftp
- 2. ftp工具
- 1) 解决ftp工具登录报错
- 2)ftp客户端工具常用命令
- 3. lftp工具(批量操作)
- lftp常用命令
- 五、FTP控制
- 1. FTP访问对象控制(黑名单)
- 2. FTP 网络访问控制
- 1)限制IP地址
- 2)如何判断某个服务是否支持tcp_wrappers
- 3)显示FTP流量
- 4)使用第三方平台视频
一、FTP服务介绍
1. 什么是FTP服务
FTP(File Transfer Protocol)是一种应用非常广泛并且古老的一个互联网文件传输协议
- FTP主要用户互联网中文件的双向传输(上传/下载)、文的共享
- 跨品台(Linux、Windows、MAC)
- FTP属于C/S架构,拥有客户端和服务器,使用TCP作为底层传输协议,提供可靠的数据传输
- FTP的默认端口
21
(命令端口)、20
(数据端口,主动模式下) ,FTP 默认为被动模式 - FTP软件全称为vsftpd
vsftpd => vs(very secure ftp daemon)
vs非常安全的ftp守护进程
2. FTP服务的客户端工具
- Linux:ftp、lftp(客户端程序)
- Windows:Xftp、Chrome、Firefox
- lftp和ftp工具区别:
- lftp:默认是以匿名用户访问
- ftp:默认是以用户名+密码方式访问
- lftp可以批量并且下载目录
3. FTP的两种运行模式
在FTP服务中,其一共拥有两种模式(主动模式+被动模式)
注意:这个主动和被动是站在FTP服务器端来看的
如果是FTP服务器主动连接客户端就是主动模式
如果是客户端主动连接FTP服务端就是被动模式
FTP模式是被动模式
1)主动模式
- 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求
- 服务端的
21
号命令端口响应客户端的随机命令端口 - 服务端的
20
号端口主动请求连接客户端的随机数据端口 - 客户的随机数据端口进行确认
2)被动模式
- 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的
21
号端口发起请求 - 服务端的
21
号命令端口响应客户端的随机命令端口 - 客户端主动连接服务器打开的大于1023的随机数据端口
- 服务端进行确认
3)为什么默认是被动模式
因为如果是主动模式可能会遇到客户端的防火墙拦截的可能,但如果是客户端主动发起连接就不会遇到这种情况。
二、搭建FTP服务
1. 关闭防火墙和selinux
关闭防火墙命令:systemctl stop firewalld
关闭防火墙开机自启:systemctl disable firewalld
关闭selinux:setenforce 0
关闭selinux开机自启:vim /etc/selinux/config
把SELINUX=disabled
2. 安装软件
如果没网挂载光盘。
命令:mount /dev/sr0 /mnt
清除缓存:yum clean all
重新建立缓存:yum makecache
第一步安装
- 安装命令:
yum -y install vsftpd
第二步启动ftp服务并添加到开机启动项中
启动:systemctl start vsftpd
设置开机自启:systemctl enable vsftpd
最后通过浏览器输入本机ip测试
查看本机Ip:ifconfig
使用FTP
软件测试
3. 了解FTP软件配置文件
通过命令:rpm -ql vsftpd
,查看安装vsftpd
产生了哪写文件
/etc/vsftpd #配置文件的目录
/etc/vsftpd/ftpusers #用户列表文件,黑名单
/etc/vsftpd/user_list #用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf #配置文件(主配置文件)
/var/ftp #匿名用户的默认数据根目录
/var/ftp/pub #匿名用户的扩展数据目录
/usr/sbin/vsftpd #程序本身(二进制的命令)
查看配置文件:过率掉以#开头的内容
命令:grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #支持匿名用户访问
local_enable=YES #支持非匿名用户,普通账号登录,默认进入到自己家目录
write_enable=YES #是否支持写入
local_umask=022 #反掩码 file:644 rw- r-- r-- dir:755
dirmessage_enable=YES #启用消息功能
xferlog_enable=YES #开启或启用xferlog日志
connect_from_port_20=YES #支持主动模式(默认被动模式)
xferlog_std_format=YES #xferlog日志格式
listen=NO #ftp服务独立模式下的监听
listen_ipv6=YES #支持ipv4和ipv6pam_service_name=vsftpd #指定认证文件
userlist_enable=YES #启用用户列表
tcp_wrappers=YES #支持tcp_wrappers功能(FTP限速操作)
三、FTP使用
1. 任务背景
某创业公司刚刚起步,随着业务量的增多,咨询和投诉的用户也越来越多,公司的客服部门由原来的2个增加到5个。客服部门平时需要处理大量的用户反馈,不管是邮件,还是QQ,还是电话,客服人员都会针对每一次的用户反馈做详细的记录 ,但是由于客观原因,客服人员没有成熟稳定的客户服务系统,所以希望运维部门能够协助搭建一个文件共享服务来管理这些文档,并且随时跟踪客户的反馈情况。
2. 任务要求
- 客服人员必须使用用户名密码(kefu/123456)的方式登录服务器来下载相应文档
- 不允许匿名用户访问
- 客服部门的相关文档保存在指定的目录里/data/kefu local_root=/data/kefu
- 客服用户使用用户kefu/123登录后就只能在默认的==/data/kefu目录里活动==
3. 配置过程
1)创建客服账号
命令:useradd kefu
设置密码:echo 123456 | passwd --stdin kefu
2)不允许匿名用户访问
修改配置文件
vim /etc/vsftpd/vsftpd.conf
修改12行的配置文件
anonymous_enable=NO
重启vsftpd
服务
systemctl restart vsftpd
关闭匿名用户登录后
3)指定账号访问的目录
创建/data/kefu
目录
命令:mkdir -p /data/keft
修改FTP配置文件
命令:vim /etc/vsftpd/vsftpd.conf
在17行添加
local_root=/data/kefu
重启服务:systemctl restart vsftpd
在XFTP上测试连接,默认就是进入/data/kefu
目录
4)限定kefu/123只能在/data/kefu目录下活动
为了保证安全,只能运行kefu用户在/data/kefu目录下活动
禁锢kefu用户只能在/data/kefu
目录下
修改/etc/vsftpd/vsftpd.conf
配置文件
命令:vim /etc/vsftpd/vsftpd.conf
在第18行添加
chroot_local_user=YES
禁锢在/data/kefu
目录
5)解决无法上传
之所以无法上传,主要原因在于kefu这个账号对于/data/kefu文件夹没有w写权限,因为这个目录是root 创建的。
通过命令:getfacl [目录]
查看当前目录的ACL 权限
解决办法:用户ACL给kefu用户单独设置写权限
命令:setfacl -R -m u:kefu:rwx /data/kefu
6)禁锢目录
让所有用户只能在固定目录活动
禁锢所有用户修改配置文件:/etc/vsftpd/vsftpd.conf
添加:chroot_local_user=YES
给某一些用户开同非禁锢权限
修改配置文件
105行 chroot_list_enable=YES
开启用户列表文件
107行chroot_list_file=/etc/vsftpd/chroot_list
指定用户列表文件
比如让hhy
这个用户不会被禁锢在指定目录
命令:echo hhy >> /etc/vsftpd/chroot_list
重启服务:systemctl restart vsftpd
四、Linux下ftp客户端管理工具
1. 安装ftp和lftp
ftp
和lftp
都是Linux下ftp的客户端管理工具
安装命令:yum -y install ftp lftp
- ftp一般用来上传下载单个或者多个文件
- lftp一般用于批量上传或下载文件
2. ftp工具
命令:ftp [目标主机ip]
注意:目标主机要安装vsftpd
服务
1) 解决ftp工具登录报错
原因是目录没有写入权限
解决方案:修改/etc/vsftpd/vsftpd.conf
配置文件
在19行添加:allow_writeable_chroot=YES
2)ftp客户端工具常用命令
通过help
可以查看有哪些命令
ls
:和linux上的ls命令类似Ctrl+Shift + L
:清屏put
:使用put [本地文件路径+名称] 上传
get
:使用get [远程文件路径+名称] 下载
mput
:批量上传多个文件:mput 文件名1 文件名2
mget
:批量获取多个文件:mget 文件名1 文件名2
prompt
:屏蔽批量输出信息,批量上传下载文件就不需要一直回车确认了
quit
:退出ftp
3. lftp工具(批量操作)
使用命令:lftp [用户名]@目标主机ip
lftp常用命令
通过 help
获取命令帮助
获取某个命令的用法:help 命令
常用命令:mirror
示例1:批量上传(把tmp文件夹上传到FTP服务器上)
命令:mirror -R tmp
示例2:批量下载(把整个FTP目录下载到本地)
命令:mirror ./
五、FTP控制
1. FTP访问对象控制(黑名单)
在 /etc/vsftpd/
目录下有这么两个文件
ftpusers
:黑名单user_list
:默认是黑名单(可以改成白名单)
默认情况下,root账号是不能登录FTP服务器的。**因为root账号在/etc/vsftpd/ftpusers
黑名单里
注意:这个两个黑名单是同时起作用的,只有把这个两个名单里的用户同时删除才能登录
示例2:ftpusers
和 user_list
黑名单不同之处
ftpusers:被禁用,可以输入密码,返回530
[root@localhost ~]# ftp 192.168.44.122
Connected to 192.168.44.122 (192.168.44.122).
220 (vsFTPd 3.0.2)
Name (192.168.44.122:root): kefu
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp>
user_list:默认情况下user_list文件也是黑名单,如果在该文件里直接拒绝,不给输入密码的机会。
[root@localhost ~]# ftp 192.168.44.122
Connected to 192.168.44.122 (192.168.44.122).
220 (vsFTPd 3.0.2)
Name (192.168.44.122:root): kefu
530 Permission denied.
Login failed.
ftp>
示例3:user_list可以从黑名单变成白名单(允许某个用户登录FTP系统服务器)
user_list
如果要变成白名单,需要在/etc/vsftpd/vsftpd.conf
配置文件里增加
userlist_deny=NO
注意:如果user_list
被设置为白名单,那必须在该文件里 的用户才能访问ftp服务
总结
- 用户在
ftpusers
文件中,那么用户不能访问ftp服务器 - 用户在
user_list
文件中,如果该文件是白名单,那么只在该文件中的用户可以访问ftp服务 - 如果
user_list
文件是白名单,用户即在ftpusers
中又在user_list
中,那么ftpusers
拒绝优先
2. FTP 网络访问控制
/etc/hosts.allow
:允许访问网段的配置文件
/etc/hosts.deny
:拒绝访问网段的配置文件
TP必须支持tcp_wrappers
通过命令:tail -1 /etc/vsftpd/vsftpd.conf
可以查看ftp的配置文件,是支持tcp_wrappers
[root@localhost vsftpd]# tail -1 /etc/vsftpd/vsftpd.conf
tcp_wrappers=YES
[root@localhost vsftpd]#
1)限制IP地址
限制ip或者ip网段访问示例
修改/etc/hosts.deny
配置文件
添加对应配置文件:
vsftpd:all 拒绝所有主机连接ftp
vsftpd:all EXCEPT 192.168.44.122 拒绝所有ip ,除了192.168.44.122
vsftpd:192.168.44.155 拒绝单个ip访问
vsftpd:192.168.44.155:allow 允许192.168.44.155访问,类似/etc/hosts.allow里增加vsftpd:192.168.44.155
拒绝某个网段
vsftpd:192.168.44.122/255.255.255.0 拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.44.122 拒绝某个网段,但是除了192.168.44.122地址
注意:子网掩码不支持192.168.44.122/24这种写法
还可以禁用sshd服务的某个ip
vim /etc/hosts.deny
vsftpd,sshd:192.168.44.155
代表禁止:192.168.44.155这个ip 连接这个两个服务
2)如何判断某个服务是否支持tcp_wrappers
命令: ldd命令 +二进制程序,查询某个软件包含哪些模块
示例:查询vsftpd与sshd是否支持tcp_wrappers
[root@localhost vsftpd]# ldd /usr/sbin/sshd | grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fc5e4160000)
[root@localhost vsftpd]# ldd /usr/sbin/vsftpd | grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007ff21c4da000)
[root@localhost vsftpd]#
3)显示FTP流量
修改配置文件
vim /etc/vsftpd/vsftpd.conf
在配置文件中添加一行
local_max_rate=0
# 0代码不限速
# local_max_rate以字节为单位
4)使用第三方平台视频
- 在linux中安装httpd
命令:yum -y install httpd
- 启动httpd
命令:systemctl start httpd
\ - :在/var/www/html项目目录中创建一个demo.html文件
把下面内容写入demo.html中
<iframe height=498 width=510 src='https://player.youku.com/embed/XNTg4NjMwNTUwNA==' frameborder=0 'allowfullscreen'></iframe>
Linux的FTP安装、使用和配置(FTP客户端管理工具)相关推荐
- windows配置gitlab秘钥并测试_你了解多少Linux系统GitLab安装与环境配置?
Linux系统GitLab安装与环境配置 注意:虚拟机的内存至少2G以上 一. 从GitLab官网获取安装方法和步骤: https://about.gitlab.com/installation/#c ...
- Linux 环境下安装 GitLab 与配置
什么是 GitLab? GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务. GitLab的功能特点 提供了管理,计划,创建,验证,打 ...
- Linux环境下安装tomcat并配置开机自启
Linux环境下安装tomcat并配置开机自启 1. 将tomcat压缩包复制到Linux中,(这里复制到usr/local/tomcat目录下). 2. 使用tar zxvf apache-tomc ...
- Linux jq 、vim以及LInux集群安装miniconda并配置虚拟环境(笔记)
https://github.com/QInzhengk/Math-Model-and-Machine-Learning Linux jq .vim以及LInux集群安装miniconda并配置虚拟环 ...
- 基于Linux的Spark安装与环境配置
文章目录 基于Linux的Spark安装与环境配置 1.Hadoop测试 1.1 启动hadoop 1.2 再次启动hadoop 1.3 查看是否成功 2.Scala安装与配置 2.1 下载scala ...
- Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos
Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos 前言 一.Docker中安装配置Nacos 安装Docker 拉取Nacos镜像 启动 ...
- Linux 利用 yum 安装jdk并配置环境变量
Linux 利用 yum 安装jdk并配置环境变量 清除已有java环境 搜索yum可以安装的版本 yum安装jdk 配置环境变量 当前用户使用: 全局用户使用: 验证安装 清除已有java环境 命令 ...
- windows 下安装Chocolatey(强大的软件包管理工具)
在 Linux 下,大家喜欢用 apt-get 来安装应用程序,如今在 windows 下,大家可以使用 Chocolatey 来快速下载搭建一个开发环境. Chocolatey 的哲学就是完全用命令 ...
- Linux Ubuntu20.04安装及环境配置细节分享
目录 1.Ubuntu和VMware虚拟机官方下载 2.在英文环境下配置中文拼音输入法 3.火狐浏览器看不了视频问题 4.配置代码编辑环境 5.隐藏桌面垃圾桶图标 6.关于网络问题个人的一些建议 因为 ...
- Linux服务器Ldap安装及ldaps配置完整流程
参考文章:presto中ldaps配置完整流程 - letsfly - 博客园 无法以ldaps模式连接到openldap服务器-Java 学习之路 一.keytool生成ssl协议需要的相关文件 1 ...
最新文章
- Eclipse和intellij idea 快捷键对比
- 【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 )
- 1019 数字黑洞 (20 分)java
- java IO之 File类+字节流 (输入输出 缓冲流 异常处理)
- [翻译]现代Linux系统上的栈溢出攻击【转】
- 全民超神VS王者荣耀:从角色养成到账户养成
- 于.net开发平台项目案例集锦
- MUI 图片上传、预览、删除重选等等实现
- HarmonyOS分布式软总线研究,【钟洪发老师公开课】实战学习HarmonyOS重点之分布式软总线...
- Qt使用QPainter绘图的缩放问题
- 新风口?人造肉第一股表现强劲 股价累计上涨近600%
- vue3开启eslint之后报错:error Parsing error: ‘>‘ expected
- C语言程序设计题(函数题中15道)
- 短视频软件开发,抖音源码,美颜SDK,提供开放API接口
- python123随机密码生成、生成三组n位密码_生成随机密码
- 相机光学(五)——对运动物体的曝光时间的计算
- 正确设置 pip,避免There was a problem confirming the ssl certificate问题
- 【环境配置】自定义Linux欢迎界面/etc/motd文件
- 2018香港银行卡开户、购汇、跨境汇款【全攻略】
- python毕业设计 招聘大数据分析可视化