首页 > 其他分享 >云基础基础

云基础基础

时间:2024-11-17 15:44:23浏览次数:3  
标签:容器 Git -- 基础 git 使用 docker

**免责声明**学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。B站地址:泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频

在过去,搭建一个应用程序可真是个大工程。得去购买服务器,租赁机房,进行安装、上架,还得拧螺丝、接网线。但如今,情况大不相同啦。现在很多基础设施都已经云化了。我们可以直接找像阿里云、腾讯云这样的云服务器厂家,购买一些云服务器,短短几分钟就能申请下来。基于这些云服务器,我们可以轻松地进行各种各样的应用部署

一、云架构介绍

不管是防御系统还是进攻系统,强大的底层技术基础都是必不可少的。

从防御的角度来看,只有了解底层技术,我们才能知道如何构建防御体系。从进攻的角度讲,了解底层技术才能发现漏洞并开发出漏洞利用的方法。所以呢,攻击者和防御者都必须清楚对方的运作方式。

以前构建系统的时候,需要购买设备、租用数据中心机柜,然后搭建基础设施。随着处理器的不断进化,虚拟机出现了。它能把一台机器的资源分成多台机器来使用,提高了资源利用率,变得更加灵活可拓展,实现了从裸机基础设施到虚拟化基础设施的转变。接着,容器化技术登场,进一步提高了效率,实现了服务器、网络和存储的虚拟交付。现在,我们把最新一代的基础设施称为“”,它可不是单一的技术哦,而是众多技术的集合

二、云服务

云 是一种 IT 基础设施系统,它将资源的创建抽象在容错、地理分布和可扩展的物理基础设施之上。并以服务器的形式按需求交付能力,非常易于使用,可以自动创建服务器、存储、网络等等。云基础架构必须稳定,不能频繁出现中断。地理分布的云基础设施能够提高容错能力,而且云必须能够快速扩展,以满足各种需求。

有很多公有云服务商,比如 Amazon Web Services(AWS)、Azure、Google(GCP),还有华为云、腾讯云、阿里云等等。组织可以使用 OpenStack 等工具在自己的数据中心搭建私有云,或者一部分业务运行在私有云中,一部分运行在公有云中。

三、云分类

1. 基础设施即服务(IaaS):就像提供建筑材料和工具,让你可以自己搭建房子。

2. 平台即服务(PaaS):类似有了基本框架的房子,你只需进行装修和布置。

3. 软件即服务(SaaS):直接给你一个装修好可以直接入住的房子。

四、共享责任模型

云服务在提供容错和扩展的同时,也在不同层面增加了安全性的模糊性。如果是 AWS 程序漏洞导致大量数据泄露,AWS 不承担责任。但如果 AWS 数据中心物理安全遭到破坏,客户数据被盗取,AWS 就得承担责任。

五、云架构构

1. 虚拟化:把一台机器的资源分成多台虚拟机器,多台裸机汇集形成资源集群,隔离资源的使用,灵活且可扩展资源池。它抽象了硬件安装过程,但仍有改进空间,并非专为云而生。技术栈的灵活性和可定制性提升,促使了容器的出现。

2. 容器:容器就像一个个独立的小空间,允许开发人员与堆栈各部分灵活交互,实现按需生成服务,提高网络抽象程度,方便应用迁移扩展,更高效地使用资源。系统管理和网络工程可以外包给其他公司。云是多种技术的集合。

六、云架构设计

1. 组件选择:确定架构(这很难改),选择绑定或非绑定组件,可以自己开发、用开源的或者购买。云原生组件是为分布式系统设计的,CNCF 认证不是必须的,要安全编码,部分是开源的。

2. 基础设施即代码(IaC):包括引导介质(Packer)、安装系统(Terraform)、自动配置(Ansible)、状态强制(Monit)。

七、集成部署

使用持续集成和持续交付(CICD)管道来构建环境,包括测试、测量和扫描代码更改的自动化测试和部署(GitOps)。要做到有弹性可靠,即任何单点故障都有故障转移或其他机制,让业务能持续提供(这叫冗余)。全球负载均衡(GSLB,比如智能 DNS、GTM)能解决客户单访问的单点故障隐患。还要平衡控制,控制保护系统免受漏洞和内部攻击的组件,应平衡控制和可用性。

八、云设计模式

云架构设计不必从头开始,采用已检验的设计模式是最佳选择。

1. 微服务架构:为松散耦合、模块化服务而设计,微服务协同工作完成整体服务。每个服务都可以独立修改代码和重用,提高系统整体弹性和容错。大多数云利用微服务架构,云原生应用被构建充当微服务,便于水平扩展。安全优势是每个微服务应用强化、隔离,单一服务漏洞对整体系统影响小。缺点是调试更复杂,需要跨不同服务跟踪事务;性能可能有短板。

2. 零信任架构:对资源的每个请求都需要验证来源已授权,然后授权短期访问(用令牌)。实现零信任架构的一种常见方法是 Open ID Connect(OIDC)联盟访问。授权处于活动状态时可以访问任何联合内服务。密码重置是针对零信任架构的常见攻击方式。

九、安全控制

1. 网络控制:传统架构用防火墙实现网络控制,云环境网络抽象为 SDN、SD WAN。SDN 可以对不同的接口(如 API 或 GUI)设置网络规则。通过 mTLS 不仅能加密流量,还能对客户端进行身份验证,有证书才能访问微服务。不正确的访问管理可导致权限提升,甚至破坏整个基础设施。现代访问管理系统多使用令牌进行访问控制,提供对服务的短时访问权。JWT 通常用于访问云端资源,伪造和破解密码是常见攻击手段。另一种类型的权限控制机制是强制访问控制 MAC。

2. 身份管理:企业通常用 AD、LDAP 进行身份管理。AWS IAM 是身份和访问管理的公共云服务。Google 联盟认证 OIDC 经常用于 2FA。云身份提供者(IdP)作为真实身份来源,是更安全的解决方案,比如 Azure AD

十、容器与云

虚拟化中每个 VM 需要运行自己的操作系统,大大增加了总体开销。容器化是更现代的架构,容器共享内核与硬件,更快、更小、更高效。容器是对虚拟化的补充,而非取代。容器的系统开销更小,可以进一步分离应用组件,比如搜索、登录、查询、订单功能分开。容器使用映像作为模板生成,映像相当于计算机硬盘。容器使用不同发行版文件加载内核,运行容器。

在 kali 上生成 CentOS 7 容器,可以使用 Docker 这个流行的容器化工具。步骤如下:

- 确保安装了 Docker。如果没有安装,可以使用以下命令安装:“sudo apt-get update”,这个命令让系统检查有没有新软件。“sudo apt-get install docker.io”,安装 Docker。

- 拉取 CentOS 7 的官方 Docker 镜像:“sudo docker pull centos:7”。

- 运行一个基于 CentOS 7 镜像的容器:“sudo docker run -it --name my_centos7 centos:7 /bin/bash”

运行一个基于CentOS 7镜像的容器:

两命令都会创建, exit 退出后仍然存在,可使用 docker ps -a 进行查看

在这个命令中:

-it 选项允许你交互式地运行容器,会占用终端。OR或者 -d 选项(Detached,分离

模式),容器就会在后台启动并运行,不会占用当前终端

--name my_centos7 给容器命名为my_centos7。

执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行

CentOS 7系统的命令。

centos:7 指定使用的镜像。

/bin/bash 启动容器后执行的命令,这里启动了bash让你能与容器交互

创建 Apache 容器后台运行:“docker container run -d --rm -p 8080:80 httpd”。

使用curl 命令查看,出现it works表示创建成功

docker的基本命令使用:

 - “docker container ls”:查看所有容器。
 - “docker exe -it 899 /bin/bash”:进入特定容器。
 - “dochker container stop 899”:停止容器。
 - “dock container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。
 - “docker container run -d --rm --network host -v /home/user/webroot/:/usr/local/apache2/htdocs/ httd”:侦听宿主机 80 端口运行容器。
 - “docker ps”:列出所有正在运行的容器。
 - “docker top <container_name_or_id>”:查看特定容器的进程信息。

Podman 是 Docker 的替代产品,无守护进程。
 - “sudo podman run -d --r-m --network host httpd”:运行容器。
 - “podman pod create --name wha”:创建空 pod。
 - “podman run -d --pod wha httpd”:在 pod 中运行容器。
 - “podman run -pod wha -it alpine/curl /bin/asho”:在 pod 中运行可找东西的工具并互动。

十一、git

Git 是一个分布式版本控制系统,用于跟踪文件的变化,方便团队协作开发软件项目。可以记录文件的历史版本,允许开发者在不同版本之间切换,并且可以合并多个开发者的修改。

十二、安装 Git

在不同操作系统上安装方法不同:

- Windows:从 Git 官方网站下载安装程序进行安装。

- macOS:使用 Homebrew 等包管理器安装 Git。

- Linux:通过系统的包管理器安装 Git,如在 Ubuntu 上使用“sudo apt-get install git”。

十三、Git 的安全措施

1. 保护 Git 仓库很重要,因为它通常包含项目的源代码和敏感信息。

2. 使用强密码,为 Git 远程仓库设置强密码,避免简单或常用密码。

3. 限制访问权限,只授予必要人员访问权限,可使用 Git 提供的权限管理功能或第三方工具。

4. 避免提交敏感信息,若不小心提交,可使用“git rm --cached <文件名>”从暂存区删除,然后“git commit --amend”修改上一次提交。创建“.gitignore”文件,列出不需要被跟踪的文件和目录。

5. 确保与 Git 远程仓库的通信是加密的,可以使用 SSH 或 HTTPS 协议进行通信。

6. 定期进行安全审计,检查 Git 仓库的安全性,包括权限设置、敏感信息泄露等,可使用第三方工具。

7. 定期备份 Git 仓库,防止数据丢失,可以使用 Git 的备份工具或复制到其他存储设备中。

8. 克隆仓库:“git clone <远程仓库地址>”。

9. 处理冲突:当多个开发者同时修改同一个文件时,可能会出现冲突,在合并分支时需要手动解决冲突,然后提交更改。

10. 创建分支:“git branch <分支名>”。

11. 切换分支:“git checkout <分支名>”。

12. 合并分支:在一个分支上完成工作后,可将其合并到另一个分支。先切换到目标分支,然后使用“git merge <源分支名>”命令进行合并。

13. 初始化仓库:“git init”。

14. 添加文件:“git add <文件名>”或“git add.”。

15. 提交更改:“git commit -m "提交说明"”。

16. 查看状态:“git status”。

17. 查看历史记录:“git log”。

标签:容器,Git,--,基础,git,使用,docker
From: https://blog.csdn.net/2301_78098553/article/details/143832559

相关文章

  • 网络安全之Linux基础
    目录文件管理创建空文件删除文件新建目录删除目录重命名文件移动文件软链接(SymbolicLink)硬链接(HardLink)搜索文件基本语法优点缺点基本语法常用选项示例注意事项功能基本语法常用选项示例输出解释注意事项功能基本语法常用选项示例输出解释注意......
  • c++入门基础后续
    1.缺省参数缺省参数是指在声明或定义的同时给上指定的一个缺省值,在调用函数是如果没有传指定的实参那么就会用这个缺省值。缺省参数分为全缺省和半缺省。全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃......
  • 学期2024-2025-1 学号20241421 《计算机基础与程序设计》第8周学习总结
    作业信息|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP||这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08||这个作业的目标|功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行||作......
  • 2024-2025-1 20241329 《计算机基础与程序设计》第八周学习总结
    作业信息作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08作业目标:功能设计与面向对象设计;面向对象设计过程;面向对象语言三要素;汇编、编译、解释、执行作业正文:https://www.cnblogs.com/inca......
  • CSP/信奥赛C++语法基础刷题训练(11):洛谷P5743:猴子吃桃
    CSP/信奥赛C++语法基础刷题训练(11):洛谷P5743:猴子吃桃题目描述一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。第n......
  • CSP/信奥赛C++语法基础刷题训练(12):洛谷P1047:[NOIP2005 普及组] 校门外的树
    CSP/信奥赛C++语法基础刷题训练(12):洛谷P1047:[NOIP2005普及组]校门外的树题目描述某校大门外长度为lll的马路上有一排树,每两棵相邻的树之间的间隔都是......
  • 《计算机基础与程序设计》第九周
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体方面>作业正文...本博客链接教材学习内容总结《计算机科学概论》第九章第九......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第八周作业这个作业的目标功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行作业正文https://www.cnblogs.c......
  • # 学期2024-2025-1 学号(20241405) 《计算机基础与程序设计》第8周学习总结
    作业信息|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP||这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08||这个作业的目标|功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行||作......
  • 2024-2025-1 20241423 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计]https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标功能设计与面向对象设计、面向对象设计过程、面向对象语言三......