DHCP与FTP服务

117 阅读7分钟

DHCP原理与配置

DHCP服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

用途:

1.给内部网络或网络服务供应商自动分配ip地址

2.给用户或者内部网络管理员作为对所有计算机中央管理的手段

使用DHCP的好处

减少管理员的工作量

避免输入错误的可能

避免ip地址的冲突

当更改ip地址段时,不需要重新配置每个用户的IP地址

提高了ip地址的利用率

方便客户端的配置

DHCP的典型应用模式如下:

在网络中架设一台专用的DHCP服务器,复制集中分配各种网络地址参数(主要包括ip地址、子网掩码、广播地址、默认网关地址、cos服务器地址)﹔其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与 DHCP服务器进行通信,完成自动配置过程。

DHCP

采用UDP作为传输协议

两个端口:67(服务端)68(客户端)

DHCP的ip地址自动获取工作原理:

第一步:客户端在网络中搜索服务器

客户端通过广播发送DHCP Discover报文寻找服务器端

第二步:服务器向客户端响应服务

服务器端通过广播(华为路由器使用单播,思科、linux、windows使用的是广播)发送DHCP offer报文向客户端提供ip地址等网络信息,从IP地址池中挑选一个尚未分配的IP地址分配给客户端

华为的DHCP服务器会按照由大到小的顺序从ip池里分配ip

第三步:客户端向服务器发出服务请求

如果有多台DHCP服务器向该客户端发来DHCP-offer报文,客户端只接受第一个收到的DHCP-offer报文并提取I地址,然后客户端通过广播发送 Request报文告知服务器端本地选择使用该IP地址

第四步 :服务器向客户端提供服务

服务器通过广播(华为路由器使用单播,思科、linux、windows使用的是广播)发送DECP Ack报文告知客户端IP地址是合法可用的,并在选项字段中增加Ip地址的使用租期信息

(5)重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息

(6)更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

DHCP服务器 可以通过 路由器或者Windows、linux系统进行配置

服务器架构: X86_64 inter 64位架构的服务器

linux_adm64

DHCP服务器

CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm
DHCP软件包的主要文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd、 /usr/sbin/dhcrelay

实验:设置DHCP服务器并分配地址

搭建DHCP服务器

关闭防火墙,关闭开机自启动

Snipaste_2022-08-12_14-03-04.png

安装DHCP服务

Snipaste_2022-08-12_14-08-41.png

配置DHCP服务器

yum install -y dhcp
cd /etc/dhcp/
ls
cat dhcpd.conf
cd /usr/share/doc/dhcp-4.2.5/
ls
cat dhcpd.conf.example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
Snipaste_2022-08-12_14-08-12.png

将虚拟机的网络模式改成仅主机模式

Snipaste_2022-08-12_15-50-08.png Snipaste_2022-08-12_15-50-42.png

修改网卡配置文件,之后重启服务

[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33  #修改网卡配置文件
[root@localhost ~]#systemctl restart network  #重启网络服务
[root@localhost ~]#ifconfig ens33 

Snipaste_2022-08-12_15-48-03.png

设置全局配置参数

例子:
vim /etc/dhcp/dhcpd.conf         #设置全局配置参数
default-lease-time 21600;        #默认租约为6小时,单位为秒
max-lease-time 43200;            #最大租约为12小时,单位为秒
option domain-name "benet.com";  #指定默认域名
option domain-name-servers 202.106.0.20,202.106.148.1; #指定DNS服务器地址
ddns-update-style none;          #禁用DNS动态更新
Snipaste_2022-08-12_14-29-42.png
subnet网段声明
设置网段(要和虚拟网络编辑器中的保持一致)、地址池、网关地址
例子:
(作用与整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.59.0 netmask 255.255.255.0 {      #声明要分配的网段地址
range 192.168.59.100 192.168.59.200;                #设置地址池
option routers 192.168.59.2;                   #指定默认网关地址
}
​
option domain-name-servers 8.8.8.8;          #指定DNS服务器地址
​
systemctl restart dhcpd  #重启dhcp服务
Snipaste_2022-08-12_15-53-59.png
验证Windows10虚拟机是否获取DHCP服务器分配的地址

Windows10虚拟机将网络类型修改为”仅主机模式“

释放ip地址,之后重新获取IP地址

Snipaste_2022-08-12_15-50-42.png Snipaste_2022-08-12_16-03-10.png
验证linux虚拟机是否获取DHCP服务器分配的地址

linux虚拟机将网络类型修改为”仅主机模式“

Snipaste_2022-08-12_15-50-42.png
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart  network
ifconfig
Snipaste_2022-08-12_16-07-48.png Snipaste_2022-08-12_16-09-01.png

host主机声明(给单机分配固定的IP地址)

例:
host hostname {                        #指定需要分配固定IP地址的客户机名称
hardware ethernet 00:0C:29:7B:B5:43;   #指定该主机的MAC地址
fixed-address 192.168.59.188;           #指定保留给该主机的IP地址
}
Snipaste_2022-08-12_16-37-20.png Snipaste_2022-08-12_16-37-55.png Snipaste_2022-08-12_16-36-18.png

FTP服务——用来传输文件的协议

概述:

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信:

20端口用于建立数据连接,并传输文件数据 21端口用于建立控制连接,并传输FTP控制命令

数据连接模式

FTP数据连接分为主动模式和被动模式

主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接

FTP服务的相关配置

安装FTP服务
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm  #rpm安装
yum install -y vsftpd                    #yum一键安装
rpm -qc vsftpd                           #查看ftp配置目录
cd /etc/vsftpd/                          #切换到ftp配置目录下
进行原配置文件的备份:
cp vsftpd.conf{,.bak}
或 cp vsftpd.conf vsftpd.conf.bak           #进行原配置文件的备份
Snipaste_2022-08-12_17-18-12.png Snipaste_2022-08-12_17-19-04.png
实验:
1.匿名用户访问的FTP服务
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  #允许删除、重命名、覆盖等操作。需添加
Snipaste_2022-08-12_17-23-01.png Snipaste_2022-08-12_17-23-59.png
为匿名访问FTP的根目录下的pub子目录设置最大权限,以便匿名用户上传数据
chomd 777 /var/ftp/pub

Snipaste_2022-08-12_17-26-16.png

开启服务,关闭防火墙和安全机制
systemctl start vsftpd    #开启服务
systemctl stop firewalld  #关闭防火墙
setenforce 0              #关闭系统安全机制

Snipaste_2022-08-12_17-26-34.png

匿名测试:
建立ftp连接
ftp 192.168.80.10 #匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd        #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls         #查看当前目录
ftp> cd pub     #切换到pub目录
ftp> get 文件名  #下载文件到当前Windows本地目录
ftp> put 文件名  #上传文件到ftp目录
ftp> quit       #退出

在Windows中输入cmd打开命令提示符

进行ftp文件传输,123.txt下载到Windows本地目录,将Windows桌面上aaa.txt上传到ftp目录

Snipaste_2022-08-12_17-30-26.png Snipaste_2022-08-12_17-33-10.png

Snipaste_2022-08-12_17-33-30.png

2.设置本地用户验证访问ftp,禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
vim /etc/vsftpd/vsftpd.conf      #修改配置文件
local_enable=Yes                 #启用本地用户
anonymous_enable=NO              #关闭匿名用户访问
write_enable=YES                 #开放服务器的写权限(若要上传,必须开启)
local_umask=077                  #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES            #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES       #允许被限制的用户主目录具有写权限

Snipaste_2022-08-12_17-50-09.png

Snipaste_2022-08-12_18-07-57.png Snipaste_2022-08-12_17-47-13.png Snipaste_2022-08-12_18-06-03.png
3.修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html         #anon_root 针对匿名用户
local_root=/var/www/html        #local_root 针对系统用户

使用user_list用户列表文件

vim /etc/vsftpd/user_list
lisi #末尾添加lisi用户
Snipaste_2022-08-12_18-31-22.png
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES      #启用user_list用户列表文件
userlist_deny=NO         #设置白名单,仅允许user_list用户列表文件的用户访问。默                           认为YES为黑名单,禁用
设置黑名单 YES
Snipaste_2022-08-12_18-33-54.png Snipaste_2022-08-12_18-34-37.png
设置白名单 NO
Snipaste_2022-08-12_18-32-00.png Snipaste_2022-08-12_18-33-39.png