DHCP和FTP工作原理

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 虚拟机。

实验思路:

  1. Linux虚拟机关闭防火墙和selinux。

  2. 安装 dhcp 软件包,并查看配置文件。

  3. 将Linux虚拟机的网络模式改成仅主机模式。修改网卡配置文件,之后重启网络服务。

  4. 编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段、地址池、网关地址。之后重启dhcp服务。

  5. 验证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也是一个黑名单,这样就是一个双重黑名单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值