初级FTP搭建
一:了解FTP基本知识
Vsftpd
1.什么是FTP?
File Transfer Protocol 基于C/S结构的文件传输协议
2.使用什么协议?什么端口?
TCP 21 建立命令链路
TCP 20 在主动传输模式下服务器使用20端口向客户端建立数据链路
3.FTP工作原理
--------- Client Server--------------
1031 21
1032 20
①客户端向服务器发出连接请求,同时客户端系统动态地打开一个大于1024的端口等候服务器连接(比如1031端口)
②若FTP服务器在端口21侦听到该请求,则会在客户端1031端口和服务器的21端口之间建立一个FTP会话连接
③当需要传输数据时,FTP客户端动态地打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭
④当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放
4.FTP工作模式
主动传输模式(Active FTP):
在主动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,然后开放N+1号端口(1026)进行监听,并向服务器发送PORT 1026命令。服务器接收到命令后,会用其本地的FTP数据端口(通常20)来连接客户端指定的端口1026,进行数据传输。
被动传输模式(Passive FTP):
在被动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,同时会开启N+1号端口(1026),然后向服务器发送PASV 命令。通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024端口(1521)进行监听,然后用PORT 命令通知客户端,自己的数据端口是1521.客户端收到命令后会通过1026号端口连接服务器的1521,然后在两个端口之间进行数据传输。
5.FTP传输模式
二进制模式:图片和执行文件压缩文件
文本模式:CGI脚本和普通HTML文件
目前服务器上面和FTP客户端软件能够自动识别文件类型并选择相应的传输方式
6.FTP账户类型
匿名用户:ftp 或 anonymous
本地用户:Linux服务器本机的系统用户账号
虚拟用户:账号信息存放在独立的文件或数据库内
7.默认安装vsftpd特点
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载
ftp和lftp命令
get 下载
put 上传
mget 下载多个,支持通配符
mput 上传多个,支持通配符
!cmd 执行外面命令
lcd 切换外面路径
9.访问FTP地址表示方法
用户验证访问
ftp://user:pass@192.168.4.5
ftp://user:pass@192.168.4.5/path/to/file
URL,统一资源定位器(网址)
Unified Resource Locator
协议://用户名:密码@服务器地址:端口/目录路径/文件名
10.RHEL6自带的ftp软件包?主配置文件是?服务启动脚本?
vsftpd
/etc/vsftpd/vsftpd.conf
重点字段意义:anonymous_enable=YES #开启匿名共享
local_enable=YES #开启本地账户共享
write_enable=YES #本地账户是否可写
anon_upload_enable=YES #匿名用户是否可以上传文件
anon_mkdir_write_enable=YES #匿名可创建目录
anon_other_write_enable=YES #匿名删除,重命名
chroot_local_user #禁锢本地账户
anon_root=/abc #定义匿名用户根目录为/abc目录
anon_umask=022 #定义匿名用户上传的掩码值
11.配置文件:/etc/vsftpd/vsftpd.conf(主配置)
/etc/vsftpd/ftpusers(黑名单)
/etc/vsftpd/user_list(黑/白名单)
在字段userlist_enable=YES或NO //是否开启user_list文件
在字段userlist_deny=NO时user_list是白名单
12.其他常用选项
listen_port=端口号
listen_address=IP地址
14.并发连接和速度:
max_clients=最大并发连接数
max_per_ip=同一IP地址的最大并发连接数
anon_max_rate=匿名用户访问速度(字节/秒)
local_max_rate=本地用户访问速度(字节/秒)
安装 FTP
1.安装软件包
关掉防火墙和selinux,不然需要提前配好
yum -y install vsftpd
2.启动服务
service vsftpd restart
chkconfig vsftpd on
netstat -anptu | grep vsftpd
3.创建测试文件
ls -l /etc/* > /var/ftp/pub/anon.txt
[root@svr5 ~]# useradd lisi
[root@svr5 ~]# echo 123456 | passwd --stdin lisi
[root@svr5 ~]# ls -l /etc/* > ~lisi/lisi.txt
4.验证:(客户端测试)
浏览器测试:
ftp://192.168.4.5/
ftp://lisi:123456@192.168.4.5/ 用户密码登录方式
命令行测试:
[root@pc205 ~]# yum -y install ftp lftp
[root@pc205 ~]# ftp 192.168.4.5
ftp> cd pub
ftp> ls
ftp> get anon.txt
ftp> !ls
ftp> put install.log
ftp> quit
[root@pc205 ~]# lftp 192.168.4.5
lftp 192.168.4.5:~> user lisi
口令:
[root@pc205 ~]# yum -y install wget
[root@pc205 ~]# wget ftp://lisi:123456@192.168.4.5/lisi.txt 下载文件测试
实验总结:
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载 用户家目录
实验三:
禁锢本地用户在自己家目录
实验步骤:
先在客户端测试默认结果
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
...
ftp> pwd
257 "/home/lisi"
在服务器端配置
[root@svr5 ~]# cd /etc/vsftpd/
[root@svr5 vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@svr5 vsftpd]# vim vsftpd.conf
...
96 chroot_local_user=YES
...
[root@svr5 vsftpd]# service vsftpd restart
在客户端测试:
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
230 Login successful.
ftp> pwd
257 "/"
实验四:用户访问控制(黑白名单)
通过ftpusers阻止mike访问
将user_list设为白名单
允许lisi、mike访问
分别测试匿名访问、lisi和mike访问
将ftp加入白名单,再测试匿名访问
[root@svr5 ~]# useradd mike
[root@svr5 ~]# echo 123456 | passwd --stdin mike
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
mike
[root@svr5 ~]# service vsftpd restart
测试:用mike访问ftp
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
121 userlist_deny=NO
...
[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
[root@svr5 ~]# tail -n 2 /etc/vsftpd/user_list
lisi
mike
测试:
分别使用mike与lisi登录测试
实验完毕,请将主配置文件121 userlist_deny=NO注释,将user_list和ftpusers里面添加的账户去掉
实验五:
最多100个并发,每IP地址最多2个并发
限制匿名下载速度为50KB/s
限制用户下载速度为500KB/s
通过 ftp、wget 验证上述限制
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
122 max_clients=100
123 max_per_ip=2
124 anon_max_rate=50000
125 local_max_rate=500000
[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# dd if=/dev/zero of=/var/ftp/pub/anon.tgz bs=1M count=1000
[root@svr5 ~]# dd if=/dev/zero of=/home/lisi/local.tgz bs=1M count=1000
测试:
[root@pc205 ~]# wget ftp://192.168.4.5/pub/anon.tgz
[root@pc205 ~]# wget ftp://lisi:123456@192.168.4.5/local.tgz
补充:
匿名用户登录对共享根目录(/var/ftp)禁止有写入权限,否则禁止匿名账户登录!
初级FTP搭建的更多相关文章
- Xlight FTP搭建FTP服务器教程
Xlight FTP搭建FTP服务器教程 1. 服务器公共设置 设置FTP 端口, ip 等 FTP 服务器公共的设定 2. 设定 FTP 用户, FTP 目录 等信息 备注: 这个用户是非Wi ...
- FTP 搭建
FTP 搭建 FTP 是 File Transfer Protocol(文件传输协议)的英文简称,它工作在 0SI 模型的第七层,TCP 模型的第四屋上,即应用层. 一.FTP 简介 FTP 会话时包 ...
- linux私有ftp搭建与创建新用户
一.私有ftp搭建 以后补充 1. 搭建 2.修改配置文件 二.创建新用户 在linux搭建好私有ftp后,默认存放目录是 /var/ftp/ 我们有时候需要给外部公司之类的用,但又不想让他们直接在 ...
- ftp搭建后外网无法连接和访问阿里云服务器(非软件)
阿里云服务器由于性价比高,是不少企业建站朋友们的首选.而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解 ...
- FTP搭建注意事项
正常的FTP搭建步骤很简单,随便网搜一篇文章就出来了 下面提出一个网址可供学习 https://blog.csdn.net/m0_38044299/article/details/81627607 但 ...
- FTP搭建YUM源服务器
一.FTP搭建YUM源服务器 1.服务器 挂载centos镜像[root@localhost ~]#yum install vsftpd[root@localhost ~]#systemctl sta ...
- 使用FTP搭建YUM
VSFTP搭建YUM源 1.安装FTP [root@FTP kel]# rpm -qa |grep vsftp vsftpd-2.2.2-6.el6_0.1.x86_64 首先需要安装的ftp软件为v ...
- 170116、centos6.4下nginx和ftp搭建图片服务器
一.需要的组件 图片服务器两个服务: Nginx(图片访问): 1.http服务:可以使用nginx做静态资源服务器.也可以使用apache.推荐使用nginx,效率更高. 2.反向代理 实现 负载均 ...
- nginx+ftp搭建图片服务器(Windows Server服务器环境下)
几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使 ...
随机推荐
- sql注入工具sqlmap使用参数说明
Options(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1)Target(目标):以下至少需要设置其中 ...
- [Unity-7] Update和FixedUpdate
1.Update和FixedUpdate这是Unity既用内提供的帧功能接口相关联. Update():这个函数里面的内容每一帧都会被运行一次.这个函数有一个特点,那就是运行的频率等于帧率.而这个帧率 ...
- SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别
原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别 SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制 ...
- 方向梯度直方图(HOG)和颜色直方图的一些比較
近期在学习视频检索领域的镜头切割方面的知识,发现经常使用的方法是直方图的方法,所以才专门有时间来学习下.查看到这两种直方图的时候,感觉有点接近,好像又不同,放在这做个比較.大部分还是百科的内容,只是对 ...
- 简单分析android textview xml 的属性设置
android:ems 设置TextView的宽度为N个字符的宽度. 这样的好处就是,在定义编辑框空间输入多少字符的时候,可以根据固定的值设置编辑框宽度.保证边框和文字的宽度统一.android:ma ...
- 实时预览的在线 Markdown 编辑器 - Markdoc
实时预览的在线 Markdown 编辑器 - Markdoc 最近组内需要为一些项目和系统写文档,发表在公司内的文档平台上,这个平台并不支持markdown,所以打算做一个在线markdown编辑器, ...
- java编程思想笔记(第一章)
Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ...
- Operating System 概述和学习图
Operating System 概述和学习图 大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access, ...
- Asp.Net Web API 2(CRUD操作)第二课
Asp.Net Web API 2(CRUD操作)第二课 Asp.Net Web API 导航 Asp.Net Web API第一课:入门http://www.cnblogs.com/aehyok ...
- 基于ffmpeg的C++播放器1
基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...