1 了解DHCP服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67
1.2 DHCP优点
降低了配置和部署设备时间;
方便客户端的配置
降低了发生配置错误的可能性;
可以集中化管理设备的IP地址分配。
提高IP的利用率
1.3 作用:
给内部网络,供应商自动分配IP地址
给用户,内部管理员作为所有计算机的中央管理手段
1.4 DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完后释放该IP,供其它客户机使用
2 DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程,分为4个步骤:
1、客户机请求IP地址(DHCP Discover)
- 当一个DHCP客户机启动时,客户机还没有IP地址,客户机要通过DHCP获取一个合法的地址。
- 此时DHCP客户机以广播方式发送
DHCP Discover
报文发现信息来寻找DHCP服务器。
2、服务器响应(DHCP Offer)
- DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。
- 如果有,DHCP服务器将此IP地址做上标记,加入到
DHCP Offer
的消息中,然后广播一则DHCP Offer
消息(包含IP地址、子网掩码、DNS、租期等)。
3、客户机选择IP地址(DHCP Request)
- DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址, 之后广播发送
DHCP Request
消息,通告给局域网中所有的DHCP服务器,它选择了哪个DHCP服务器的哪个IP以及租约期限。 - 让未被选中的DHCP服务器,把未使用的地址收回。同时发出IP地址的DHCP服务器将该地址保留,该地址就不能再分配给另一个DHCP客户机。
4、服务器确定租约(DHCP Ack)
- DHCP服务器接收到DHCP Request消息后,以
DHCP ACK
消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。 - 当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化。
重新登录:
- DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的
DHCP Request
请求信息。
更新租约:
- 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约;
- 客户机直接向提供租约的服务器发送
DHCP Request
包,要求更新现有的地址租约。 - 当租约到期前,DHCP服务器还没有收到客户机的请求,就会释放该IP地址
3 使用 DHCP动态配置主机地址
可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
DHCP共有八种报文
4 DHCP配置文件
DHCP服务的配置文件为/etc/dhcp/dhcpd.conf
实验:设置DHCP服务器并分配地址
dhcp服务机和客户机的可以同为NET模式,或者同时为仅主机模式
要注意修改网段
将Linux虚拟机设置成DHCP服务器,自动分配IP地址给Windows10 虚拟机。
实验思路:
-
Linux虚拟机关闭防火墙和selinux。
-
安装 dhcp 软件包,并查看配置文件。
-
将Linux虚拟机的网络模式改成仅主机模式。修改网卡配置文件,之后重启网络服务。
-
编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段、地址池、网关地址。之后重启dhcp服务。
-
验证Windows10虚拟机虚拟机能否获取DHCP服务器分配的IP地址。
步骤1、Linux虚拟机关闭防火墙和selinux。
步骤2、安装 dhcp 软件包,并查看配置文件。
步骤3 将Linux虚拟机的网络模式改成仅主机模式。修改网卡配置文件,之后重启网络服务
网卡修改图见如下
步骤4:编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段、地址池、网关地址。之后重启dhcp服务。
配置文件为空,复制模板到覆盖原来的配置文件
编辑dhcpd.conf
步骤五:验证虚拟机虚拟机能否获取DHCP服务器分配的IP地址
同样设为主机模式,修改网卡 模式改为dhcp
重新启动网,显示DHCP动态地址分配成功
FTP概述
FTP (File Transfer Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
FTP作用与工作原理
FTP作用
作用:Internet.上用来传送文件的协议。
VSFTP全称(very secure FTP )
VSFTP:== C/S架构==
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据,20端口只有在传输数据时才会打开
21端口用于建立控制连接,并传输FTP控制命令
FTP工作原理
FTP有两种工作模式,一种方式叫做Standard (也就是Active, 主动方式),一种是Passive(也就是PASV,被动方式)。
[root@xiayan ~]# systemctl start vsftpd #开启服务
[root@xiayan ~]# systemctl enable vsftpd #设置开机自启动
2.配置备份
[root@xiayan ~]# cd /etc/vsftpd/
[root@xiayan vsftpd]# cp vsftpd.conf vsftpd.conf.bak #备份配置文件
3.2匿名用户登录
修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //开启匿名用户访问,默认开启
write_enable=YES //开放服务器的写权限,默认开启
anon_umask=022 //设置匿名用户上传数据的权限(反掩码)
anon_upload_enable=YES //允许匿名用户上传文件,默认注释
anon_mkdir_write_enable=YES //允许匿名用户创建(上传)目录,默认注释
anon_other_write_enable=YES //允许删除、重命名、覆盖等操作,需自行添加
[root@xiayan ~]# chmod 777 -R /var/ftp/pub/ //更改pub权限,否则匿名用户无法进行读写
进入客户端连接:ftp +IP地址
利用FTP上传和下载文件
anonymous_enable=YES #允许匿名用户登录FTP
anon_upload_enable=YES #打开匿名用户的上传权限
anon_world_readable_only=no #开启匿名用户的下载权限
anon_mkdir_write_enable=YES #打开匿名用户创建目录的权限
anon_other_write_enable=YES ##打开匿名用户删除和重命名的权限(如需要,需自己添加)
anon_umask=022 #匿名用户的掩码
ftp目录的权限设置
默认情况下,ftp的根目录为/var/ftp,为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。但是我们要匿名上传文件,需要“other”用户的写权限。
正确的做法:
在/var/ftp中建立一个upload(名子自己起吧)文件夹,将个文件夹权限设置为777(视具体需要自己设),在upload这个文件夹中,匿名用户可以上传文件、创建文件夹、删除文件等。
一般至此,便实现vsftpd匿名用户的上传下载了。如果还不行,就是下面的问题。
匿名用户权限过高,存在安全隐患
解决办法:
设置本地用户验证访问ftp
设置本地用户可以访问ftp,禁止匿名用户登录
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
对本地用户访问切换目录进行限制
添加切换目录的限制配置 :
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对本地用户
黑名单和白名单的使用
在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list (其中就是为了我们更好利用黑名单和白名单的手册)。
黑名单:在黑名单上标记的用户,是我们禁止访问的对象。
白名单:在白名单上标记的用户是我们允许访问的对象,从某种意义上来讲,白名单比黑名单的制定更为严格和安全。
vim /etc/vsftpd/vsftpd.conf
userlist_enable=yes #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问
同样ftpusers也是一个黑名单,这样就是一个双重黑名单