目录
一、DHCP工作原理
1.1 了解DHCP服务
1.1.1 DHCP基本描述
- DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)
- 由Internet工作任务小组设计开发
- 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数协议
1.1.2 使用DHCP的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免ip地址冲突
- 当更改ip地址段时,不需要重新配置每个用户的ip地址
- 提高了ip地址的利用率
- 方便客户端配置
1.1.3 DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管路员专门指定IP地址
- 动态分配:使用完后释放改IP,供其他客户机使用
1.2 DHCP的租约过程
- 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
- 分为四个步骤
- 客户机请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机需要通过DHCP获取一个合法的地址
- 此时DHCP客户机以广播的方式发送DHCP Discover发现信息来寻找DHCP服务器
- 服务器响应
- DHCP服务器接受来自客户机的请求IP地址信息室时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
- 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP offer消息
- 客户机选择IP地址
- DHCP客户机从接受到的第一个DHCP Offer消息中提取IP地址,发出DHCP Request报文,发出IP地址的DHCP服务器将该地址保留,这样改地址就不能再分配给其他客户机
- 服务器确定租约
- DHCP服务器接受到DHCP Request消息后,以DHCP ACK消息形式向客户机广播成功确认,该消息包含IP地址的有效租约和其他可配置信息
- 当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
- 重新登陆
- DHCP客户机每次重新登陆网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request 请求信息
- 更新租约
- 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
- 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
1.3 使用DHCP动态配置主机地址
- DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
- 可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
1.4 安装DHCP服务器
- CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86 64.rpm
- DHCP软件包的主要文件
- 主配置文件:/etc/dhcpd.conf
- 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
二、DHCP服务器的配置
2.1 实验环境准备
实验环境:
3台机器
centos 7-1 DHCP 服务端 192.168.182.10 (为了实验方便,将此IP定义为该网段的网关)
centos 7-2 DHCP 客户端 自动分配
windows 10 DHCP 客户端 自动分配网络环境:
① Vmnet2(仅主机模式)
② vmware workstation 的虚拟网络编辑器中的DHCP功能必须关闭
③ 确定好Vmnet2 仅主机模式的IP地址段是多少
④ 注意 DHCP服务端的网卡信息的配置(GATEWAY 不要写)系统环境:
① 先安装好DHCP服务,再行修改网络配置(nat-》Vmnet2)
② 或者,修改完网络配置后,配置本地YUM仓库,再行安装DHCP
③ 每台机器,关闭防火墙、核心防护
2.2 实验实战示列
- 修改dhcp服务端网卡配置 固定ip
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- yum install -y dhcp 安装dhcp服务
- 找到dhcp配置文件位置
- cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制文件到优化路径中 进入新路径后可以复制一下源文件做个备份
- vim /etc/dhcp/dhcpd.conf 编辑此配置文件
subnet 192.168.182.0 netmask 255.255.255.0 { #设置地址池网段
range 192.168.182.20 192.168.182.40; #设置地址池范围
option routers 192.168.182.10; #dhcp网关
}
- 重启网卡,启用DHCP服务
- systemctl restart network
- systemctl restart dhcpd
- systemctl status dhcpd
至此dhcp服务端已经配置完成 等待客户端获取ip地址后可查看租约期限
- 查看租约
- less /var/lib/dhcpd/dhcpd.lease
三、DHCP客户端的使用
3.1 centos7客户端
- 配置网卡启动文件为dhcp
- 重启网卡
- 查看ip地址
配置已生效 ip地址为服务端设置的地址池范围内
3.2 windous客户端
- 网络配置 IPv4自动获取
- 查看ip地址
IP地址范围正常 配置生效
四、VSFTP安装与配置
4.1 vsftp 实验环境
- vsftp 实验环境与dhcp一致即可
4.2 vsftp 的安装
rpm -qc vsftpd //检查vsftpd安装包是否存在,存在即不需要安装
yum install -y vsftpd //yum 安装vsftpd
4.3 vsftp 的配置
- 切换到安装好vsftpd目录下查看文件
- 保险起见可以将配置文件先备份一份
cp vsftpd.conf vsftpd.conf.bak
- 编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问。默认已开启
local_enable=YES #允许系统用户进行访问(useradd zhangsan)
write_enable=YES #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。
让匿名用户拥有访问本机和各种权限
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES #允许删除、重命名、覆盖等操作。需添加
- 重启vsftpd服务,关闭安全防护
systemctl restart vsftpd
systemctl stop firewalld
setenforce 0
chmod 777 /var/ftp/pub/ #这是匿名用户的默认根目录
- 匿名访问测试
- 在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
- #建立ftp连接
ftp 192.168.233.21
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub目录ftp> get文件名 #下载文件到当前Windows本地目录
ftp> cd pub
250 Directory successfully changed.
ftp> ls
ftp> get test.txt #获取目录中的文件下载到电脑
ftp> ls
ftp> put test4.txt
- 存在的缺点:匿名用户权限过高,存在安全隐患
- 设置本地用户验证访问ftp
设置本地用户可以访问ftp,禁止匿名用户登录
- 设置本地用户验证访问ftp
useradd zhangsan
echo '123' | passwd --stdin zhangsan
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
- 对本地用户访问切换目录进行限制
- 添加、切换目录的限制配置
chroot_local_user=YES #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
- 黑名单和白名单的使用
- 在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list
(其中就是为了我们更好利用黑名单和白名单的手册)。 - 黑名单:在黑名单上标记的用户,是我们禁止访问的对象
- 白名单:在白名单上标记的用户是我们允许访问的对象,白名单比黑名单的制定更为严格和安全
- 在安装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用户注销掉即可
- user_list 中添加zhangsan进黑名单
客户端被限制访问
总结
本章中要熟悉掌握DHCP中一共几个报文 每个报文是什么 其中的内容又是什么
在实验过程中特别是vsftp每一步修改配置文件都要重启下服务才能生效