13、DHCP和FTP协议

时间:2024-11-13 12:57:18

DHCP:动态主机配置协议

DHCP的分服务端和客户端

应用在大型的局域网环境中,分服务端和客户端。

服务端:提供IP地址,某种特定功能的提供者。

客户端:请求IP地址,请求对应的功能的使用者。

DHCP:集中地址管理(地址池,可用IP地址的范围),自动分配客户端的IP地址,gateway网关,DNS服务信息等等。

客户端的端口:68

服务端的端口:67

DHCP的优点

1、降低配置和部署设备的时间

2、降低了配置发生错误的可能

3、集中化管理IP地址的分配

4、提高了IP的利用率

DHCP的工作原理

                          客户端     —————————————>    服务端                                                 

1、客户端初始化时,不知道服务端是谁,整个网络中发送广播(DISCOVER报文)

2、服务端向客户端响应(我是服务端),发送offer报文(华为设备的单播方式,其他的都是广播方式)。

3、客户端向服务端发送服务请求(resquest报文的形式),请求报文只会发送给第一个响应自己的服务器。

4、服务端收到客户端的请求,从地址池中选择一个未被占用的IP地址以及租期信息,发送给客户端,都是发送ack(确认响应)。

5、客户端收到服务端发送的ack报文后,使用服务端提供的IP地址等服务。

  • 租期信息:默认情况下,服务端提供的IP地址的使用期限是7200秒,到期后要重新向服务端请求新的IP地址(IP地址可能发送变化)。
  • 客户端下线之后,客户端进行重新登录,发送一个包含之前DHCP服务端分配的IP信息的renew request的报文。服务端收到请求之后,先尝试让客户端继续使用该地址,如果地址不可用,才会分配一个新的,恢复客户端ack报文。
  • 租约到期到期之后,服务端会把IP地址收回,客户端想要继续使用该IP地址,必须要更新租约。更新方式:租约到期时间的一半,客户端会发送renew request的报文来续约租期。服务端收到请求之后,尝试让客户端继续使用该地址,如果地址不可用,才会分配一个新的,恢复客户端ack报文。

在Linux系统上配置DHCP

地址分配案例

我们在ubuntu上开两台虚机机,设置服务端:Ub1、客户端:Ub2。

在服务端:Ub1上下载好DHCP软件。

服务端对/etc/dhcp/dhcpd.conf文件进行配置,具体修改如下

对客户端的网卡配置文件 /etc/netplan/01-network-manager-all.yaml进行修改,具体操作如下:

操作完之后分别使用systemctl restart isc-dhcp-server和netplan apply命令,重启服务和网卡。

这时候我们查看客户端的IP地址,会发现他的地址是我们服务端从地址池中分配给他的。

如果以上操作发现客户端的IP依然没变化,可以对服务端启用dhclient命令进行刷新配置的配置网络地址。

根据mac地址绑定ip案例

首先我们依然对服务端的 /etc/dhcp/dhcpd.conf 文件进行配置,具体修改如下:

  • 00:0c:29:37:59:aa是客户端的mac地址
  • 192.168.254.100:是我们要绑定的IP地址
  • 表示我们绑定客户端:Ub2的IP地址成192.168.254.100

服务端和客户端刷新服务和网卡后,这时候我们打开日志,会发现绑定成功

进入客户端:Ub2的虚拟机查看IP,会发现已经变成我们绑定的IP地址

FTP:文件传输协议

网络上控制文件的双向传输,虽然说市面有很多类似ftp的工具,但是协议都是基于ftp的协议。

FTP的端口:

20:建立数据连接,并传输文件数据

21:建立连接控制,传输ftp的控制命令

FTP的数据连接的方式:

主动模式:服务端对客户端主动发起数据连接(一般不用)

被动模式:客户端对服务端发起连接(主要模式)

SFTP:加密的文件创建协议

Linux和windows的文件互传案例

首先我们下载vsftpd软件

接着对ftp的配置文件 vsftpd.conf 进行优化和修改,具体修改如下:

修改完之后,给ftp赋予最高权限,然后需要重启这个配置文件

看日志会查看是否开启正常

直接用windows连接自己的Linux主机IP地址,用自己用户登录

这时候我们可以在Linux系统zw的家目录下建一个文件,在windows系统上使用get命令可以下载到我们电脑上,就在C盘用户目录下

同样也可以把C盘用户目录下的文件传送给Linux用户的家目录下,使用put命令

这时候我们发现可以在windows上切换Linux的目录,这是不安全的,可以再配置 vsftpd.conf文件,使Windows禁锢在家目录,具体配置如下:

重启配置文件后,我们发现Windows被禁锢在家目录下,无法再查看别的目录。

黑名单和白名单案例

黑名单:在这个名单上的用户才会拒绝连接(允许所有,拒绝个别)

白名单:只有这个名单上的用户才可以连接(拒绝所有,允许个别)

在工作中,使用白名单。

我们还是配置 vsftpd.conf文件,添加三行,设置黑名单,具体配置如下

接着我们创建这个黑名单,名字和设置的一样,然后添加黑名单的用户,如下:

这时候我们发现zw无法在Windows登录,说明成功。

root是天生不能在Windows上登录的,因为root是在 etc/ftpusers名单中,属于黑名单中的黑名单,我们可以进去先把他删了,我们可以用vim   etc/ftpusers进入配置文件,把他删了,再把root添加进白名单就可以操作了。