#任务背景
为了最大程度的保护公司内网服务器的安全,公司内部有一台服务器做跳板机。运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。由于开发人员有时候需要通过跳板机登录到线上生产环境查看一些业务日志,所以现在需要运维人员针对不同的人员和需求对==账号密码进行统一==管理,并且遵循权限最小化原则。
#任务要求
跳板机上为每个开发人员创建一个账号,并且只能在指定的目录里管理自己的文件。
线上生产服务器,禁止使用root用户远程登录。
线上生产服务器sshd服务不允许使用默认端口,防止黑客通过端口扫描。
线上生产服务器上开发人员使用的账号code用户的密码使用工具随机生成。
#任务拆解
跳板机上为开发人员==创建用户==及公共==目录==供开发人员使用,并做好权限控制(粘滞位)
所有线上生产服务器==搭建ssh服务==
对于ssh服务根据需求进行配置
禁止root用户远程登录
更改默认端口
线上生产服务器创建code用户,并安装工具来生成随机密码
#涉及知识点
用户权限管理(旧知识点)
==ssh服务配置(新知识点)==
生成随机密码工具(新知识点)
#课程目标
了解ssh服务的认证方式
==能够禁止root远程登录==
==能够更改ssh服务的默认端口==
熟练使用相关客户端工具,如ssh远程登录,scp远程拷贝文件
#理论储备
##一、什么是服务
运行在操作系统后台的一个或者多个程序,为系统或者用户提供特定的服务
可靠的,并发的,连续的不间断的运行,随时接受请求
通过交互式提供服务
##二、服务架构模型
B/S(browser/server) 浏览器/服务器
概念:这种结构用户界面是完全通过浏览器来实现,使用http协议
优势:节约开发成本
C/S(client/server)客户端/服务器
概念:指的是客户端和服务端之间的通信方式,客户端提供用户请求接口,服务端响应请求进行对应的处理,并返回给客户端
优势:安全性较高,一般面向具体的应用
B/S:
1、广域网,只需要有浏览器即可
2、一般面向整个互联网用户,安全性低
3、维护升级简单
C/S:
1、专用网络、小型局域网,需要具体安装对应的软件
2、一般面向固定用户,安全性较高
思考1:
我们通过网络是如何找到我们想要访问的服务的?
IP(提供服务的服务器)+Port(找到相应的服务)
##三、端口号设定
说明:端口号只有整数,范围是从0 到65535
• 1~255:一般是知名端口号,如:ftp 21号、web 80、ssh 22、telnet 23号等
• 256~1023:通常都是由Unix系统占用来提供特定的服务
• ==1024~5000==:客户端的临时端口,随机产生
• 大于5000:为互联网上的其他服务预留
思考2:
如何查看系统默认的注册端口?
文件共享服务:==FTP、SMB、NFS==
域名管理服务:==DNS==
网站服务:==Apache(httpd)==、Nginx、Lighttpd、IIS
邮件服务: Mail
远程管理服务:==SSH==、telnet
动态地址管理服务:DHCP
##五、SSH服务概述
熟悉Linux的人那肯定都对SSH不陌生。ssh是一种用于安全访问远程服务器的协议,远程管理工具。它之所以集万千宠爱为一身,就是因为它的安全性。那么它到底是怎么样来保证安全的呢?到底是如何工作的呢?
首先,在讲SSH是如何保证安全的之前,我们先来了解以下几个密码学相关概念:
###1、加密算法(了解)
####㈠ 对称加密算法(DES)
Jack想要给Harry发送信息一个信息A,为了安全起见,Jack使用一种加密算法,比如给信息通过加一个数字B得到一个新的数字C,然后以公开的方式发送给Harry
Harry接受到数字C后,通过减去一个数字B得到最终的真正的信息A
Jack发送给Harry的信息A称为明文;加密后的信息C称为密文;加密用的B称之为密钥
加密算法(方法)可以很复杂,不一定是加和减,也可以是乘和除等等
以上过程中,加密和解密的秘钥是同一个密钥B
总结:
发送方使用==密钥==将==明文数据==加密成==密文==,然后发送出去
接收方收到密文后,使用==同一个密钥==将密文解密成明文进行读取
####㈡ 非对称加密算法(RSA)
首先Harry生成一对有相互关系的密钥对,比如e(公钥)和f(私钥);其中公钥是可以公开给所有人的,私钥必须Harry本人私自留存,不得泄露。
当Jack发送请求时,Harry会把自己的公钥e发送给Jack
Jack拿着Harry的公钥e通过一种加密算法将信息A加密成密文C,以公开的方式发送给Harry
Harry收到密文C后,通过自己本地留存的私钥f将密文解密成最终的信息A
以上过程中,加密使用的是公钥e,解密使用的是私有f;使用不同的秘钥加解密
发送方使用接收方发送过来的==公钥==将==明文数据==加密成==密文==,然后发送出去
接收方收到密文后,使用自己本地留存的==私钥==将密文解密成明文进行读取
对称加密算法与非对称加密算法区别
对称加密
使用==同一个密钥==进行加密和解密,密钥容易泄露
==加密速度快==,效率高,==数据传输==速度==快==,安全性较==低==
非对称加密
使用==不同的密钥==(公钥和私钥)进行加密和解密
==加密速度==远远==慢==于对称加密,==数据传输==速度==慢==,安全性较==高==
问: 了解了加密算法,那SSH到底是如何保证数据安全的呢?
答:SSH服务有两种认证方式,分别是基于用户名密码认证和密钥对认证
SSH客户端向SSH服务端发起一个登录请求
SSH服务端将自己的公钥发送给SSH客户端
注意:如果是第一次访问,则提示以下内容:
SSH客户端使用服务端发过来的公钥将自己的密码加密并且发送给SSH服务端
SSH服务端收到SSH客户端发过来的加密密码后使用本地留存的私钥进行解密
SSH服务端将解密出来的密码和<code>/etc/shadow</code>文件里的用户密码对比认证
SSH服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令
###3、 ==SSH介绍总结==
SSH是Linux下远程管理的工具,相比Telnet安全,运维人员必备的神器!
SSH的全称Secure Shell,安全的shell,是Client/Server架构,默认==端口号为22,TCP协议==
SSH其实用于商业,而OpenSSH即为开源的,在Linux中默认安装
##六、SSH服务配置
###1、搭建所有服务的思路
需求:禁止==root用户==远程登录
#任务解决方案
##1. 创建用户并授权
注意:在跳板机上完成jumper-server
注意:在生产服务器server端完成
##3. 更改默认端口
端口默认更改为:10086
##4. 用户密码随机
注意:在线上生产环境中创建一个开发人员专用的账号
#补充扩展
##1. ssh客户端工具
##2. scp客户端工具