C03S02-Linux网络之DHCP和FTP

一、DHCP

1. DHCP概述

DHCP(动态主机配置协议)是一种网络管理协议,用于自动分配IP地址给网络中的设备。在Linux系统中,DHCP服务允许用户自动管理IP地址,而不用手动为每个设备分配静态IP地址。

DHCP服务采取C/S架构,也就是客户端/服务端架构;C指Client、客户端,S指Server,服务端。客户端是某种功能的使用者,服务端是某种功能的提供者。对应在DHCP中,客户端是请求IP地址,服务端是分配IP地址。

DHCP使用的是UDP协议,服务端端口是UDP/67,客户端端口是UDP/68。

与手动分配IP地址相比,DHCP具有以下优点:

  1. 减少配置和部署设备的时间。
  2. 降低配置网络的错误发生率。
  3. 集中管理IP的分配。
  4. 提高了IP地址的使用率。

2. DHCP的工作原理

  1. 客户端初始化时,以广播的形式发送一个discover报文,询问网络当中的DHCP服务端。
  2. 服务端收到客户端发送的报文后,会回复给客户端一个包含分配的IP地址和其他网络信息的offer报文。
  3. 客户端接收第一个到达的offer报文,然后发送request报文。
  4. 服务端收到request报文后,会回复一个ACK报文给客户端,报文中包括分配的IP地址和租期等相关信息。
  5. 客户端收到ACK报文,使用服务端使用的IP地址。

当租期过去一半的时候,客户端会发送一个包含之前分配的IP地址等信息的request报文给服务端,从而请求续约。服务端收到报文后,如果同意续约会发送一个ACK报文。如果服务器没有回应,则会继续使用原有IP直到到期;而如果服务端一直没收到续约请求,则会在到期后将分配的IP地址释放回地址池。

租期到期后,客户端下线。此时客户端不会再广播查找服务端,而是直接发送一个request报文给原分配IP地址的服务端来请求IP地址。

3. DHCP配置实验

3.1 Ubuntu系统

  1. 在DHCP服务端安装DHCP服务。

    apt -y install isc-dhcp-server
    
  2. 编辑DHCP配置文件/etc/dhcp/dhcpd.conf,在文件中设置服务端的的IP地址池。具体配置内容如下:

    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.20 192.168.1.21;
      option routers 192.168.1.254;
    }
    
    • subnet 192.168.1.0:子网网段。
    • netmask 255.255.255.0:子网掩码。
    • range 192.168.1.20 192.168.1.21:地址池IP的范围,分别是起始IP、终止IP。
    • option routers 192.168.1.254:默认网关。
  3. 保存配置文件后,重启DHCP服务。

    systemctl restart isc-dhcp-server
    
    
  4. 修改客户端的网卡配置文件,启用DHCP分配。如果原先设置了静态IP,就需要将IP地址注释或删除。

    network:
      ethernets:
        ens33:
          dhcp4: true
    
  5. 保存网卡配置文件后,重启网络服务。

    systemctl restart systemd-networkd
    
  6. 查看客户端的IP。

    ip a
    
  7. 还可以通过查看服务端日志文件,来查看DHCP的IP地址分配过程。

    tail -f /var/log/syslog
    

3.2 CentOS系统

  1. 关闭防火墙和安全防护。

    systemctl stop firewalld
    
    setenforce 0
    
  2. 安装DHCP服务。

    yum -y install dhcp
    
  3. 复制DHCP配置文件模板。

    cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    
  4. 编辑DHCP配置文件/etc/dhcp/dhcpd.conf,在文件中设置服务端的的IP地址池。具体配置内容如下:

    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.10 192.168.1.11;
      option routers 192.168.1.254;
    }
    
    • subnet 192.168.1.0:子网网段。
    • netmask 255.255.255.0:子网掩码。
    • range 192.168.1.10 192.168.1.11:地址池IP的范围,分别是起始IP、终止IP。
    • option routers 192.168.1.254:默认网关。
  5. 保存配置文件后,重启DHCP服务。

    systemctl restart dhcpd
    
  6. 修改客户端的网卡配置文件,启用DHCP分配。如果原先设置了静态IP,就需要将IP地址注释或删除。

    BOOTPROTO=dhcp
    
  7. 保存网卡配置文件后,重启网络服务。

    systemctl restart network
    
  8. 查看客户端的IP。

    ip a
    
  9. 还可以通过查看服务端日志文件,来查看DHCP的IP地址分配过程。

    tail -f /var/log/messages
    

二、FTP

1. FTP概述

FTP(File Transfer Protocol、文件传输协议),它是一种用于在网络上进行文件传输的协议。FTP主要用于在客户端和服务器之间传输计算机文件,用户可以通过FTP协议进行文件的上传、下载和管理。和DHCP协议相同,也是C/S架构。FTP有两个端口:TCP/20端口和TCP/21端口;TCP/20端口由于传输数据,TCP/21端口由于控制连接。

FTP数据连接的方式有两种,主动模式和被动模式。被动模式下,服务端打开一个端口等待客户端连接;而主动模式下,客户端打开一个端口等待服务端连接。

2. 黑名单和白名单

黑名单(Blacklist)和白名单(Whitelist)是两种常用的访问控制列表,用于确定哪些用户、IP地址等实体被允许或禁止执行某些操作或访问某些资源。在实际使用中,出于保护数据安全的目的,主要是采用白名单策略,也就是拒绝大部分、允许少部分。

FTP的黑名单和白名单是用于控制用户对FTP服务器访问权限的两种列表。黑名单是一个包含被禁止访问FTP服务器的用户的列表。当FTP服务器配置为使用黑名单时,列表中的用户将无法登录到FTP服务器。白名单是一个包含被允许访问FTP服务器的用户的列表。当FTP服务器配置为使用白名单时,只有列表中的用户可以登录到FTP服务器。下面是以fsftpd服务为例的FTP黑名单和白名单配置流程。

  • 黑名单配置:
    1. 配置文件vsftpd.conf中的userlist_enable设置为YES。
    2. 设置userlist_deny=YES以启用黑名单。
    3. 在user_list文件中添加需要禁止的用户名。
    4. 重启FTP服务以应用更改。
  • 白名单配置:
    1. 配置文件vsftpd.conf中的userlist_enable设置为YES。
    2. 设置userlist_deny=NO以启用白名单。
    3. 在user_list文件中添加需要允许的用户名。
    4. 重启FTP服务以应用更改。

3. FTP配置实验

  1. 下载vsftp,vsftp是一款基于ftp协议的开源软件。

    apt -y install vsftpd
    
  2. 编辑vsftp的配置文件/etc/vsftpd.conf,修改文件的以下内容。

    listen=YES
    listen_ipv6=NO
    anonymous_enable=YES
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    
    • listen=YES:设置为YES表示vsftpd基于IPv4协议在端口21上监听连接。
    • listen_ipv6=YES:表明不基于IPv6协议监听连接,和IPv4一起开启会导致冲突,从而使得FTP服务无法正常启动。
    • anonymous_enable=YES:允许FTP匿名用户访问。
    • write_enable=YES:允许用户(包括匿名用户)上传文件到FTP服务器
    • anon_upload_enable=YES:允许匿名用户上传文件。
    • anon_mkdir_write_enable=YES:允许匿名用户创建新目录。
  3. 保存文件后,重启vsftpd服务。

    systemctl restart vsftpd
    
  4. 在/srv/ftp目录下创建一个public目录,设置目录权限为777。

    mkdir /srv/ftp/pblic
    chmod -R 777 /srv/ftp/pblic
    
    • 安装完FTP服务后,会自动创建一个/srv/ftp目录和一个ftp用户。/srv/ftp目录是默认的ftp根目录,ftp用户也就是匿名用户。
    • 要想实现匿名用户登录,还需要在ftp目录下创建一个拥有可写权限的目录。匿名用户的根目录不允许写,即使是匿名用户也不能直接在ftp目录下写入,所以需要创建一个子目录。
  5. 打开其他主机的终端,比如WIndows系统的CMD界面。输入下面的命令,使用匿名用户登录,进行ftp连接。

    C:\Users\31093>ftp 192.168.1.128
    连接到 192.168.1.128。
    220 (vsFTPd 3.0.5)
    200 Always in UTF8 mode.
    用户(192.168.1.128:(none)): ftp
    331 Please specify the password.
    密码:
    
    230 Login successful.
    ftp>
    
  6. 要想设置FTP的白名单,还需要在vsftp服务的配置文件中写入以下内容:

    userlist_file=/etc/vsftpd.userlist
    userlist_enable=YES
    userlist_deny=NO
    
    • userlist_file=/etc/vsftpd.userlist:设置用户名单文件的路径。
    • userlist_enable=YES:启用用户名单。
    • userlist_deny=NO:启用白名单。

    在设置的用户名单文件中加入白名单用户。

    ljj
    

    配置完成后,重新启动服务。

    systemctl restart vsftpd
    

    查看登录效果,白名单设置成功。

    C:\Users\31093>ftp 192.168.1.128
    连接到 192.168.1.128。
    220 (vsFTPd 3.0.5)
    200 Always in UTF8 mode.
    用户(192.168.1.128:(none)): ljj
    331 Please specify the password.
    密码:
    
    230 Login successful.
    ftp> quit
    221 Goodbye.
    
    C:\Users\31093>ftp 192.168.1.128
    连接到 192.168.1.128。
    220 (vsFTPd 3.0.5)
    200 Always in UTF8 mode.
    用户(192.168.1.128:(none)): ftp
    530 Permission denied.
    登录失败。
    ftp>
    
  7. 要设置黑名单,就是将配置文件中的userlist_deny属性值修改为YES。在用户名单加入的用户名,就是黑名单拒绝访问的用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值