如何编写Shell脚本
从这里开始书写格式12345678910111213#!/bin/bash# 解释器<<COMMENTAuthor: sujxDate: 2023-09-23Version: 1.0Description: This is my first script.COMMENT# 多行注释echo "Hello World!"# 单行注释 执行方式 脚本没有执行权限 1234[sujx@LEGION:~]$ bash first.shHello World![sujx@LEGION:~]$ source first.shHello World! 脚本有可执行权限 12345[sujx@LEGION:~]$ chmod +x first.sh[sujx@LEGION:~]$ ./first.shHello World![sujx@LEGION:~]$ /home/sujx/first.shHello World! 开启子进程执行 123456789101112131415161718[sujx@LEGION:~]$ cat sleep.sh#!/bin/...
使用Webmin管理DNS
在企业生产实践中,对于经常进行DNS解析变动的测试环境,Bind9的维护是个不大不小的问题。运维开发通常需要提交相关请求之后,还需要SSH到解析服务器上去进行配置修改,就要开xshell然后登陆找配置项进行变更。为了节约脑力和时间,通过已经添加到导航面板的web gui书签跳转到域名管理平台再进行管理就要快捷一点点。 WebMin为了方便管理DNS解析,我们可以使用Google SRE工程师Jamie Cameron开发的Webmin。这个工具是用perl语言编写的很强大的Linux主机管理面板,支持Linux主机环境的通用程序配置,包括Bind、Apache、MySQL等等。这位老哥还编写了管理虚拟化宿主机和类似cpanle的虚拟主机管理web平台。 安装12345678910111213141516# 下载安装脚本curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh# 添加官方repo地址sh setup-repos.sh# 执行安装并安装per...
快速构建实验环境的基础服务
在单机试验环境中,经常需要配置DNS解析、生成SSL证书、保存或者拉取配置脚本,这些操作往往散布到各个节点的实际操作中,较为繁琐且容易出错,所以创建一个虚机镜像来提供统一的服务就是有需求的。以下就是通过在VM上部署实现相关功能的操作实践。 类别 内容 功能 基础架构服务 主机名 infra.contoso.com IP 192.168.10.254 配置 2core 2G mem 40GB disk 承载服务 DNS以及DNS缓存、时间服务、SSL证书生成和下载、git服务、导航页、Ansible控制台、主机管理 包管理安装主机准备基础环境准备主机环境的准备执行准备:RockyLinux9的主机部署 12345678910111213141516171819202122232425# 系统更新dnf makecachednf update -y# 由于主机模板只给了20G硬盘,所以需要扩容dnf install cloud-utils-growpart-0.33-1.el9.x86_64growpart /dev/sda 2lvextend -l ...
Ansible管理平台AWX的部署
概念K3sK3s 是一个轻量级的 Kubernetes 发行版,非常简单易用而且轻量。只需要一个简单的安装脚本即可把 K3s 安装到主机。 AWXAWX是由Redhat运营的Ansible自动化运营平台Ansible Tower的上游项目,是将Ansible的管理和维护通过可视化的WEB GUI来进行展现。借用Ansible Tower的一张图来表示其具体架构:相关的内容可见以下链接: Ansible AWX 由于Ansible AWX平台自v18之后,不在支持单机或者docker部署,要求必须部署到Kubernetes中,为了简化部署环境和步骤,现采用单节点的K3s来作为基础环境部署AWX。 部署环境准备12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879# 本次部署基于RockyLinux 9.2# 主机配置为2core CPU/...
安服仔的自我修养
从首都图书馆无意间翻到的一本工具书《深信服安全服务工程师实战》,我实在惊讶于深信服把售前资料从内部文档库里面输出一个PDF就拿来卖钱了。虽然里面有不少的销售话术和广告推销以及前后重复的内容,但不失其为本好的一次性工具书,对于了解乙方的现阶段企业安全建设的思路还是有帮助的。 风险评估风险评估是对一个事件后者事物可能造成的影响或损失造成的影响或损失的程度进行量化。 评估目的 资产识别 平衡安全风险与成本 风险识别 建设指导 业务保障 评估模型评估方式 自我评估 上级主管或者业务主管发起的、基于法规或标准的强制性检查活动 外协专业安全服务组织进行 评估原则 标准化原则 业务主导原则 规划性原则 保密性原则 最小影响原则 互动性原则 评估方法类别 基于知识的分析方法 定性分析方法 定量分析方法 方法 访谈调研 人工审计 工具扫描 渗透测试 评估范围技术评估范围 物理环境 网络结构 主机及数据系统 应用系统 业务流程 管理评估维度 安全管理制度 文档,包括策略、制度、规程、表格、记录 安全管理机构 安全管理的岗位设置、人员配备、授权和审批、沟通 人员安全管理 信息...
备份系统Bacula的部署和使用
Bacula 是一款开源的跨平台网络备份工具,提供基于企业级的CS的备份解决方案,可以对数据进行备份、恢复、以及完整性校验。 组件 Director:中央控制程序,管理所有组件 Console:管理控制台 Storage Daemon:负责文件的实际存储和读取,同时对接存储硬盘或者磁带 Catalog:数据库,建立备份文件和存储路径建立索引,支持MySQL、PG和SQLite File Daemon:客户端程序,负责执行文件的备份、还原和文件传输 部署准备数据库12345678910111213141516171819202122232425262728293031# 安装dnf makecachednf update -ydnf install -y mariadb mariadb-server mariadb-server# 指定客户端和服务端使用utf8来访问mariadbcat > /etc/my.cnf.d/charset.cnf <<EOF[mysqld]character-set-server = utf8mb4[client]default-...
使用Kind快速部署Kubernetes实验环境
其实就是Docker上面跑了一个Docker 概念Kindkind 即 Kubernetes In Docker,顾名思义,就是将 k8s 所需要的所有组件,全部部署在一个docker容器中,是一套开箱即用的 k8s 环境搭建方案,适用于快速构建本地开发和测试环境。kind 由以下组件构成: Go packages implementing cluster creation, image build, etc. A command line interface (kind) built on these packages. Docker image(s) written to run systemd, Kubernetes, etc. kubetest integration also built on these packages (WIP)kind 使用 kubeadm 创建和启动群集节点。kind 使用 containerd 作为容器运行时,所以弃用 Dockershim 对 kind 没有影响。 部署环境准备1234567891011121314151617181...
CI/CD初步
现在利用已有的k8s环境部署一套CI/CD环境 DevOps理解CI/CD,持续集成和持续交付的基本过程包括如下几个步骤: 软件更新或者迭代——Gitlab 新版软件打包成镜像——Jenkins 新的镜像在k8s中集成——Registry 当代码提交到gitlab之后,会立马触发jenkins将新代码编译成镜像,然后再在kmaster上部署新的镜像。 镜像仓库Registry部署12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849# 部署docker并修改docker启动参数[root@Gitlab ~]# vim /usr/lib/systemd/system/docker.service# 新增--insecure-registry=192.168.10.9:5000 -H tcp://0.0.0.0:2376 ExecStart=/usr/bin/dockerd --insecure-registry=192.168.1...
Kubernetes高级概念
安全管理kubeconfig文件是指用于登陆的文件,默认是指~/.kube/config。这个文件是在刚装好kubernetes集群后按提示复制过来的,它和/etc/kubernetes/admin.conf是一样的,里面包括了集群的地址、admin用户以及各种证书和密钥的信息。创建kubernetes集群时,文件中的admin已被授予最大权限。 123456789101112131415161718192021# 只要有了admin.conf文件就可管理集群[root@kmaster ~]# sz /etc/kubernetes/admin.conf # Windows系统部署kubectl也可管理PowerShell 7.3.7PS C:\Users\root> kubectl get nodes --kubeconfig=admin.confNAME STATUS ROLES AGE VERSIONkmaster Ready control-plane,ma...
「大型网站运维——从系统管理到SRE」
SRE从某种程度上来说是为了适应大型复杂团队中的运维需求而诞生的。SRE是系统管理员、数据库管理员、应用运维工程师、运维工程师、开发工程师的合集。 SRE定位工作着力点 将独立的运维人员由单一的任务承担角色转变为对线上系统稳定性负责的角色 SRE团队必要再技术之外加强自己的沟通、说服能力 SRE团队要注重以产品的角度看运维,而不是简单的完成业务的运维操作需求。 KPI的制订 运维工作项目化 运维项目评审 进度汇报和主动沟通 贡献价值 维持业务高效运作 提升资源利用率 减少业务中断 监控设计监控系统的评价标准 稳定 数据源稳定 网络稳定 数据处理稳定 存储稳定 准确 易用 监控设计的逻辑分析 数据生产 Agent 日志 数据上报 上报协议 推拉模型 数据处理 流处理 数据热点 数据存储 HBase InfluxDB 数据使用 监控数据展示 监控数据报警 多指标和单指标 实时报警和离线报警 对外输出 应用场景 系统监控 CPU 网卡流量 磁盘负载 上下文切换 应用监控 黑盒监控 白盒监控 中间件监控 终端监控 移动端、P...
社会工程概论
Christopher J. Hadnagy ,任social-engineer公司CEO,著名安全专家。其长期经营Podcast(托管于Apple iTunes)的已有国内非官方镜像 基本概念概述 社会工程利用的正是别人的性别偏见、种族偏见、年龄偏见和现状偏见; 任意一种能影响某人采取可能符合或者不符合其最大利益行动的行为,称为社会工程; 社会工程的核心是诱导 社会工程的生理基础: 多巴胺:使人感到愉快、幸福和收到鼓舞的化学物质; 催产素:信任别人或者被别人信任时产生的激素; 大脑的α模式:大脑处于8~13Hz的“白日梦”运动状态; 社会工程的四个攻击向量: 短信诈骗 电信诈骗 网络诈骗 冒充 组合攻击 社会工程金字塔OSINT——设计伪装——规划攻击——发起攻击——汇报 OSINTOSINT意为开源情报,是社工的命脉,是每次行动的出发点和支撑点。 OSINT示例企业 该公司如何使用互联网 该公司如何使用社交媒体 该公司员工可以在互联网上发布什么样的信息,是否由相关政策规定 有多少个供应商 如何收款 如何付款 是否设立客服中心 该公司总部、客服中心或其他分公司的...
VMware虚机通过宿主机的Clash访问外部站点
源起在学习Kubernetes过程中,需要经常调用Github以及拉取镜像。一开始打算使用openwrt配置旁路由,然后使用openclash来实现访问外部。后来在实际搭配过程中发成本太高,本来内存就紧张,还需要单独拉出2G内存给虚机。所以,现在这里采用外部proxy代理的形式来实现正常访问互联网。 开启服务允许局域网访问使用7890端口来提供网络代理服务。 配置访问获取服务IP此处的IP是宿主机的上网IP,而不是VMware Workstation的NAT网关地址。 配置代理直接配置系统代理123456cat >> ~/.bashrc << EOFexport https_proxy=http://192.168.1.10:7890export http_proxy=http://192.168.1.10:7890export all_proxy=socks5://192.168.1.10:7890EOFsource ~/.bashrc 使用脚本来实现代理 创建脚本 setproxy.sh12345678910111213141516171819202...
再访基辅号
这都是第五次来参观基辅号了,相比2017年夏天第一次来的时候的黄土漫天,现在的基础条件已经好了很多。基辅号的开放舱室也是多了很多,以前只能从三甲到一甲,看看机库就完了,现在能看到更多的居住舱、链锚舱和轮机舱,对航母的运行有了更直观的了解。另外,前几次停靠在133号驱逐舰旁边的037战列艇也被收拾的能出海,可以带着百八十游客转一转了。天气不错,能看到远方的津沽棒、国家海洋博物馆和妈祖像。有个七拐八拐的亲戚在白色那个楼群里面买了房。下面的工人在安装烟花,现在晚上八点有烟花秀。另外,《航母风暴》的场景演出也恢复了,除了原来的剧情之外,加了很多爆炸和烟花。不过原来的姐妹花换人了。比较令人遗憾的是,原来的飞车演出换成了国内的“华家班”,除了较为硬核的技巧表演外,没有了剧情,更像单纯的打把势卖艺。051的保养还是相当不错的。
Kubernetes基本管理
本文是应用《从Docker到Kubernetes》的实验内容。 实验环境延续Kubernets部署 PODpod是kubernets中最小的调度单位,控制器是用于管理pod。 创建与删除123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138# 查看当前namespace中的pod[root@kmaster ~]# kubectl get podsNo resources found in nssec namespace.# 查看...
RockyLinux9 容器安装
RockyLinux虽然自带了Podman,但Docker的操作还是便利些。 首先,需要按照制作RockyLinux模板来对系统进行初始化,再进行容器的部署。 其次,因为Docker公司的各种骚操作,开源界出品了Podman来对抗Docker,同时Kubernetes相关组织提出了一个标准的API接口CRI(Container Runntime Interface),并开发了CRI-O来作为containerd的替代品。简单理一下概念就是Docker、Podman和Kubernetes、Openshfit都是管理容器的平台,只不过前两个是单机、后两个是集群的全套解决方案。而containerd和CRI-O则是底层实现,类似Linux Kernel和发行版的区别。 最后,Kubernetes是通过标准的CRI接口调用containerd或者CRI-O来编排和管理容器。 Docker部署123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354...












