初级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:[email protected]
ftp://user:[email protected]/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
[[email protected] ~]# useradd lisi
[[email protected] ~]# echo 123456 | passwd --stdin lisi
[[email protected] ~]# ls -l /etc/* > ~lisi/lisi.txt
4.验证:(客户端测试)
浏览器测试:
ftp://192.168.4.5/
ftp://lisi:[email protected]/ 用户密码登录方式
命令行测试:
[[email protected] ~]# yum -y install ftp lftp
[[email protected] ~]# ftp 192.168.4.5
ftp> cd pub
ftp> ls
ftp> get anon.txt
ftp> !ls
ftp> put install.log
ftp> quit
[[email protected] ~]# lftp 192.168.4.5
lftp 192.168.4.5:~> user lisi
口令:
[[email protected] ~]# yum -y install wget
[[email protected] ~]# wget ftp://lisi:[email protected]/lisi.txt 下载文件测试

实验总结:
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载 用户家目录

实验三:
禁锢本地用户在自己家目录
实验步骤:
先在客户端测试默认结果
[[email protected] ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
...
ftp> pwd
257 "/home/lisi"
在服务器端配置
[[email protected] ~]# cd /etc/vsftpd/
[[email protected] vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[[email protected] vsftpd]# vim vsftpd.conf
...
96 chroot_local_user=YES
...
[[email protected] vsftpd]# service vsftpd restart
在客户端测试:
[[email protected] ~]# 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加入白名单,再测试匿名访问
[[email protected] ~]# useradd mike
[[email protected] ~]# echo 123456 | passwd --stdin mike
[[email protected] ~]# grep mike /etc/vsftpd/ftpusers
mike
[[email protected] ~]# service vsftpd restart
测试:用mike访问ftp
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
...
121 userlist_deny=NO
...
[[email protected] ~]# service vsftpd restart
[[email protected] ~]# grep mike /etc/vsftpd/ftpusers
[[email protected] ~]# 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 验证上述限制

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
...
122 max_clients=100
123 max_per_ip=2
124 anon_max_rate=50000
125 local_max_rate=500000

[[email protected] ~]# service vsftpd restart
[[email protected] ~]# dd if=/dev/zero of=/var/ftp/pub/anon.tgz bs=1M count=1000
[[email protected] ~]# dd if=/dev/zero of=/home/lisi/local.tgz bs=1M count=1000
测试:
[[email protected] ~]# wget ftp://192.168.4.5/pub/anon.tgz
[[email protected] ~]# wget ftp://lisi:[email protected]/local.tgz

补充:
匿名用户登录对共享根目录(/var/ftp)禁止有写入权限,否则禁止匿名账户登录!

时间: 2024-08-25 00:56:51

初级FTP搭建的相关文章

ftp搭建后外网无法连接和访问阿里云服务器(非软件)

阿里云服务器由于性价比高,是不少企业建站朋友们的首选.而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解决方法. 问题原因一:购买的阿里云ECS未开放外网访问端口. 解决方法:开放端口. 登录阿里云ECS服务器控制面板,[网络和安全]->[安全组],在右边选择[配置规则]->[添加安全组规则],协议选全部,授权对象填0.0.0.0/0 点击确定后,再试一下外网访问FTP,是不是已经可以正常访问了?

Xlight FTP搭建FTP服务器教程

Xlight FTP搭建FTP服务器教程 1. 服务器公共设置 设置FTP 端口, ip 等 FTP 服务器公共的设定 2. 设定 FTP 用户, FTP 目录 等信息    备注: 这个用户是非Windows 用户, XLight FTP 服务器内置管理的, 他不依靠Windows 用户的 3. 设定登陆模式 2.  原文地址:https://www.cnblogs.com/m0488/p/9870086.html

FTP搭建YUM源服务器

一.FTP搭建YUM源服务器 1.服务器 挂载centos镜像[[email protected] ~]#yum install vsftpd[[email protected] ~]#systemctl start vsftpd[[email protected] ~]#systemctl stop firewalld[[email protected] ~]# mkdir /var/ftp/centos7[[email protected] ~]# mount  /dev/sr0   /va

170116、centos6.4下nginx和ftp搭建图片服务器

一.需要的组件 图片服务器两个服务: Nginx(图片访问): 1.http服务:可以使用nginx做静态资源服务器.也可以使用apache.推荐使用nginx,效率更高. 2.反向代理 实现 负载均衡 ftp服务(图片上传): 使用Linux做服务器,在linux中有个ftp组件vsftpd. 二.Nginx服务器搭建 1.安装Nginx 要求安装vmware虚拟机. Linux:CentOS6.4(32) Nginx:1.8.0 Vsftpd:需要在线安装. 虚拟机以及Linux安装很简单此

linux下ftp搭建的两种方式(个人笔记)

1. 搭建FTP服务器 FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件. FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP 连接用于数据传输. vsftpd是一款在Linux发行版中最主流的FTP服务器程序:特点是小巧轻快,安全易用:能让其自身特点得发发挥和掌握. 目前在开源操作系统中常用的FTP服务器程序主要有vsftpd.ProFTPD.PureFTPd和wuftpd等,这么多FTP服务器程序,关键在于自己熟练哪一个就使用哪一个.今天我们来研究一下VS

简单的FTP搭建

FTP(VSFTP)简单搭建 vsftp默认安装完就可以下载了,目录在服务器的/etc/ftp里面,需要对防火墙规则设置(简单地清空也可),客户端才可正常访问 服务器端: yum list |grep vsftpd yum -y install vsftpd rpm -qa vsftpd touch /var/ftp/vsftp_success! 客户端: yum list |grep lftp yum –y install lftp [[email protected] yum.repos.d

FTP搭建使用

很简单的东西,今天突然用的到这个,发现有点忘了,在这里记录下 因为在linux下写python脚本不是很方便 , 于是决定在搭建个ftp实现linux和windows文件共享 : 步骤: 首先安装vsftpd [[email protected] sjyy]# yum install vsftpd -y [[email protected] sjyy]# vim /etc/vsftpd/vsftpd.conf (修改配置文件) anonymous_enable=NO 禁用匿名用户访问 chroo

nginx+ftp搭建图片服务器(Windows Server服务器环境下)

几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使用IIS或Tomcat等服务器在项目中访问,图片少的情况可以考虑.商城网站则不行,图片访问处理需搭建图片服务器 3.ftp+nginx服务器,ftp负责上传图片,nginx负责图片的访问 一.需要的组件 1.ftp服务器(图片上传,本文选用IIS为容器) ps Linux操作系统  可安装vsftp

FTP搭建

工作任务描述 HT公司要搭建一台ftp服务器.利用Windows Server 2008服务器自带的IIS组件,发布FTP服务器,具体要求如下: 1.可匿名访问ftp站点: 2.在C盘建立名称为"ftp"的文件夹,作为ftp站点的主目录. 3.建立隔离用户的ftp . 1)建立Bob和John两个用户访问Ftp, 2)ftp采用隔离用户模式: 3)Bob和John两个用户登陆后只可以访问自己的文件夹,并可以自由的上传和下载文件: 4)匿名登陆ftp后,看到的是公共文件夹的内容,并具有只