一.DHCP的工作原理
1.DHCP的理念
- DHCP称为动态主机配置协议
- 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
2.使用DHCP的好处
(1)减少管理员的工作量。
(2)避免输入错误的可能。
(3)避免IP地址冲突。
(4)当更改IP地址段时,不需要重新配置每个用户的IP地址。
(5)提高了IP地址的利用率。
(6)方便客户端的配置。
3.DHCP的分配方式
(1)自动分配:分配到一个IP地址后永久使用。
(2)手动分配:由DHCP服务器管理员专门指定IP地址。
(3)动态分配: 使用完后释放该IP,供其它客户机使用。
4.DHCP的工作过程
4.1什么是DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程。
4.2DHCP的租约过程分为四个步骤
过程:
(1)客户端搜索服务端(discover报文),dhcp的服务器方式为广播。
(2)服务端向客户端响应;
(3)从地址池选一个可用的IP地址打上标记,以offer广播的形式发出去;
(4)客户端(request)方式发送给服务端,第一个响应的服务端去发;
(5)确认(ACK),提供可用的IP地址和租期信息。
4.3重新登陆
DHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。
4.4更新租约
(1)当DHCP服务器向客户机出租的P地址租期达到50%时,就需要更新租约。
(2)客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
二.使用DHCP动态配置主机地址
1.DHCP服务
(1)为大量客户机自动分配地址,提供集中管理。
(2)减轻管理和维护成本、提高网络配置效率。
2.可分配的地址信息主要包括
(1)网卡的IP地址、子网掩码。
(2)对应的网络地址、广播地址。
(3)默认网关地址。
(4)DNS服务器地址。
3.DHCP服务器软件
(1)CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86 64.rpm
(2)DHCP软件包的主要文件
- 主配置文件: /etc/dhcpd.conf
- 执行程序: /usr/sbin/dhcpd、/usr/sbin/dhcrelay
4.DHCP配置
关掉防火墙和selinux保护
4.1安装DHCP服务
4.2找到配置文件
4.3将配置文件复制到安装的空文件中
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
4.4修改配置文件
vim /etc/dhcp/dhcpd.conf ————————进入编辑文件
将以下图中的信息
变更为
systemctl restart dhcpd——————重新启动服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33
随机地址获取成功
三.网络服务——FTP
1.FTP
- 文本传输协议,网络上控制文件双向传输,客户端和服务端可以实现传输,
- 有不同操作系统的FTP,但都是遵守同一种协议
- 使用的协议是TCP,用端口进行通信——20、21
- 20端口的作用:建立数据连接,传输连接数据
- 21是控制连接,传输FTP的控制命令
2.FTP数据连接有两种方式
- 主动模式:服务器主动对客户端发起连接
- 被动模式:服务器被动对客户端等待数据连接,客户端主动去连接服务器
2.1主动模式的过程
客户端去连接服务器,建立控制连接21,客户端(提供数据传输接口)随机选择一个未使用的端口,告知服务器使用这个端口进行数据连接,服务器通过控制连接把请求发送到指定的端口。
2.2被动模式的过程
客户端去连接服务器,建立控制连接21,服务器(提供数据传输端口)随机选择一个端口,作为数据连接,数据传送,服务器告知客户端,使用服务器指定的端口进行数据连接和数据传输。
2.3被动模式的特点
被动模式使用的更多,更容易穿越防火墙,注在实验的环境下关闭防火墙
四.svftpd的安装和配置
1.匿名用户可以登录上传文件
1.1svftpd安装
rpm -qc vsftpd————检查vsftpd安装包是否存在,存在即不需要安装
yum install -y vsftpd ————yum 安装vsftpd
1.2svftpd文件备份
cd /etc/vsftpd
ls————切换到安装好vsftpd目录下查看文件
cp vsftpd.conf vsftpd.conf.bak ——————将vsftpd的配置文件进行备份
1.3修改svftpd文件的配置,让匿名用户拥有访问本机和各种权限
vim /etc/vsftpd/vsftpd.conf——————进入配置
1.4重启vsftpd服务,关闭安全防护
[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0
1.5给匿名用户赋权并写测试文件
chmod 777 /var/ftp/pub/ ——————这是匿名用户的默认根目录
echo ‘hello world!’ > test.txt——————测试文件
1.6匿名访问测试
在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
1.6.1匿名访问测试 建立ftp连接
ftp 192.168.198.99
- 匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd ————匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls ——————查看当前目录
1.6.2服务器文件下载到本地电脑
ftp> cd pub ————切换到pub目录ftp> get文件名,下载文件到当前Windows本地目录
250 Directory successfully changed.
ftp> ls
ftp> get test.txt ————获取目录中的文件下载到电脑
ftp> ls
1.6.3本地传送到服务器
ftp> put test6.txt
存在的缺点:匿名用户权限过高,存在安全隐患
2.限制匿名用户登录
3.系统普通用户登录权限
[root@localhost vsftpd]# cat /etc/passwd————查看用户
3.2限制系统用户只能在家目录
[root@localhost vsftpd]# systemctl restart vsftpd——重启服务
五.账号的权限控制
白名单:只有允许在名单上才可以登录——更安全
黑名单:在此名单上不允许登录
1.设置黑名单
vim vsftpd.conf————————进入配置文件
userlist_enable=YES ——启用user_list用户列表文件
userlist_deny=YES ——添加为黑名单,禁止user_list名单上的用户进行访问
systemctl restart vsftpd————重启
vim user_list ————进入添加一个用户
systemctl restart vsftpd——————重启服务
windows测试:连接失败
2.设置白名单(开启白名单,仅允许user_list上的用户登录)
vim vsftpd.conf
systemctl restart vsftpd
windows测试:连接成功
在列表中的白名单可以登录
没在白名单内不可以登录
3.打开root的访问权限
默认root用户禁止使用ftp登录
vim ftpusers ————————进入取消root用户