一、DHCP工作原理
1.1、DHCP概念
动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议,该协议允许服务器向客户端动态分配 IP 地址和配置信息。
DHCP协议支持C/S(客户端/服务器)结构,主要分为两部分:
1、DHCP客户端:通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
2、DHCP服务器:所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。负责集中分配 各种网络地址参数(主要包括 IP 地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址)
DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的67号端口,服务器返回消息给客户端的68号端口。
DHCP 服务端和客户端需要保持通信,DHCP 基于 UDP 协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。
Server 端:DHCP Server(运行 dhcp 服务)
UDP 服务:监听端口 67(bootps)
Client 端:DHCP Client(运行 dhcp 程序)
UDP 服务:监听端口 68 (bootpc)
注意:路由里通常有DHCP(动态主机配置协议)功能或者其他高级方式dhcp,所以现在企业不会在系统自己配置dhcp但是原理要搞清楚。
1.2、DHCP的作用
由于上网时间的不确定性以及使用人员的技术水平不同,为每位用户分配一个固定的 IP 地址,不仅造成了IP 地址的浪费,也会为 ISP 服务商带来高额的维护成本。而使用 DHCP 服务则有以下好处。
减少管理员的工作量。
避免输入错误的可能。
避免 IP 地址冲突。
当网络更改 IP 地址段时,不需要再重新配置每个用户的 IP 地址。
提高了 IP 地址的利用率。
方便客户端的配置。
DHCP 服务避免了因手动设置 IP 地址所产生的错误,同时也避免了把一个 IP 地址分配给多台工作站所造成的地址冲突。DHCP 提供了安全、可靠且简单的 TCP/IP 网络设置,降低了配置 IP 地址的负担。
1.3、DHCP的分配方式
自动分配 : DHCP 客户机第一次成功地从 DHCP 服务器获取到一个 IP 地址后, 就永久地使用这个 IP 地址。
手动分配 : DHCP 服务器管理员专门指定 IP 地址。
动态分配 : DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用。
1.4、DHCP的租约过程
广播进行,先到先得 ,一个网络中只能有一个DHCP
四次回话
(1)客户机请求 IP 地址 当一个 DHCP 客户机启动时,客户机还没有 IP 地址,所以客户机要通过 DHCP 获取一个合法的地址。此时DHCP客户机以广播方式发送 DHCP Discover 发现信息来寻找 DHCP 服务器
(客户端在网络中搜索服务器)
(2)服务器响应 当 DHCP 服务器接收到来自客户机请求 IP 地址的信息时,它就在自己的 IP 地址池中 查找是否有合法的 IP 地址提供给客户机。如果有,DHCP 服务器就将此 IP 地址做上标记, 加入到 DHCP Offer 的消息中,然后 DHCP 服务器就广播一则 DHCP Offer 消息
(服务器向客户端响应服务)
(3)客户机选择 IP 地址 DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP 服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。之后 DHCP 客户机会向服务器发送 DHCP Request 消息。
(客户端向目标服务器发送服务请求)
(4)服务器确定租约 DHCP 服务器接收到 DHCP Request 消息后,以 DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有 IP 地址的有效租约和其他可配置的信息。当客户机收到 DHCP ACK 消息时,它就配置了 IP 地址,完成 TCP/IP 的初始化。
(服务器向客户端提供服务)
关于重新登录的情况
DHCP 客户机每次重新登录网络时,不需要再发送 DHCP Discover 信息,而是直接发送包含前一次所分配的 IP 地址的 DHCP Request 请求信息。
更新租约
当dhcp服务器向客户机出租的ip地址租期达到50%时,就需要更新租约,客户机直接向提供租约的服务器发送dhcprequest包,要求更新现有的地址租约。
如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算)
如果收到DHCP NAK报文(不同意),则重新发送DHCP DISCOVER报文请求新的IP地址。
二、安装DHCP服务
不怎么用dhcp服务器的配置(了解)
2.1、实验步骤
1、yum安装dhcp服务
2、配置dhcp配置文件
3、启动服务
4、查看端口
5、验证服务
yum -y install dhcp
rpm -q dhcp
cat /etc/dhcp/dhcpd.conf
在初始状态没有配置,需要把模板拷贝过来
cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
拷贝模板起名为dhcpd.conf
vim /etc/dhcp/dhcpd.conf
编辑全局配置文件
systemctl start dhcpd开启
查看状态
systemctl status dhcpd
测试
或者看到mac地址
或者
指定格式如下
重启
在window上
查看租约信息
less /var/lib/dhcpd/dhcpd.leases
释放端口
dhclient -r ens33
三、FTP
3.1、FTP的含义
File Transfer Protocol,文件传输协议,是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。tcp协议:20
21端口: 用于传输指令
20端口:用于传输数据
只有传输的时候才会看见20端口
3.2、FTP的两种模式
它支持两种模式
- Standard模式
- 一种方式叫做Standard (也就是 Active,主动方式), Standard模式 FTP的客户端发送 PORT 命令到FTP server。
FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
- Passive模式
- 一种是 Passive (也就是PASV,被动方式)。Passive模式FTP的客户端发送 PASV命令到 FTP Server
在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
3.3、FTP作用与工作原理
主动模式的工作原理:
FTP 客户端连接到 FTP 服务器的 21 号端口,发送用户名和密码,客户端随机开放一个端口(1024 以上),发送PORT 命令到FTP 服务器,告知服务器客户端采用主动模式并开放端口,FTP 服务器收到PORT主动模式命令和端口后,通过服务器的 20 号端口和客户端开放的端口连接,发送数据,原理画图所示,(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)
#2.2.2 被动模式的工作原理:
PASV 是 Passive 的缩写,中文成为被动模式,工作原理:FTP 客户端连接到 FTP 服务器所监听的21 号端口,发送用户名和密码,发送 PASV 命令到 FTP 服务器,服务器在本地随机开放一个端口(1024 以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输,原理画图所示。
注:以上的说明主动和被动,是相对于的 FTP server 端而判断,如果 server 去连接client开放的端口,说明是主动的,相反,如果 client去连接server开放的端口,则是被动。
总结:
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
FTP的使用
3.3 设置用户模式登录
设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
#修改配置文件
vim /etc/vsftpd/vsftpd. conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
#anon_mkdir_write_enable=YES 注释
#anon_other_write_enable=YES 注释
重启服务
systemctl restart vsftpd
ftp 192.168.10.12
ftp://zhangsan@192.168.10.12
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root针对系统用户
使用user_list用户列表文件
vim /etc/vsftpd/user_list
//末尾添加zhangsan用户
zhangsan
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用