DHCP和FTP的原理及配置

一、DHCP的原理及配置

DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配tcp/Ip参数的协议,是一个应用层协议,使用UDP的67和68端口。

1.dhcp 的模式(典型的C/S模式)

在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、默认网关地址、DNS服务器地址、广播地址),其他主机作为DHcP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程

DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。

server端:DHCP Server(运行dhcp服务) UDP服务:监听端口67 ( bootps)

client端:DHCP Client(运行dhcp程序) UDP服务:监听瑞口68 ( bootpc)

2.DHCP的分配方式

自动分配是当 DHCP 客户机第一次成功地从 DHCP 服务器获取到一个 IP 地址后, 就永久地使用这个 IP 地址。
手动分配是由 DHCP 服务器管理员专门指定 IP 地址。
动态分配是当 DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用

3.DHCP的租约过程

1.客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

2.服务器响应
DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息

3.客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机

4.服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCPACK消息时,配置IP地址,完成TCP/IP的初始化

5.重新登陆
DHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息

6.更新租约
租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCPACK报文,则租期事新成功(即相期从0开始计算):如果收到DHCPNAK报文,则重新发送DHCP DTSCOVER报文请求新的IP地址。

当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCE REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCPAK报文,则重新发DHCP DISCOVER报文请求新的IP地址

169.254.0.0/16 是一个特殊的地址范围,被称为“链接本地”(Link-Local)地址。
一开始,DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。任何接收到DHCPDISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。但是,DHCP客户机在发出IP租用请求的DHCPDISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。四次之后,如果仍未能收到服务器的回应,则运行Windows的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址。

二、FTP

一、FTP概述

FTP(文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。tcp协议:20,21端口。

21端口:用于传输指令

22端口:用于传输数据

二、主动模式和被动模式

主动模式:
FTP 客户端连接到 FTP 服务器的 21 号端口,发送用户名和密码,客户端随机开放一个端口(1024 以上),发送PORT 命令到FTP 服务器,告知服务器客户端采用主动模式并开放端口,FTP 服务器收到PORT主动模式命令和端口后,通过服务器的 20 号端口和客户端开放的端口连接,发送数据(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)

主动模式有个弊端,客户端必须关闭防火墙,否则不能传输数据。

被动模式:
FTP 客户端连接到 FTP 服务器所监听的21 号端口,发送用户名和密码,发送 PASV 命令到 FTP 服务器,服务器在本地随机开放一个端口(1024 以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输

总结:
主动模式:服务器主动连接客户端的端口,进行数据连接
被动模式:服务器开放端口被动等待客户端进行数据连接

三、搭建和配置FTP服务

1.关闭防火墙和增强型安全功能
在这里插入图片描述
2.

yum info vsftpd 或 rpm -qa|grep vsftpd #查看是否安装
如果没有安装,使用yum安装
yum install -y vsftpd
systemctl start vsftpd #开启ftp服务
cd /etc/vsftpd #切换服务配置目录
cp vsftpd.conf vsftpd.conf.bak #做备份

在这里插入图片描述

3.1 设置匿名用户访问的ftp服务(最大权限)

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问。默认开启
write_enable=YES #开放服务器的写权限(若要上传必须开启)。默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)
anon_upload_enable=YES #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enbale=YES #允许删除、重命名、覆盖等操作。需添加
chmod -R 777 /var/ftp/pub/ #为匿名访问ftp的根目录下的pub子目录设置最大权限
以便匿名用户上传数据
systemctl restart vsftpd #重启服务

在这里插入图片描述
3.2 开放/var/ftp/pub文件夹权限,重启vsftpd服务
在这里插入图片描述
3.3 测试

在windows系统打开开始菜单,输入cmd命令打开命令提示符
ftp 192.168.223.9 #建立ftp连接
匿名访问时,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub目录
ftp> get 文件名 #下载文件到当前windows本地目录
ftp> put 文件名 #上传文件到ftp目录
ftp> quit #推出

在这里插入图片描述
在这里插入图片描述

4.设置用户模式登录

设置本地用户验证访问ftp,并禁止切换到ftp以外目录(默认登陆的根目录为本地用户的家目录)
1.

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #关闭匿名用户访问
local_enable=Yes #启用本地用户
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
#anon_mkdir_write_enable=YES 注释
#anon_other_write_enable=YES 注释

修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root针对系统用户

在这里插入图片描述
在这里插入图片描述

2.测试
无法切换目录,且成功在设置的var/www/html中上传文件
在这里插入图片描述
在这里插入图片描述

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值