第十三章、DHCP原理与配置

第十三章、DHCP原理与配置

1、DHCP工作原理

1.1 DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)

1.2 由Internet工作任务小组设计开发

1.3 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

1.4 使用DHCP的好处

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

1.5 DHCP的分配方式

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

1.6 DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68,服务端的端口为67

2、DHCP的租约过程

2.1 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

2.2 分为四个步骤

2.2.1 客户端在网络中搜索服务器
2.2.2 服务器向客户端响应服务
2.2.3 客户端向目标服务器发出服务请求
2.2.4 服务器向客户端提供服务

2.3 客户机请求IP地址

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

2.4 服务器响应

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

2.5 客户机选择IP地址

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

2.6 服务器确定租约

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

2.7 重新登录

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

2.8 更新租约

2.8.1 当DHCP服务器向客户机出租的IP地址租期达到50%时就需要更新租约
2.8.2 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

3、使用DHCP动态配置主机地址

3.1 DHCP服务

3.1.1 为大量客户机自动分配地址,提供集中管理
3.1.2 减轻管理和维护成本、提高网络配置效率

3.2 可分配的地址信息主要包括

3.2.1 网卡的IP地址、子网掩码
3.2.2 对应的网络地址、广播地址
3.2.3 默认网关地址
3.2.4 DNS服务器地址

4、安装DHCP服务器

4.1 实验环境:

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

4.2 网络环境:

4.2.1 Vmnet2(仅主机模式)——三台机器都是.
4.2.2 Vmware workstation 的虚拟网络编辑器中的DHCP功能必须关闭
4.2.3 确定好Vmnet2 仅主机模式的IP地址段是多少
4.2.4 注意 DHCP服务端的网卡信息的配置(GATEWAY 不要写)

4.3 系统环境:

4.3.1 先安装好DHCP服务,再行修改网络配置(nat-Vmnet2)
4.3.2 或者,修改完网络配置后,配置本地YUM仓库,再行安装DHCP
4.3.3 每台机器,关闭防火墙、核心防护

4.4 操作步骤

4.4.1配置本地yum仓库

[root@xiaolei yum.repos.d]# mount /dev/sr0 /mnt/          ###挂载
       /dev/sr0 is already mounted on /mnt
[root@xiaolei yum.repos.d]# df -hT
………………
/dev/sr0                iso9660   4.4G  4.4G     0 100% /mnt
[root@xiaolei yum.repos.d]# ls
bak  CentOS-aliyun-lhr.repo  epel-aliyun.repo  repobak
[root@xiaolei yum.repos.d]# mv *.repo repobak/
[root@xiaolei yum.repos.d]# ls
bak  repobak
[root@xiaolei yum.repos.d]# touch local.repo            ###创建本地yum源
[root@xiaolei yum.repos.d]# ls
bak  local.repo  repobak
[root@xiaolei yum.repos.d]# vi local.repo               ###编辑yum仓库
[root@xiaolei yum.repos.d]# cat local.repo             
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@xiaolei yum.repos.d]# yum clean all               ###清理yum缓存
[root@xiaolei yum.repos.d]# yum makecache fast          ###重新建立缓存
Metadata Cache Created

4.4.2 关闭防火墙和核心防护

[root@xiaolei yum.repos.d]# systemctl stop firewalld
[root@xiaolei yum.repos.d]# setenforce 0

4.4.3 安装dhcp

[root@xiaolei yum.repos.d]# yum install -y dhcp

4.4.4 编辑 dchp全局配置文件,设置好对应的网络池

[root@xiaolei ~]# cd /usr/share/doc/
[root@xiaolei doc]# ls
…………
dhcp-4.2.5                               
[root@xiaolei doc]# cd dhcp-4.2.5/                ###进入到这个目录
[root@xiaolei dhcp-4.2.5]# ls
dhcpd6.conf.example  dhcpd.conf.example  ldap     ###里面有dhcpd配置模版
[root@xiaolei dhcp-4.2.5]# less dhcpd.conf.example
[root@xiaolei dhcp-4.2.5]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.              conf.example /etc/dhcp/dhcpd.conf             ###将模版复制并替换并改名为dhcp.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@xiaolei dhcp-4.2.5]# cd
[root@xiaolei ~]# cd /etc/dhcp/
[root@xiaolei dhcp]# ls
dhclient.d             dhcpd6.conf  scripts
dhclient-exit-hooks.d  dhcpd.conf
[root@xiaolei dhcp]# cp dhcpd.conf /etc/dhcp/dhcpd.conf.bak  ###创建一个备份
[root@xiaolei dhcp]# ls
dhclient.d             dhcpd6.conf  dhcpd.conf.bak
dhclient-exit-hooks.d  dhcpd.conf   scripts
[root@xiaolei dhcp]# vim /etc/dhcp/dhcpd.conf           ###编辑dhcpcd
subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
                                                     ###4yy复制上面4行p进行粘贴
subnet 192.168.88.0 netmask 255.255.255.0 {          
  range 192.168.88.10 192.168.88.20;
  option routers 192.168.88.2; 
}                                               ###设置好网段、子网掩码、IP地址池范                                                    围,路由选项指向网关                                        

4.4.5 重启网卡、dhcp,重新启用dhcp服务

[root@xiaolei dhcp]# systemctl restart network
[root@xiaolei dhcp]# systemctl restart dhcpd
[root@xiaolei dhcp]# systemctl status dhcpd

4.4.6 新开一台虚拟机进行仅主机操作(Vmnet2仅主机模式)
在这里插入图片描述
4.4.7 刷新网卡,通过DHCP获取IP
在这里插入图片描述

4.4.8新开一台win10虚拟机进行仅主机操作(Vmnet2仅主机模式)

关闭防火墙更改网络适配器选项——禁用——启用刷新一下,勾选自动获得IP地址
在这里插入图片描述

打开终端
在这里插入图片描述

4.4.9 查看租约

[root@xiaolei ~]# less /var/lib/dhcpd/dhcpd.leases
lease 192.168.88.10 {
  starts 4 2024/08/15 17:35:01;
  ends 4 2024/08/15 17:45:01;
  cltt 4 2024/08/15 17:35:01;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 00:0c:29:c5:8e:11;
  client-hostname "xiaowang";
}
lease 192.168.88.11 {
  starts 4 2024/08/15 17:38:13;
  ends 4 2024/08/15 17:48:13;
  cltt 4 2024/08/15 17:38:13;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 00:0c:29:9d:fe:1b;
  uid "\001\000\014)\235\376\033";
  client-hostname "DESKTOP-P7DU5U2";
}

5、FTP网络服务

5.1 FTP概述

​ FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
​ 同时,它也是一个应用程序(Application),基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

5.2 VSFTP

5.2.1 FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
5.2.2 20端口用于建立数据连接,并传输文件数据
5.2.3 21端口用于建立控制连接,并传输FTP控制指令

5.3 FTP的数据连接模式——默认为被动模式

5.3.1 主动模式——服务器主动发起数据连接

​ 在主动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,客户端会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,然后告知服务器使用该端口进行数据连接。服务器通过控制连接将数据连接请求发送到客户端的指定端口,建立数据连接并进行数据传输。

5.3.2 被动模式——服务器被动等待数据连接

​ 在被动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,服务器会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,并将该端口告知客户端。客户端通过控制连接向服务器指定的端口发起数据连接,建立数据连接并进行数据传输。

主动模式和被动模式在数据连接的建立方式上有所区别,主要涉及客户端和服务器之间数据连接的建立和传输。在网络环境复杂或存在防火墙的情况下,被动模式通常更容易穿越防火墙,因此在实际应用中被广泛使用。

6、安装配置vsftpd步骤

6.1 检查vsftpd安装包是否存在,存在即不需要安装

[root@xiaolei ~]# rpm -qa vsftpd

6.2 安装vsftpd软件包

[root@xiaolei ~]# yum install -y vsftpd

6.3 切换到安装好vsftpd目录下查看文件

[root@xiaolei ~]# cd /etc/vsftpd/
[root@xiaolei vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

6.4 将vsftpd的配置文件进行备份

[root@xiaolei vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@xiaolei vsftpd]# ls
ftpusers   vsftpd.conf      vsftpd_conf_migrate.sh
user_list  vsftpd.conf.bak

6.5 vsftpd初始化全局配置

[root@xiaolei ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #开启匿名用户访问。默认已开启
local_enable=YES                #允许系统用户进行访问(useradd zhangsan)
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。

6.6 让匿名用户拥有访问本机和各种权限

anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释,x删除#
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES     #允许删除、重命名、覆盖等操作。需添加

6.7 重启vsftpd服务,关闭安全防护

[root@xiaolei ~]# systemctl restart vsftpd
[root@xiaolei ~]# systemctl stop firewalld
[root@xiaolei ~]# setenforce 0

6.8 赋予匿名访问权限

[root@xiaolei pub]# chmod 777 /var/ftp/pub/    ###这是匿名用户的默认根目录

6.9 匿名用户的默认根目录下创建一个文件

[root@xiaolei pub]# echo 'hello word'>test.txt
[root@xiaolei pub]# ls
test.txt
[root@xiaolei pub]# cat test.txt
hello word

6.10 匿名访问测试

在Windows系统打开win+R,输入cmd 命令打开命令提示符
ftp 192.168.88.2 #建立ftp连接
在这里插入图片描述

#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
在这里插入图片描述
在这里插入图片描述

ftp> pwd                                    #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls                                     #查看当前目录
ftp> cd pub                                 #切换到pub目录
ftp> get test.txt                           #下载文件到当前Windows本地目录
ftp> cd pub
250 Directory successfully changed.
ftp> ls
ftp> get test.txt                           #获取目录中的文件下载到电脑

在这里插入图片描述

ftp> put test4.txt                          #下载文件到服务端本地目录   
[root@xiaolei pub]# ls
test1.txt  test.txt
[root@xiaolei pub]# cat test1.txt
hello[root@xiaolei pub]#

6.11 匿名用户权限过高,存在安全隐患,设置本地用户验证访问ftp,禁止匿名用户登录

6.11.1 创建本地用户并设置密码

[root@xiaolei ftp]# useradd zhangsan
[root@xiaolei ftp]# useradd lisi
[root@xiaolei ftp]# echo ‘123123’ | passwd --stdin zhangsan
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully.
[root@xiaolei ftp]# echo ‘123123’ | passwd --stdin lisi
Changing password for user lisi.
passwd: all authentication tokens updated successfully.

6.11.2 编辑本地用户访问配置

[root@xiaolei ~]# vi /etc/vsftpd/vsftpd.conf
local_enable=Yes        		 #启用本地用户
anonymous_enable=NO     	     #关闭匿名用户访问
write_enable=YES        		 #开放服务器的写权限(若要上传,必须开启)
local_umask=077          		 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)

6.11.3 对本地用户访问切换目录进行限制
添加、切换目录的限制配置 :

[root@xiaolei ~]# vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES   		#将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES		#允许被限制的用户主目录具有写权限
systemctl restart vsftpd        #重启配置

6.11.4 黑名单和白名单的使用

在安装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用户注销掉即可
[root@xiaolei ~]# cd /etc/vsftpd/
[root@xiaolei vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@xiaolei vsftpd]# cat user_list
[root@xiaolei vsftpd]# vim /etc/vsftpd/user_list
news
uucp
operator
games
nobody
zhangsan             ###zhangsan加入白名单
[root@xiaolei vsftpd]# systemctl restart vsftpd

在这里插入图片描述

7、补充 :vlan作用、网络相关查询指令

7.1 vlan的作用

隔离广播域
方便管理
帮助合理使用IP

7.2 网络相关查询指令

ifconfig
traceroot
nslookup
nmap
netstat
ping
tcpdump

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值