一、Docker
1.概念
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,容器时完全使用沙箱机制,互相之间不会任何接口。
2.Docker与VM区别
Docker | VM | |
架构和资源消耗 | 轻量级,资源消耗少,共享主机的操作系统内核和其他资源。 | 模拟完整的计算机系统,相对来说比较笨重,启动时间较长。 |
隔离性和安全性 | Docker容器之间可以互相通信,但默认是隔离的。 | 每个虚拟机有自己独立的操作系统,隔离性比Docker更强,虚拟机之间通信需要通过网络协议进行,通常会使用虚拟机交换机或网络桥接。 |
部署和扩展 | 可以通过Docker容器快速创建多个相同或不同的服务实例。 | 通常用于运行需要完全独立环境的应用或服务,如运行不同的操作系统的应用或需要较高隔离性的应用场景。 |
性能 | 性能损失较小,不需要模拟硬件。 | 性能损失较大,需要模拟整个操作系统。 |
镜像:可以理解为软件安装包,里面包含着该程序所需的环境插件库等信息。
容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的。
仓库:仓库是集中存放镜像文件的场所。
3.Docker安装
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce
或者使用一键安装
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
4.Docker换源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["配置 Docker 使用国内镜像源"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4.Docker基础使用
4.1查看docker基本信息
命令 | 解释 |
docker -v | 查看docker版本 |
service docker status | 查看docker运行状态 |
service docker start | 启动docker |
service docker stop | 停止docker |
systemctl enable docker | 开机启动docker服务 |
4.2Docker基础使用
命令 | 解释 |
docker search | 查找镜像 |
docker pull 仓库地址:tag | 获取镜像 |
docker images | 查看本地镜像 |
docker rmi 镜像名或镜像ID | 删除本地镜像 |
docker inspect 镜像名或镜像ID | 查看镜像详情 |
4.3容器相关命令
命令 | 解释 |
docker run [参数] 镜像名或id 命令 | 创建、启动容器并执行相应的命令 |
docker ps -a | 查看所有运行中的容器 |
docker stop 容器名或容器id | 停止运行中的容器 |
docker kill 容器名或容器id | 强制关闭 |
docker start 容器名或容器id | 启动容器 |
docker rm 容器名或容器id | 删除容器 |
5.Docker 启动环境
拉取镜像
docker pull wordpress:latest 或 docker pull wordpress:6 docker pull [镜像地址]:[tag]拉取不同的版本
查看镜像
启动容器
参数解释:
-d 放置后台运行
-p 指定端口映射[宿主机]:[容器]
-P 随机端口映射
查看容器状态
访问网站
http://192.168.89.152:8080/wp-admin/setup-config.php?step=1&language=zh_CN
进入容器
语法:docker exec -it [容器ID] /bin/bash
docker exec -it 2935b6f24643 /bin/bash
停止容器
语法:docker stop [容器ID]
docker stop 2932b624643
6.Docker-Compose
简介:
Compose 适用于定义和运行多容器Docker应用程序的工具,通过Compose,可能使用yml文件来配置应用程序所需要的服务然后使用一个命令,就可以从yml文件配置中创建并启动所有服务。
compose安装
常用命令
命令 | 解释 |
docker-compose build | 自动构建和重构服务 |
docker-compose up -d | 启动环境并在后台运行 |
docker-compose down -v | 关闭并删除整个环境 |
docker-compose ps | 查看启动的容器 |
7.Vulhub搭建
概念:
Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞浮现变得更加简单,让安全研究者更加专注于漏洞原理本身。
将vulhub-master.zip文件解压到当前目录
PS:vulhub压缩包需要复制进虚拟机需要复制粘贴,拖拽可能会丢失文件,如果无法复制,可以在ssh连接软件中移到虚拟机中并解压。
进入到漏洞目录内
漏洞复现
本机访问漏洞
报错处理:
8.常用命令总结
1.docker开源应用容器引擎
2. 仓库、镜像、容器 (仓库:存放镜像的位置、镜像:已经打包好的程序环境、容器:启动后的镜像)
3. docker images # 查看docker镜像
4. docker rm # 删除镜像
5. docker run # 启动容器
6. docker search # 搜索镜像
7. docker pull # 拉取镜像
8. docker ps -a # 查看启动的容器
9. docker kill 强制结束、docker stop 停止
10. docker-compose 是一个基于docker的容器管理工具
11. docker-compose up -d 启动
12. docker-compose stop 停止
13. docker-compose rm 删除容器
14. docker-compose ps 查看容器运行状态
15.docker exec -it my_container /bin/bash docker进入容器终端的命令
端口映射:将本机的某个端口,映射到容器的某个端口中,访问本机的端口即可访问到容器服务
进入docker容器: docker exec -it 容器ID /bin/bash
vulhub : 一个基于docker和docker-compose的漏洞环境集合(将漏洞环境编写为.yml文件使用docker-compose一键启动)
二、防火墙
1.概念:
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合,它是不同网络安全域之间的一系列部件的组合。
它是不同网络和网络安全域之间信息的唯一出入口,能根据企业的安全策略控制(允许、拒绝、检测)出入网络的信息流,且本身具有较强的抗攻击能力。
逻辑上防火墙是一个分离器、限制器和分析器,它能有效地监控内部网和Internet之间的任何活动,保证了内部网络的安全。
2.防火墙的功能
- 过滤进出网络的数据包。
- 对进出网络的行为做出日志记录,并提供网络使用情况的统计数据,实现对网络存取和访问的监控审计。
- 对网络攻击进行检测和警告。
- 有些防火墙会提供VPN、NAT等功能
3.防火墙分类
- 软件防火墙:学校、上前台电脑的网吧,普通计算机+通用的操作系统(如:linux)
- 硬件防火墙:基于专门的硬件平台,具有速度快、处理能力强、性能高、价格比较昂贵的特点。
4.上网卡接口
- 外网接口:用于连接Internet网;
- 内网接口:用于连接代理服务器或内部网络;
- DMZ接口(非军事化区):专用于连接提供服务的服务器群。
5.firewalld预定区域表
区域 | 区域中包含的初始规则 |
trusted(受信任区) | 允许所有流入的数据包 |
public(公开) | 拒绝流入的数据包,允许外出及服务ssh、dhcpv6-client,新添加的网络接口缺省的默认区域。 |
drop(丢弃) | 任何流入网络的包都被丢弃,不作出任何响应,除非与输出流量数据包相关。只允许流出的网络连接。 |
dmz(隔离区) | 拒绝流入的数据包,除非与输出流量数据包相关 ,允许外出及服务ssh。 |
6.firewalld-cmd常用参数
7.实操:将web服务器允许同网段内访问
firewall-cmd --get-zone-of-interface=ens33 # 查看ens33所在防火墙区域
firewall-cmd --set-default-zone=dmz # 设置默认在dmz区
firewall-cmd --permanent --zone=dmz --change-interface=ens33 # 将ens33添加至
dmz默认区域
firewall-cmd --permanent --zone=dmz --add-service=http # 允许dmz区
http流量通过
firewall-cmd --reload # 重启加载测策略