系列文章目录
` 提示:仅用于个人学习,进行查漏补缺使用。
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地址的关键机制。这一过程可以分为以下四个主要步骤:
-
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网卡截图如下
- 步骤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;
# 此配置块在此结束
}
步骤6:重启网卡,启用dhcp服务
systemctl restart network ###重启网卡
systemctl restart dhcpd ###重启dhcp服务
systemctl status dhcpd ###查看dhcp服务状态
步骤7:新开一台虚拟机进行仅主机操作
全部要主机模式
把static改成dhcp
- CentOS7-2,作为dhcp客户机,其ens33网卡配置如下
- **并关闭其防火墙**
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
步骤8:刷新网卡,通过DHCP获取IP
systemctl restart network
ifconfig ens33
PS:windows也同理【系统关闭防火墙设置DHCP】
步骤9:查看租约
less /var/lib/dhcpd/dhcpd.lease
二.补充
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服务器的配置通常通过修改服务器的配置文件进行,如vsftpd的服务器配置文件通常位于
-
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目录下查看文件
- 3.备份配置文件
cp vsftpd.conf vsftpd.conf.bak //将vsftpd的配置文件进行备份
- 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 | 允许删除、重命名、覆盖等操作。需添加。 |
- 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,密码为空,直接回车即可完成登录
- get获取.txt文件
- 9.在windows端创建windows.txt文件,并写入“this is windows server”。
- 10.要put命令上传至ftp服务器,可在CenOS7-1查看结果
- 存在的缺点:匿名用户权限过高,存在安全隐患
- 11.设置本地用户验证访问ftp
设置本地用户可以访问ftp,禁止匿名用户登录
- _添加普通用户zhangsan、lisi并设置密码‘123’_
- 12.更改vsftpd的配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
- 13.重新启动vsftpd服务,而后ftp匿名和用户名登录测试
对本地用户访问切换目录进行限制
- 14添加、切换目录的限制配置 :
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
systemctl restart vsftpd #重启vsftpd服务
- 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服务
- 张三不能输入密码,李四可以登录。【张三已被加入黑名单】
- PS
### 可以在windows输入文件同步:
ftp://lisi@192.168.101.2
lisi
123
小结:
FTP是一个用于文件传输的重要协议,尽管在某些安全性要求较高的场景中可能需要更好的替代方案,但它仍然在许多应用场景中发挥着重要作用。【例如可做yum仓库】