DHCP工作原理
DHCP服务器的配置
DHCP客户端的使用
DHCP(动态主机配置协议):通常应用在大型的局域网络环境中
主要作用是集中管理、分配ip地址,使网络环境中的主机动态的获取IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。给内部网络,供应商自动分配IP地址;给用户,内部管理员作为所有计算机的中央管理手段
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。
对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67
DHCP 的优点
降低了配置和部署设备时间,减轻管理和维护成本,提高网络配置效率
降低了发生配置错误的可能性
可以集中化管理设备的IP地址分配
提高IP的利用率
DHCP的分配方式
自动分配:分配到一个ip地址后永久使用
手动分配:由DHCP服务器管理员专门指定ip地址
动态分配:使用完后释放该ip,供其他客户机使用
可分配的地址信息主要包括:
1.网卡的ip地址、子网掩码;2.对应的网络地址、广播地址;3.默认网关地址;4.DNS服务地址
DHCP的租约过程:客户机从DHCP服务器获得ip地址的过程称为DHCP的租约过程
步骤:第一步:客户端在网络中搜索服务端(通过发送一个dicover报文寻找DHCP的服务器),是通过广播的方式进行大量搜寻,并且等待响应
第二步:服务器向客户端响应服务(其中是通过发送offer报文,以广播的方式进行响应,另外:华为的路由为单播方式)。
第三步:客户端向服务端发送服务请求(其中是通过发送request报文以广播的形式,只给第一个响应自己的服务端发送服务请求)。
第四步:服务端向客户端提供确认可用的IP和租期信息(以广播形式,回复ACK报文)
客户机与服务器断开后:
第五步:客户端进行重新登录,发送一个以包含之前DHCP服务端分配的IP地址信息的renew Request报文,当服务端收到该请求后,会尝试让DHCP客户端继续使用该IP地址。并回答一个ACK报文。
第六步:DHCP获取到的IP地址都有一个租约,租约过期后,服务端将回收该IP地址,所以如果客户端如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,当当前租约期限过了一半后,客户端都会发送renew报文来续约租期
更新租约
1.当DHCP服务器向客户机出租的ip地址租期到达50%时,就需要更新租约;2.客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
安装DHCP服务器
DHCP服务器软件:centos光盘中的dhcp-4.2.5-47.el7.centos.86_64.rpm
DHCP软件包主要内容:1.主配置文件:/etc/dhcpd.conf 2.执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
DHCP场景应用实验
实验目的:在单位时,运用DHCP协议设置地址池,让公司员工的主机都能自动识别,并且分发范围内的IP地址 【67服务端 68客户端】
1.服务端和客户端网络适配器都改为 自定义 VMnet 0
[root@localhost ~]# rpm -q dhcpd 【服务端 检查是否安装dhcpd】
未安装软件包 dhcpd
2.创建本地yum源
3.[root@localhost yum.repos.d]# yum -y install dhcp 【安装dhcp】
4.[root@localhost dhcp]# cd /usr/share/doc/dhcp-4.2.5
[root@localhost dhcp-4.2.5]# ls
dhcpd6.conf.example dhcpd.conf.example ldap
5.[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp
6.[root@localhost dhcp-4.2.5]# cd /etc/dhcp
[root@localhost dhcp]# ls
dhclient.d dhcpd6.conf dhcpd.conf.example
dhclient-exit-hooks.d dhcpd.conf scripts
[root@localhost dhcp]# rm -rf dhcp.conf
7.[root@localhost dhcp]# cp dhcpd.conf.example dhcpd.conf 【备份】
8.[root@localhost dhcp]# vim dhcpd.conf
9.[root@localhost dhcp]# systemctl stop firewalld
[root@localhost dhcp]# setenforce 0
[root@localhost dhcp]# systemctl restart dhcp
10.进入客户端[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
网络服务之ftp:
ftp的简介
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
同时,它也是一个应用程序(Application)。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
ftp的数据连接模式
主动模式:服务器主动发起数据连接 【弊端:必须关闭防火墙】
被动模式:服务器被动等待数据连接
实验ftp传输和获取
默认配置下,匿名用户登录 vsftpd 服务后的根目录是 /var/ftp/;
系统用户登录 vsftpd 服务后的根目录是系统用户的家目录
1.[root@localhost dhcp]# rpm -q vsftpd 【检查vstcpd是否安装】
未安装软件包 vsftpd
[root@localhost dhcp]# yum -y install vsftpd 【本地yum源安装】
2.[root@localhost dhcp]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak20230305【设置备份文件防止修改错误】
[root@localhost vsftpd]# ls
ftpusers vsftpd.conf vsftpd_conf_migrate.sh
user_list vsftpd.conf.bak20230305
3.[root@localhost vsftpd]# vim vsftpd.conf 【修改配置文件】
4. [root@localhost vsftpd]# systemctl restart vsftpd 【重启服务】
关闭防火墙,setenforce=0
5.[root@localhost pub]# chmod 777 /var/ftp/pub/ 【给ftp文件传输过程的默认保存目录 777权限】
6.[root@localhost pub]# echo "123" > abc.txt 【pub目录下创建abc.txt并写入123】
[root@localhost pub]# ls
abc.txt
7.进入新建Windows7系统 网络配置也设为自定义VMnet 0,并关闭防火墙
8.win+r cmd
9.cd pub 【进入pub目录】
10.在Windows中查看下载的文件
11.在Windows创建文件cd.txt进行上传到服务端
12.在服务端查看 [root@localhost pub]# cat cd.txt
123456[root@localhost pub]# 【123456位cd.txt文件内容】
但是存在缺点:匿名用户权限过高,存在安全隐患。可以设置本地用户可以访问ftp,禁止匿名用户登录
1.新建用户[root@localhost ~]# useradd ky1
[root@localhost ~]# echo 123 | passwd --stdin ky1
更改用户 ky1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2.[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf 【修改配置文件】
[root@localhost vsftpd]# systemctl restart vsftpd 【重启服务】
3.进入Windows命令 此时匿名用户已经被禁止登陆
对本地用户访问切换目录进行限制
1.[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# systemctl restart vsftpd 【重启服务】
2.进入windows,此时用户ky1只可以访问根目录和家目录
修改匿名用户、本地用户登录的默认根目录
1.[root@localhost var]# mkdir -p /var/www/html 【创建文件夹】
2.[root@localhost vsftpd]# vim vsftpd.conf 【修改配置文件】
local_root=/var/www/html 【添加三行】
chroot_local_user=YES
anon_root=/var/www/html
3.[root@localhost /]# systemctl restart vsftpd 【重启服务】
4.[root@localhost html]# chmod 777 /var/www/html
黑名单和白名单的使用
在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list (其中就是为了我们更好利用黑名单和白名单的手册)。
黑名单:在黑名单上标记的用户,是我们禁止访问的对象。
白名单:在白名单上标记的用户是我们允许访问的对象,从某种意义上来讲,白名单比黑名单的制定更为严格和安全
user_list 本身就是黑名单,加入了之后就不能登录
userlist_enable=YES #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用
也可以userlist_enable=NO 不启用黑名单;此时不用添加白名单userlist_deny=NO