linux网络 dhcp ftp原理及其配置

DCHP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型得局域网网络环境中 主要作用是集中地管理 分配ip地址 使网络环境中得主机动态得获得ip地址 Gatway地址 DNS服务器地址等信息 并能够提升地址得使用率 

DHCP 作为应用层协议 它依靠并且使用着传输层中udp协议

对于DHCP中分为客户端和服务端 客户端用的端口为68 服务端得端口为67

DHCP的优点

降低了配置和部署设备时间

降低了发生配置错误的可能性

可以集中化管理设备的ip地址分配

提高ip的利用率

作用 :

给内部网络 供应商自动分配ip地址

给用户 内部管理员作为所有计算机的中央管理手段

DHCP 的工作原理

DHCP的交互过程总共有六个步骤组成 前四步是完成交互的主要过程

*第一步 客户端在网络中搜索服务端(通过发送一个dicover报文寻找DHCP的服务器)是通过广播的方式进行大量搜寻 并等待响应

第二步 服务器向客户端响应服务 (其中是通过发送offer报文 以广播的方式进行响应 另外 华为的路由为单播方式)

第三步 客户端向服务端发送服务请求 (其中是通过发送request报文以广播的形式只给第一个响应自己的服务段发送服务请求)

第四步 服务端向客户端提供确认可用的IP和租期信息 (以广播形式 回复ACK报文)

了解 

第五步 客户端进行重新登录 发送一个包含之前DHCP服务端分配的IP地址信息的renew Request报文 当服务端收到请求后 会尝试让DHCP客户端继续使用该IP地址 并回答一个ACK报文

第六步 DHCP获取到的IP地址都有一个租约 租约过期后 服务端将回收该IP地址 所以如果客户端想继续使用该IP地址 则必须更新租约 更新的方式就是当前租约期限过了一半后 客户端都会发送renew报文来续约租期

DHCP的安装

检查并且安装dhcp有关软件包

rpm -qc dhcp

安装

yum -y install dhcp

查看

less dhcpd.con

cd /usr/share/doc/dhcp-4.2.5/4

查看

less dhcpd.conf.example

配置之前先备份

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcp.conf

配置

vi /etc/dhcp/dhcpd.conf

设置DHCP全局配置参数

option domain-name "benet.com";         #指定默认域名
option domain-name-servers ip1,ip2;     #指定 DNS 服务器地址
default-lease-time n;                    #默认租约为 n,单位为秒
max-lease-time x;                         #最大租约为 n ,单位为秒
ddns-update-style none;                 #禁用 DNS 动态更新

配置书写 
#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.233.0 netmask 255.255.255.0 {            #声明要分配的网段地址
  range 192.168.233.30 192.168.233.50;                #设置地址池
  option routers 192.168.233.2;                    #指定默认网关地址

#host主机声明(给单机分配固定的 IP 地址)
host hostname {                                        #指定需要分配固定 IP地址的客户机名称
  hardware ethernet 00:c0:c3:22:46:81;                #指定该主机的 MAC地址
  fixed-address 192.168.4.100;                        #指定保留给该主机的 IP地址
}

实验目的:在单位时,运用DHCP协议设置地址池,让公司员工的主机都能自动识别,并且分发范围内的IP地址
作为服务器的主机不用调整网卡的dhcp状态
第一步: 在Linux虚拟机中安装好dhcpd软件应用
第二步:将相对应的example复制到dhcpd.conf中 
第三步:关掉防火墙和selinux保护

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

第四步:修改网卡配置文件,重启网络服务。
vim /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network
 
ifconfig ens33

第五步:编辑 dchp全局配置文件,设置好对应的网络池
vim /etc/dhcp/dhcpd.conf
 
subnet 192.168.233.0 netmask 255.255.255.0{
 range 192.168.233.30  192.168.233.50
  option routers 192.168.233.2
}

第六步:重启网卡,启用dhcp服务
systemctl restart network
systemctl restart dhcpd
systemctl status dhcpd

第七步:新开一台虚拟机进行仅主机操作
全部要主机模式
把static改成dhcp

第八步:刷新网卡,通过DHCP获取IP
systemctl restart network
ifconfig ens33

第九步:查看租约
less /var/lib/dhcpd/dhcpd.lease

FTP

ftp的简介
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输同时,它也是一个应用程序(Application)

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令

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

主动模式(Active Mode):在主动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,客户端会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,然后告知服务器使用该端口进行数据连接。服务器通过控制连接将数据连接请求发送到客户端的指定端口,建立数据连接并进行数据传输。

被动模式(Passive Mode):在被动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,服务器会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,并将该端口告知客户端。客户端通过控制连接向服务器指定的端口发起数据连接,建立数据连接并进行数据传输。

主动模式和被动模式在数据连接的建立方式上有所区别,主要涉及客户端和服务器之间数据连接的建立和传输。在网络环境复杂或存在防火墙的情况下,被动模式通常更容易穿越防火墙,因此在实际应用中被广泛使用。

passive 开启被动模式
prompt  开启主动模式

默认被动模式

svftpd的安装和配置
svftpd安装
rpm -qc vsftpd    //检查vsftpd安装包是否存在,存在即不需要安装
yum install -y vsftpd   //yum 安装vsftpd

cd /etc/vsftpd

备份

cp vsftpd.conf vsftpd.conf.bak   //将vsftpd的配置文件进行备份

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #开启匿名用户访问。默认已开启
local_enable=YES                #允许系统用户进行访问
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。

让匿名用户拥有访问本机和各种权限 
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES     #允许删除、重命名、覆盖等操作。需添加

重启vsftpd服务,关闭安全防护
[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0

chmod 777 /var/ftp/pub/  这是匿名用户的默认根目录
echo 'hello world!' > test.txt

#匿名访问测试
在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,禁止匿名用户登录
[root@localhost ftp]# useradd zhangsan
[root@localhost ftp]# echo '123' | passwd --stdin zhangsan
[root@localhost ftp]# useradd lisi
[root@localhost ftp]# echo '123' | passwd --stdin lisi

vim /etc/vsftpd/vsftpd.conf
local_enable=Yes                 #启用本地用户
anonymous_enable=NO              #关闭匿名用户访问
write_enable=YES                 #开放服务器的写权限(若要上传,必须开启)
local_umask=077                   #可设置仅宿主用户拥有被上传的文件的权限(反掩码)

ftp 192.168.233.21
zhangsan
123
OK

对本地用户访问切换目录进行限制
添加、切换目录的限制配置 :

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES            #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES         #允许被限制的用户主目录具有写权限

systemctl restart vsftpd

C:\Users\DING>ftp 192.168.233.21
连接到 192.168.233.21。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.233.21:(none)): zhangsan
331 Please specify the password.
密码:
230 Login successful.
ftp> cd /etc
550 Failed to change directory.
ftp>

修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html            #anon_root 针对匿名用户
local_root=/var/www/html        #local_root 针对本地用户

黑名单和白名单的使用 
在安装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用户注销掉即可

C:\Users\DING>ftp 192.168.233.21
连接到 192.168.233.21。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.233.21:(none)): zhangsan
530 Permission denied.
登录失败。
ftp> quit
221 Goodbye.

C:\Users\DING>ftp 192.168.233.21
连接到 192.168.233.21。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.233.21:(none)): lisi
331 Please specify the password.
密码:
230 Login successful.
ftp>
张三不能输入密码

也可以在windows输入文件同步:
ftp://lisi@192.168.233.21
lisi
123


rz 文件名 #下载指定文件到服务器
sz 文件名 #把服务器的文件下载到客户端

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值