Linux-DHCP服务

系列文章目录

` 提示:仅用于个人学习,进行查漏补缺使用。
1.Linux网络设置


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本章大概内容有:
       DHCP工作原理、DHCP场景实验、补充FTP服务、vsftp的安装与配置等

提示:以下是本篇文章正文内容,下面案例可供参考

一、DHCP工作原理

  • DHCP概述

    • DHCP(动态主机配置协议)是一种网络协议,用于自动分配IP地址和其他网络配置信息给网络中的设备。
    • 简化了网络管理过程,特别是对于大型网络,因为管理员不需要手动为每个设备配置IP地址。
  • DHCP工作原理
    1. 发现(Discovery):当一个设备启动并且需要网络配置时,它会发送一个DHCP Discover消息,这是一个广播消息,寻找可用的DHCP服务器。
    2. 提供(Offer):当DHCP服务器接收到Discovery消息时,它会从预设的IP地址池中分配一个IP地址,并向设备发送一个DHCP Offer消息,提供一个IP地址供设备使用。
    3. 请求(Request):设备接收到一个或多个Offer消息后,会选择第一个并发送DHCP Request消息给服务器,确认它想要使用哪个IP地址。
    4. 确认(Acknowledge):DHCP服务器在接收到Request消息后,会发送DHCP ACK消息,确认IP地址的分配,并告知设备如何设置网络配置。

  • DHCP租约原理过程

    • DHCP(动态主机配置协议)的租约原理过程是网络中自动分配和管理IP地址的关键机制。这一过程可以分为以下四个主要步骤:
      1. 发现阶段(DHCP Discovery)
      - 客户端首次启动或需要重新获取IP地址时,会在网络上发送一个DHCP DISCOVER消息。这是一个广播消息,其目的是寻找网络中的DHCP服务器。
      - DHCP DISCOVER消息包含客户端的MAC地址,用于服务器识别客户端。
      2. 提供阶段(DHCP Offer)
      - 当DHCP服务器接收到客户端的DHCP DISCOVER消息后,会检查自己的地址池,找到一个可用的IP地址,然后发送一个DHCP OFFER消息给客户端。
      - DHCP OFFER消息包含了服务器提供的IP地址、子网掩码、默认网关、DNS服务器地址以及租期信息。
      - 由于是广播消息,网络中的所有设备都能接收到,但只有发出DHCP DISCOVER的客户端会处理这个消息。
      3. 选择阶段(DHCP Request)
      - 客户端在收到至少一个DHCP OFFER消息后,会从中选择一个IP地址,并向网络发送一个DHCP REQUEST消息,请求这个IP地址。
      - DHCP REQUEST消息中包含了客户端IP地址以及服务器的IP地址,确认客户端接受了服务器的提供。
      - 如果客户端收到多个DHCP OFFER,它通常会选择第一个收到的。
      4. 确认阶段(DHCP Acknowledgement)
      - 当服务器收到客户端的DHCP REQUEST消息后,会发送一个DHCP ACK消息来确认IP地址的分配。
      - DHCP ACK消息中包含了客户端的IP地址、子网掩码、默认网关、DNS服务器地址和租期信息。
      - 客户端收到DHCP ACK后,会将IP地址配置到网络接口,并开始使用该IP地址进行网络通信。
    • PS:在租约期间,客户端会定期更新租约。通常,客户端会在租期达到50%时尝试更新租约,如果成功,租期会延长;如果失败,会在租期达到87.5%时再次尝试。如果租约更新仍然失败,租期到期后,客户端必须停止使用该IP地址,并重新开始DHCP租约过程。
    • 整个DHCP租约过程有效地简化了IP地址的分配和管理,同时避免了IP地址冲突,提高了地址的利用率。
  • DHCP好处

    • 减少管理员的工作量
    • 避免输入错误的可能
    • 避免IP地址冲突
    • 当更改IP地址段时,不需要重新配置每个用户的IP地址
    • 提高了IP地址的利用率
    • 方便客户端的配置
  • DHCP的分配方式

    • _自动分配:_分配到一个IP地址后永久使用
    • _手动分配:_由DHCP服务器管理员专门指定IP地址
    • _动态分配:_使用完后释放该IP,供其他客户机使用
  • DHCP的租约

    • DHCP分配的IP地址不是久的,它有一个租约期限。在租约期限内,设备可以使用这个IP地址。租约到期后,设备需要重新向DHCP服务器请求IP地址。
  • DHCP的优点

    • 自动化配置:减少了手动配置IP地址的必要性和潜在错误。
    • **集中管理_:_**IP地址的分配和管理可以集中进行,便于跟踪和调整。
    • **效率高_:_**设备接入网络时可以快速获得配置,实现即插即用。
    • 灵活性_:管理员可以设置租约期限,期满后IP地址可以重新分配。_
  • DHCP的消息类型:

    • DHCP协议定义了几种消息类型,包括DHCPDISCOVER、DHCPOFFER、DHCPREQUEST、DHCPACK、DHCPNAK和DHCPINFORM等,用于客户端和服务器之间的通信。

二、DHCP场景应用实验

实验环境:

  • 3台机器
  • centos 7-1 DHCP 服务端 192.168.65.2 (为了实验方便,将此IP定义为该网段的网关)
  • centos 7-2 DHCP 客户端 自动分配
  • windows 10 DHCP 客户端 自动分配

**网络环境: **
① Vmnet2(仅主机模式)
② vmware workstation 的虚拟网络编辑器中的DHCP功能必须关闭
③ 确定好Vmnet2 仅主机模式的IP地址段是多少
④ 注意 DHCP服务端的网卡信息的配置(GATEWAY 不要写)
系统环境:
① 先安装好DHCP服务,再行修改网络配置(nat-》Vmnet2)
② 或者,修改完网络配置后,配置本地YUM仓库,再行安装DHCP
③ 每台机器,关闭防火墙、核心防护
实验目的:

  • 在单位时,运用DHCP协议设置地址池,让公司员工的主机都能自动识别,并且分发范围内的IP地址

作为服务器的主机不用调整网卡的dhcp状态

实验步骤:

  • 步骤1.在Linux虚拟机中安装好dhcpd软件应用
    • 优先配置CentOS7-1,为dhcp的服务器,其ens33网卡截图如下

image.png
image.png
image.png

  • 步骤2.将相对应的example复制到dhcpd.conf中
  • 步骤3.关掉防火墙和selinux保护
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#systemctl disable firewalld
[root@localhost ~]#setenforce 0
  • 步骤4.修改网卡配置文件,重启网络服务。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
ifconfig ens33

  • 步骤5.在CentOS7-1,即dhcp服务器上编辑 dchp全局配置文件,设置好对应的网络池,检查并且安装dhcp有关软件包
[root@localhost ~]#rpm -qc dhcp								###查看是否安装dhcp
[root@localhost ~]#yum install -y dhcp				###yum更新安装dhcp
[root@localhost ~]#cd /usr/share/doc/dhcp-4.2.5/	
[root@localhost ~]#less dhcpd.conf.example
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

[root@localhost ~]#vim /etc/dhcp/dhcpd.conf


vim /etc/dhcp/dhcpd.conf					###配置dhcpd的配置信息
 # 定义了一个名为 192.168.233.0/24 的子网
subnet 192.168.233.0 netmask 255.255.255.0{
# 指定了DHCP服务器将分配的IP地址范围为 192.168.233.30 到 192.168.233.50
 range 192.168.233.30  192.168.233.50;
# 定义了子网的默认网关,客户端可以通过这个IP地址访问外部网络
  option routers 192.168.233.2;
# 此配置块在此结束
}


image.png
image.png

步骤6:重启网卡,启用dhcp服务

systemctl restart network				###重启网卡
systemctl restart dhcpd 				###重启dhcp服务
systemctl status dhcpd					###查看dhcp服务状态

image.png

步骤7:新开一台虚拟机进行仅主机操作
全部要主机模式
把static改成dhcp

  • CentOS7-2,作为dhcp客户机,其ens33网卡配置如下

image.png

  - **并关闭其防火墙**
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

image.png
步骤8:刷新网卡,通过DHCP获取IP

systemctl restart network
ifconfig ens33

image.png
PS:windows也同理系统关闭防火墙设置DHCP
image.png
步骤9:查看租约

less /var/lib/dhcpd/dhcpd.lease 

image.png

二.补充

1.FTP服务

  • 概述

    • FTP(File Transfer Protocol,文件传输协议)是一种用于在网络中传输文件的协议。
    • 它允许用户在网络上从一个主机传输文件到另一个主机,并提供了一种访问和传输文件的方法。
    • FTP工作在TCP/IP协议组中,使用两个端口:控制连接端口21和数据连接端口20。
  • FTP的工作原理
    1. 控制连接(Control Connection)
    - FTP使用TCP端口21来进行控制信息的传输。
    - 客户端和服务器之间建立一个控制连接,通过这个连接发送命令和应答。
    2. 数据连接(Data Connection)
    - FTP使用TCP端口20来进行文件数据的传输。
    - 数据连接可以是在主动模式(Active Mode)或被动模式(Passive Mode)下建立。

  • FTP的模式
    1. 主动模式(Active Mode)
    - 在主动模式下,FTP服务器从端口20主动连接到客户端指定的端口。
    - 客户端发起控制连接到服务器的端口21,然后服务器从端口20主动连接到客户端指定的端口发送数据。
    - 适合客户端 behind NAT/防火墙的情况。
    2. 被动模式(Passive Mode):【默认】
    - 在被动模式下,服务器在指定端口范围内被动等待客户端的连接,而不是主动发起连接。
    - 客户端仍然发起控制连接到服务器的端口21,然后服务器回显一个端口供客户端连接用于数据传输。
    - 适合服务器 behind NAT/防火墙的情况。

  • FTP的传输模式:
    1. 文本模式(Text Mode):ASCII模式
    - 在文本模式下,FTP传输文件时会进行换行符的转换,以确保不同操作系统之间的文件兼容性。
    2. 二进制模式(Binary Mode)
    - 在二进制模式下,文件以原始二进制形式传输,适合传输图像、音频和视频等非文本文件。

  • FTP的用户类型
    1. 匿名用户
    - 使用"anonymous"或"ftp"作为用户名,通常用于公开访问。
    2. 本地用户
    - 需要输入账号和密码,通常用于内部网络。
    3. 虚拟用户
    - 使用独立的账号和密码数据文件进行验证,适用于限制访问权限的场景。

  • TP的配置和管理:

    • FTP服务器的配置通常通过修改服务器的配置文件进行,如vsftpd的服务器配置文件通常位于/etc/vsftpd/vsftpd.conf
    • 配置文件中可以设置用户的权限、目录的访问权限、连接的限速、IP地址的限制等。
  • FTP的安全性:

    • 由于FTP协议明文传输用户名和密码,所以不太安全。
    • 为了解决这个问题,可以使用FTPS(FTP Secure),它通过SSL/TLS对控制连接进行加密。
    • 另外,还可以使用SFTP(SSH File Transfer Protocol),它是基于SSH的文件传输协议,提供更为安全的文件传输方式。

2.vsftpd的安装与配置

  • 1.vsftpd安装
rpm -qc vsftpd    //检查vsftpd安装包是否存在,存在即不需要安装
yum install -y vsftpd   //yum 安装vsftpd
  • 2.查看vsftpd文件
cd /etc/vsftpd
ls                //切换到安装好vsftpd目录下查看文件

image.png

  • 3.备份配置文件
cp vsftpd.conf vsftpd.conf.bak   //将vsftpd的配置文件进行备份

image.png

  • 4.vsftpd中配置作用
    • vsftpd初始化全局配置
vim /etc/vsftpd/vsftpd.conf
  • 配置如下权限
    | 配置项 | 描述 |
    | — | — |
    | anonymous_enable=YES | 开启匿名用户访问。 |
    | local enable=YES | 允许系统用户进行访问(useradd zhangsan)。 |
    | write enable=YES | 开放服务器的写权限(若要上传,必须开启)。默认已开启 |
    | anon umask=022 | 设置匿名用户所上传数据的权限掩码(反掩码)。 |

  • _5.添加如下配置:让匿名用户拥有访问本机和各种权限 _
    | 配置项 | 描述 |
    | — | — |
    | anon umask=022 | 设置匿名用户上传文件的权限掩码(反掩码)。需取消注释 |
    | anon upload enable=YES | 允许匿名用户上传文件。默认已注释,需取消注释。 |
    | anon mkdir write_enable=YES | 允许匿名用户创建(上传)目录。默认已注释,需取消注释。 |
    | anon other write_enable=YES | 允许删除、重命名、覆盖等操作。需添加。 |

image.png

  • 6.重启vsftpd服务,关闭安全防护
[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0
  • 7.为了做实验,DHCPSever即CentOS7-1上给默认根目录加权限
chmod 777 /var/ftp/pub/  这是匿名用户的默认根目录
echo 'this is CentOS Server'>>CentOS.txt
  • 8.匿名访问测试
    • 在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
    • 建立ftp连接 ftp 192.168.101.2
    • 匿名访问,用户名为ftp,密码为空,直接回车即可完成登录

image.png

  - get获取.txt文件

image.png
image.png

  • 9.在windows端创建windows.txt文件,并写入“this is windows server”。

image.png

  • 10.要put命令上传至ftp服务器,可在CenOS7-1查看结果

image.png
image.png

  • 存在的缺点:匿名用户权限过高,存在安全隐患
  • 11.设置本地用户验证访问ftp

设置本地用户可以访问ftp,禁止匿名用户登录

  - _添加普通用户zhangsan、lisi并设置密码‘123’_

image.png

  • 12.更改vsftpd的配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes        		 #启用本地用户
anonymous_enable=NO     	#关闭匿名用户访问
write_enable=YES        		 #开放服务器的写权限(若要上传,必须开启)
local_umask=077          		 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
  • 13.重新启动vsftpd服务,而后ftp匿名和用户名登录测试

image.png
image.png
对本地用户访问切换目录进行限制

  • 14添加、切换目录的限制配置 :
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES   		        #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES		 			#允许被限制的用户主目录具有写权限
systemctl restart vsftpd						#重启vsftpd服务

image.png

  • 15.修改匿名用户、本地用户登录的默认根目录【限制用户可查看的目录】
anon_root=/var/www/html			#anon_root 针对匿名用户
local_root=/var/www/html		#local_root 针对本地用户

  • - **_在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list _**

(其中就是为了我们更好利用黑名单和白名单的手册)

  • 黑名单:在黑名单上标记的用户,是我们禁止访问的对象。 -》
  • 白名单:在白名单上标记的用户是我们允许访问的对象,白名单比黑名单的制定更为__严格和安全_。_
###黑名单
userlist_enable=YES				#启用user_list用户列表文件
userlist_deny=YES				#默认为YES,为黑名单,禁止user_list名单上的用户进行访问


###白名单
userlist_enable=YES				#启用user_list用户列表文件
userlist_deny=NO				#设置白名单,仅允许user_list用户列表文件的用户访问。

要想使用root用户,需要把ftpusers里面的root用户注销掉即可

  • _16.黑名单和白名单的使用 _
vim /etc/vsftpd/vsftpd.conf
userlist_deny=YES				#默认为YES,为黑名单,禁止user_list名单上的用户进行访问,手动添加
systemctl restart vsftpd						#重启vsftpd服务

image.pngimage.png

  • 张三不能输入密码,李四可以登录。【张三已被加入黑名单】
  • PS
###	可以在windows输入文件同步:
ftp://lisi@192.168.101.2
  lisi							
  123

image.png

小结:

FTP是一个用于文件传输的重要协议,尽管在某些安全性要求较高的场景中可能需要更好的替代方案,但它仍然在许多应用场景中发挥着重要作用。【例如可做yum仓库】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值