欢迎光临
我们一直在努力

openstack常用命令及控制节点端口记录

u22e阅读(556)

【常用命令】
1,查看服务

openstack service list
删除服务:openstack service delete 服务ID #服务ID通过openstack service list查看。

2,查看endpoint

openstack endpoint list
删除endpoint:openstack service delete endpoint_ID #endpoint的ID通过openstack endpoint list查看。

3,查看域
openstack domain list
4,查看项目
openstack project list
5,查看用户
openstack user list
6,查看角色
openstack role list
7,查看镜像
openstack image list
8,列出可用类型: openstack flavor list
9,列出可用镜像: openstack image list
10,列出可用网络:openstack network list
11,列出可用的安全组:openstack security group list
12,检查实例的状态:openstack server list
13,创建角色
openstack role create user
14,查看cinder存储
cinder service-list
15,查看镜像信息
qemu-img info /var/lib/glance/images/镜像id
※可以查看到virtual size,后面创建实例的磁盘大小,必须大于此值。

【检查服务是否正常】
●以下在控制节点执行:
1,检查keystone服务是否正常
source 环境变量
openstack token issue #显示则正常

2,检查glance服务是否正常
openstack image list #显示则正常
或:openstack image-list
3,检查nova服务是否正常
openstack compute service list
或:nova service-list
是否有:
nova-conductor 控制节点
nova-consoleauth 控制节点
nova-scheduler 控制节点
nova-compute 计算节点
4,检查neutron服务是否正常
neutron agent-list

 

●控制节点端口一览(三节点下:控制,网络,计算)
tcp 0 0 192.168.8.60:6379 0.0.0.0:* LISTEN 1171/redis-server 1
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 1178/memcached
tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 1163/python2-->glance-api服务
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1/systemd-->rabbitma服务
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1857/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1185/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1166/cupsd
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 1158/beam.smp
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1880/master
tcp 0 0 192.168.8.60:3260 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:9696 0.0.0.0:* LISTEN 1172/python2-->neutron-server
tcp 0 0 0.0.0.0:6080 0.0.0.0:* LISTEN 1170/python2-->nova-novncproxy服务
tcp 0 0 0.0.0.0:8774 0.0.0.0:* LISTEN 1169/python2-->nova-api服务
tcp 0 0 0.0.0.0:8775 0.0.0.0:* LISTEN 1169/python2->nova-metadata-api服务
tcp 0 0 0.0.0.0:9191 0.0.0.0:* LISTEN 1160/python2->glance-registry服务
tcp 0 0 0.0.0.0:8776 0.0.0.0:* LISTEN 1161/python2
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 1158/beam.smp->rabbitma服务-集群之间同步数据用
tcp 0 0 0.0.0.0:8778 0.0.0.0:* LISTEN 2646/httpd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1515/mysqld
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 2646/httpd
tcp6 0 0 :::22 :::* LISTEN 1185/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1166/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1880/master
tcp6 0 0 :::35357 :::* LISTEN 2646/httpd-->keystone admin
tcp6 0 0 :::5000 :::* LISTEN 2646/httpd-->keystone 普通用户
tcp6 0 0 :::5672 :::* LISTEN 1158/beam.smp->rabbitma服务-对外提供服务
tcp6 0 0 :::8777 :::* LISTEN 2646/httpd
tcp6 0 0 :::8041 :::* LISTEN 2646/httpd
udp 0 0 0.0.0.0:11211 0.0.0.0:* 1178/memcached
udp 0 0 0.0.0.0:8125 0.0.0.0:* 1167/python2
udp 0 0 192.168.122.1:53 0.0.0.0:* 1857/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1857/dnsmasq
udp 0 0 0.0.0.0:41141 0.0.0.0:* 849/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 849/avahi-daemon: r

ubuntu查看apt-get安装软件的版本

u22e阅读(1132)

查询

apt-cache search name

安装

apt-get install name

查询特定软件状态

dpkg-query -s name
# dpkg-query -s nova-compute
Package: nova-compute
Status: install ok installed
Priority: extra
Section: net
Installed-Size: 61
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: nova
Version: 2:21.2.4-0ubuntu1
Depends: bridge-utils, nova-compute-kvm | nova-compute-hypervisor, python3-nova (= 2:21.2.4-0ubuntu1)
Conffiles:
/etc/init.d/nova-compute b05d0637262ff10cffda3e9945a603dc
Description: OpenStack Compute - compute node base
OpenStack is a reliable cloud infrastructure. Its mission is to produce
the ubiquitous cloud computing platform that will meet the needs of public
and private cloud providers regardless of size, by being simple to implement
and massively scalable.
.
OpenStack Compute, codenamed Nova, is a cloud computing fabric controller. In
addition to its "native" API (the OpenStack API), it also supports the Amazon
EC2 API.
.
Nova is intended to be modular and easy to extend and adapt. It supports many
different hypervisors (KVM and Xen to name a few), different database backends
(SQLite, MySQL, and PostgreSQL, for instance), different types of user
databases (LDAP or SQL), etc.
.
This is the package you will install on the nodes that will run your
virtual machines.
Homepage: https://launchpad.net/nova
Original-Maintainer: Openstack Maintainers <openstack@lists.launchpad.net>
安装指定版本

apt-get install package=Version
apt-get install nova-compute=2:21.2.4-0ubuntu1

众多开源软件参考实现等保三级安全要求

u22e阅读(1345)

等级划分

《信息安全等级保护管理办法》规定,国家信息安全等级保护坚持自主定级、自主保护的原则。信息系统的安全保护等级应当根据信息系统在国家安全、经济建设、社会生活中的重要程度,信息系统遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等因素确定。
信息系统的安全保护等级分为以下五级:
第一级,信息系统受到破坏后,会对公民、法人和其他组织的合法权益造成损害,但不损害国家安全、社会秩序和公共利益。第一级信息系统运营、使用单位应当依据国家有关管理规范和技术标准进行保护。
第二级,信息系统受到破坏后,会对公民、法人和其他组织的合法权益产生严重损害,或者对社会秩序和公共利益造成损害,但不损害国家安全。国家信息安全监管部门对该级信息系统安全等级保护工作进行指导。
第三级,信息系统受到破坏后,会对社会秩序和公共利益造成严重损害,或者对国家安全造成损害。国家信息安全监管部门对该级信息系统安全等级保护工作进行监督、检查。
第四级,信息系统受到破坏后,会对社会秩序和公共利益造成特别严重损害,或者对国家安全造成严重损害。国家信息安全监管部门对该级信息系统安全等级保护工作进行强制监督、检查。
第五级,信息系统受到破坏后,会对国家安全造成特别严重损害。国家信息安全监管部门对该级信息系统安全等级保护工作进行专门监督、检查。

本文目的主要是调研等保三级的硬件可以使用哪些软件来替换(有些有硬性要求另说),整理一版放在这里,以后的项目中如果有使用到,就不用在一一查找了。

安全管理中心系统

OSSIM

OSSIM即开源安全信息管理系统(OPEN SOURCE SECURITY INFORMATION MANAGEMENT),是一个非常流行和完整的开源安全架构体系。OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。 它的目的是提供一种集中式、有组织的、能够更好地进行监测和显示的框架式系统。OSSIM由数据收集、监视、检测、审计以及控制台这五个模块构成。这5个模块包含了目前安全领域从事件预防到事件处理一个完整的过程,在目前的安全架构 中,OSSIM是最为完备的。这五个功能模块又被划分为三个层次,分别是高层的安全信息显示控制面板、中层的风险和活动监控以及底层的证据控制台和网络监控,各个层次提供不同功能,共同保证系统的安全运转。

开源堡垒机/运维审计系统

Jumpserver

Jumpserver是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。支持支持RDP和SSH协议的跳转,支持命令,会话记录,支持资产管理,日志审计;

GateOne

Gateone是一个基于tornado和html5技术的开源web ssh项目,功能很强大, 支持多个账户多个终端窗口连接远程机器, 支持多种认证登陆方式, 支持嵌入到各种web应用,支持多种插件等等。暂不支持windows

Teleport

Teleport是触维软件推出的一款简单易用的堡垒机系统,具有小巧、易用、易于集成的特点,支持RDP和SSH协议的跳转。

麒麟开源堡垒机

麒麟堡垒机全协议支持、网管功能、3A系统功能、动态口令功能、SSL VPN功能、CA证书功能,支持RDP和SSH协议的跳转。

开源入侵检测系统(IDS/IPS)

Snort

Snort是最好的入侵检测系统(IDS)工具。它所需要的是一些在上面运行的硬件以及安装、配置和维护的时间。Snort可以在任何操作系统上运行,包括Windows和Linux。
Snort 一直都是网络入侵检测(IDS)和入侵防御工具(IPS)的领导者,并且,随着开源社区的持续发展,为其母公司Sourcefire(多年 来,Sourcefire提供有供应商支持和即时更新的功能齐全的商业版本Snort,同时仍然免费提供功能有限的免费版本Snort)持续不断的支 持,Snort很可能会继续保持其领导地位。
虽然Snort“称霸”这个市场,但也有其他供应商提供类似的免费工具。很多这些入侵检测系统(IDS)供应商(即使不是大多数)结合Snort或其他开源软件的引擎来创建强大的免费入侵检测服务。

Security Onion

Security Onion是用于网络监控和入侵检测的基于Ubuntu的Linux发行版。该镜像可以作为传感器分布在网络中,以监控多个VLAN和子网,这很适用于 VMware和虚拟环境。该配置只能用作IDS,目前不能当作IPS运行。然而,你可以选择把它作为网络和主机入侵检测部署,以及利用Squil、Bro IDS和OSSEC等服务来执行该服务的IDS功能。该工具的wiki信息和文档信息很丰富,漏洞和错误也有记录和审查。虽然Security Onion很强大,但它仍然需要不断发展,当然这需要时间。

OSSEC

OSSEC是一个开源主机入侵检测系统(HIDS),它的功能不只是入侵检测。与大多数开源IDS产品一样,有多种附加模块可以结合该 IDS的核心功能。除了网络入侵检测外,OSSEC客户端能够执行文件完整性监控和rootkit检测,并有实时报警,这些功能都是集中管理,并能根据企 业的需求创建不同政策。OSSEC客户端在大多数操作系统上本地运行,包括Linux各版本、Mac OSX和Windows。它还通过趋势科技的全球支持团队提供商业支持,这是一个非常成熟的产品。

OpenWIPS-NG

OpenWIPS-NG是一个免费的无线IDS / IPS,它依赖于服务器、传感器和接口。它可以在普通硬件上运行。其创建者是Aircrack-NG的开发者,该系统使用Aircrack-NG内置的很 多功能和服务来进行扫描、检测和入侵防御。OpenWIPS-NG是模块化的,允许管理员下载插件来增加功能。其文件并不像某些系统一样详细,但它允许公司在预算紧张的情况下执行WIPS。

Suricata

在所有目前可用的IDS/IPS系统中,Suricata最能够与Snort相抗衡。该系统有一个类似Snort的架构,依赖于像 Snort等的签名,甚至可以使用VRT Snort规则和Snort本身使用的相同的Emerging Threat规则集。Suricata比Snort更新,它将有机会赶超Snort。如果Snort不是你企业的选择,这个免费的工具最适合运行在你的企 业网络中。

Bro IDS

Bro IDS类似于Security Onion,它使用更多IDS规则来确定攻击来源。Bro IDS使用工具组合,曾经它使用基于Snort的签名转换成Bro签名,不过现在不再是如此,现在用户能够为Bro IDS编写自定义签名。该系统有很多详细文档信息,并已有超过15年的历史。

Prelude IDS

从设计的方式来看定位于适应大型网络的需求, 实现了网络探测器、日志分析器、告警信息集中查看分析工具。其网络探测器部分基本上翻版了Snort的功能,完全兼容Snort的规则集。

Firestorm

是一个非常高性能的网络入侵检测系统(NIDS)。目前它仅实现了探测器部分,完全兼容Snort的规则集,但计划包括对分析、报告、远程控制台和实时传感器配置的真正支持。它完全可插拔,因此非常灵活,,可以把告警信息记录到Prelude IDS的管理器, 自称性能上比Snort强很多。

NetSTAT

基于STAT(State Transition Analysis Technique,状态迁移分析技术)描述攻击的研究成果,使用特有的STATL语言描述攻击,攻击描述文本被STATL解释工具转换为C++代码编译进检测引擎来实现检测功能,目前已经发布了STATL语言解释转换工具及一个基本的示例网络探测器部分(很少的几个检测功能例子)。要熟练使用这个IDS工具需要比较强的编程功底,但用此IDS可以实现很复杂的检测功能。

Bro

是一个Vern Paxson实现的实时网络入侵检测软件,于98年对外发布,BSD license,它的最初设计目标是实现一个在100M网络下实时告警、机制与策略分离、高可扩展性的入侵检测及网络监视审计系统。

开源的web应用防火墙

Web应用防火墙提供应用层的安全。从本质上讲,WAF提供全面的web应用安全解决方案,确保数据和Web应用程序是安全的。
Web应用防火墙,适用于跨站点脚本,SQL注入等,可以为Web应用程序提供安全的Web应用程序框架。Web应用防火墙允许您配置规则,通过识别阻止恶意内容。下面给出了10个最流行和广泛使用的开源的Web应用防火墙:

ModSecurity的(Trustwave公司SpiderLabs)

ModSecurity是一个最古老的和广泛使用的开放源码的Web应用程序防火墙能够检测应用层威胁在互联网上,并针对一系列Web应用程序的安全问题提供了安全保障。它提供非病毒的开放来源执照,它可以集成到Apache程序。近日,ModSecurity的发布2.6.0版提供的功能安全浏览API集成,敏感数据的跟踪和数据修改功能。

AQTRONIX WebKnight

AQTRONIX WebKnight是一个开源应用程序专为Web服务器和IIS防火墙,它是通过GNU – 通用公共许可证授权。它提供了缓冲区溢出,目录遍历编码和SQL注入攻击识别/限制功能。

ESAPI WAF

ESAPI WAF是Aspect安全开发的,它被设计为提供保护,而不是在应用层网络层。它是基于Java的WAF提供完整的安全性,从网上攻击。一些解决方案的独特功能包括出站过滤功能,降低信息泄漏。配置驱动的,而不是代码的基础,它使安装方便,只需添加在文本文件中的配置细节。

WebCastellum

WebCastellum是一个基于Java的Web应用防火墙,可以保护应用程序对跨站脚本,SQL注入,命令注入,参数操纵,它可以轻松地集成到一个基于Java的应用程序。它是基于新技术和提供保护,它可以使用现有的代码。

Binarysec

Binarysec为Apache是​​Web应用程序防火墙软件,它可以保护应用程序免受非法HTTP和阻止可疑的请求以及。它提供保护,防止跨站点脚本,赞扬注射,参数篡改,缓冲区溢出,目录遍历,SQL注入攻击阻塞。这需要不超过10分钟来安装软件,在一台机器上,其用户界面可以管理Apache服务器和许多网站。

Guardian@JUMPERZ.NET

Guardian@JUMPERZ.NET HTTPS / HTTP是一个开源应用层防火墙,HTTP / HTTPS流量评估保护Web应用程序免受外部攻击。Guardian@JUMPERZ.NET立即断开TCP连接,当应用程序来接触与恶意/未经授权的请求。

OpenWAF

Art of defense是一个总部设在旧金山的Web应用程序的安全性提供者上开源OpenWAF的2011年2月启动了一个项目。这也是第一家提供Apache服务器的分布式Web应用防火墙。

Ironbee

Qualys公司创建基于云的开源Web应用程序防火墙 – Ironbee代替了传统的IP数据包检查的HTTP评估数据。它甚至可以跟踪跨站点脚本代码的攻击。Ironbee出版通过Apache许可证版本2,它提供无版权转让。它具有模块化结构,是相当容易使用。

Profense

ZION安全提供了一个开放源码的Web应用防火墙类似ModSecurity的,被称为Profense。Zion所提供的Web应用防火墙本质上是一个7层防火墙(也被称为“代理防火墙”),并检查交通封锁内容。

Smoothwall

Smoothwall提供了强大的网络安全工具来管理电子邮件。开放源码的网页过滤引擎被称为Smoothwall DansGuardian的。它具有灵活的用户规则和一个完全集成的网页过滤和安全组件。更重要的是,它提供了身份验证的网络访问和 traffic blocking。Smoothwall免费防火墙安全加固Linux的GNU操作系统。

X-WAF

X-WAF是一款适用中、小企业的云WAF系统,让中、小企业也可以非常方便地拥有自己的免费云WAF。

负载均衡

Nginx

工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx单凭这点可利用的场合就远多于LVS了。

HAProxy

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

LVS

LVS 使用Linux内核集群实现一个高性能、高可用的负载均衡服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。

病毒过滤

ClamaV

ClamAV 杀毒是Linux平台最受欢迎的杀毒软件,ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix、MAC OS X、Windows、OpenVMS。ClamAV是基于病毒扫描的命令行工具,但同时也有支持图形界面的ClamTK工具。ClamAV主要用于邮件服务器扫描邮件。它有多种接口从邮件服务器扫描邮件,支持文件格式有如:ZIP、RAR、TAR、GZIP、BZIP2、HTML、DOC、PDF,、SIS CHM、RTF等等。ClamAV有自动的数据库更新器,还可以从共享库中运行。命令行的界面让ClamAV运行流畅。

Avria

另一个Linux下最好的杀毒软件是Avria免费杀毒版,Avria提供可扩展配置,控制你的计算机成为可能。它有一些很强大的特性,例如:简单的脚本安装方式、命令行扫描器、自动更新(产品、引擎、VDF)、自我完整性程序检查等等。

AVG 免费版杀毒

现在有超过10亿用户使用AVG杀毒,同样是Linux机器中不错的杀毒专家,免费版提供的特性比高级版要少。AVG目前还不支持图形界面。提供防病毒和防间谍工具,AVG运行速度很快,占用系统资源很少,支持主流Linux版本如:Debian、Ubuntu、Red hat、Cent OS、FreeBSD等等

VPN

OpenVPN

OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

参考链接:
https://blog.csdn.net/chinajust/article/details/78663972
http://www.aqniu.com/tools-tech/667.html
http://www.cnnetsec.com/1006.html
https://blog.csdn.net/chengxuyuanyonghu/article/details/60468470
https://klionsec.github.io/2017/09/22/snortpentest/

DoH 与 DoT 说明

u22e阅读(744)

概述

DoT 全称是 DNS over TLS,它使用 TLS 协议来传输 DNS 协议。TLS 协议是目前互联网最常用的安全加密协议之一,我们访问 HTTPS 的安全基础就是基于 TLS 协议的。相比于之前使用无连接无加密的 UDP 模式, TLS 本身已经实现了保密性与完整性。

DoH 全称是 DNS over HTTPS,它使用 HTTPS 来传输 DNS 协议。DoH 的安全原理与 DoT 一样,他们之间的区别只在于:DoH 有了 HTTPS 格式封装,更加通用。

DoT 在专用端口上通过 TLS 连接 DNS 服务器,而 DoH 是基于使用 HTTPS 应用层协议,将查询发送到 HTTPS 端口上的特定 HTTP 端点,这里造成的外界感知就是端口号的不同,DoT 的端口号是 853,DoH 端口号 443。

使用指南

目前已经DoT/DoH方案已经正式开放公测:为 DNSPod 用户的信息和隐私安全保驾护航。

专业版

登录 DNSPod 公共解析管理控制台 即可查看您的专属 DOT/DOH 专属地址。如下图所示:

基础服务

openwrt更换腾讯源

u22e阅读(546)

openwrt最近更新为19.07.1后,发现官方源是越来越慢甚至连不上了,找了下第三方源,发现阿里没有openwrt源, 腾讯的源还算可以,记录下。

终端上修改 /etc/opkg/distfeeds.conf 文件或者web上 system -> software -> Configure opkg,修改opkg/distfeeds.conf下方文字框,将http://downloads.openwrt.org/releases 替换为https://mirrors.cloud.tencent.com/openwrt/releases/

也可终端上一键修改

sed -i 's/http\:\/\/downloads.openwrt.org\//https\:\/\/mirrors.cloud.tencent.com\/openwrt\//g' /etc/opkg/distfeeds.conf

注意: 腾讯源不支持http,openwrt默认不支持https,需先安装https支持

opkg install ca-certificates wget wget-ssl

使用 HAProxy 实现网络流量的负载平衡 使用 HAProxy 实现网络流量的负载平衡

u22e阅读(479)

安装、配置和运行 HAProxy,在几个网络或应用服务器之间分配网络流量。

不是只有在一个大型公司工作才需要使用负载平衡器。你可能是一个业余爱好者,用几台树莓派电脑自我托管一个网站。也许你是一个小企业的服务器管理员;也许你确实在一家大公司工作。无论你的情况如何,你都可以使用 HAProxy 负载平衡器来管理你的流量。

HAProxy 被称为“世界上最快和使用最广泛的软件负载平衡器”。它包含了许多可以使你的应用程序更加安全可靠的功能,包括内置的速率限制、异常检测、连接排队、健康检查以及详细的日志和指标。学习本教程中所涉及的基本技能和概念,将有助于你使用 HAProxy 建立一个更强大的、远为强大的基础设施。

为什么需要一个负载平衡器?

负载平衡器是一种在几个网络或应用服务器之间轻松分配连接的方法。事实上,HAProxy 可以平衡任何类型的传输控制协议(TCP)流量,包括 RDP、FTP、WebSockets 或数据库连接。分散负载的能力意味着你不需要因为你的网站流量比谷歌大就购买一个拥有几十万 G 内存的大型网络服务器。

负载平衡器还为你提供了灵活性。也许你现有的网络服务器不够强大,无法满足一年中繁忙时期的峰值需求,你想增加一个,但只是暂时的。也许你想增加一些冗余,以防一个服务器出现故障。有了 HAProxy,你可以在需要时向后端池添加更多的服务器,在不需要时删除它们。

你还可以根据情况将请求路由到不同的服务器。例如,你可能想用几个缓存服务器(如 Varnish)来处理你的静态内容,但把任何需要动态内容的东西,如 API 端点,路由到一个更强大的机器。

在这篇文章中,我将通过设置一个非常基本的 HAProxy 环境,使用 HTTPS 来监听安全端口 443,并利用几个后端 Web 服务器。它甚至会将所有进入预定义 URL(如 /api/)的流量发送到不同的服务器或服务器池。

安装 HAProxy

要开始安装,请启动一个新的 CentOS 8 服务器或实例,并使系统达到最新状态:

  1. $ sudo yum update -y

这通常会持续一段时间。在等待的时候给自己拿杯咖啡。

这个安装有两部分:第一部分是安装 yum 版本的 HAProxy,第二部分是编译和安装你的二进制文件,用最新的版本覆盖以前的 HAProxy。用 yum 安装,在生成 systemd 启动脚本等方面做了很多繁重的工作,所以运行 yum install,然后从源代码编译,用最新的版本覆盖 HAProxy 二进制:

  1. $ sudo yum install -y haproxy

启用 HAProxy 服务:

  1. $ sudo systemctl enable haproxy

要升级到最新版本(版本 2.2,截至本文写作为止),请编译源代码。许多人认为从源代码编译和安装一个程序需要很高的技术能力,但这是一个相当简单的过程。首先,使用 yum 安装一些提供编译代码工具的软件包:

  1. $ sudo yum install dnf-plugins-core
  2. $ sudo yum config-manager --set-enabled PowerTools
  3. $ sudo yum install -y git ca-certificates gcc glibc-devel \
  4. lua-devel pcre-devel openssl-devel systemd-devel \
  5. make curl zlib-devel

使用 git 获得最新的源代码,并改变到 haproxy 目录:

  1. $ git clone http://git.haproxy.org/git/ haproxy
  2. $ cd haproxy

运行以下三个命令来构建和安装具有集成了 Prometheus 支持的 HAProxy:

  1. $ make TARGET=linux-glibc USE_LUA=1 USE_OPENSSL=1 USE_PCRE=1 \
  2. PCREDIR= USE_ZLIB=1 USE_SYSTEMD=1 \
  3. EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
  4. $ sudo make PREFIX=/usr install # 安装到 /usr/sbin/haproxy

通过查询版本来测试它:

  1. $ haproxy -v

你应该看到以下输出:

  1. HA-Proxy version 2.2.4-b16390-23 2020/10/09 - https://haproxy.org/

创建后端服务器

HAProxy 并不直接提供任何流量,这是后端服务器的工作,它们通常是网络或应用服务器。在这个练习中,我使用一个叫做 Ncat 的工具,它是网络领域的“瑞士军刀”,用来创建一些极其简单的服务器。安装它:

  1. $ sudo yum install nc -y

如果你的系统启用了 SELinux,你需要启用端口 8404,这是用于访问 HAProxy 统计页面的端口(下面有解释),以及你的后端服务器的端口:

  1. $ sudo dnf install policycoreutils-python-utils
  2. $ sudo semanage port -a -t http_port_t -p tcp 8404
  3. $ sudo semanage port -a -t http_port_t -p tcp 10080
  4. $ sudo semanage port -a -t http_port_t -p tcp 10081
  5. $ sudo semanage port -a -t http_port_t -p tcp 10082

创建两个 Ncat 网络服务器和一个 API 服务器:

  1. $ while true ;
  2. do
  3. nc -l -p 10080 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server ONE"' ;
  4. done &
  5. $ while true ;
  6. do
  7. nc -l -p 10081 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server TWO"' ;
  8. done &
  9. $ while true ;
  10. do
  11. nc -l -p 10082 -c 'echo -e "HTTP/1.1 200 OK\nContent-Type: application/json\n\n { \"Message\" :\"Hello, World!\" }"' ;
  12. done &

这些简单的服务器打印出一条信息(如“This is Server ONE”),并运行到服务器停止为止。在现实环境中,你会使用实际的网络和应用程序服务器。

修改 HAProxy 的配置文件

HAProxy 的配置文件是 /etc/haproxy/haproxy.cfg。你在这里进行修改以定义你的负载平衡器。这个 基本配置 将让你从一个工作的服务器开始:

  1. global
  2. log 127.0.0.1 local2
  3. user haproxy
  4. group haproxy
  5. defaults
  6. mode http
  7. log global
  8. option httplog
  9. frontend main
  10. bind *:80
  11. default_backend web
  12. use_backend api if { path_beg -i /api/ }
  13. #-------------------------
  14. # SSL termination - HAProxy handles the encryption.
  15. # To use it, put your PEM file in /etc/haproxy/certs
  16. # then edit and uncomment the bind line (75)
  17. #-------------------------
  18. # bind *:443 ssl crt /etc/haproxy/certs/haproxy.pem ssl-min-ver TLSv1.2
  19. # redirect scheme https if !{ ssl_fc }
  20. #-----------------------------
  21. # Enable stats at http://test.local:8404/stats
  22. #-----------------------------
  23. frontend stats
  24. bind *:8404
  25. stats enable
  26. stats uri /stats
  27. #-----------------------------
  28. # round robin balancing between the various backends
  29. #-----------------------------
  30. backend web
  31. server web1 127.0.0.1:10080 check
  32. server web2 127.0.0.1:10081 check
  33. #-----------------------------
  34. # API backend for serving up API content
  35. #-----------------------------
  36. backend api
  37. server api1 127.0.0.1:10082 check

重启并重新加载 HAProxy

HAProxy 可能还没有运行,所以发出命令 sudo systemctl restart haproxy 来启动(或重新启动)它。“重启” 的方法在非生产情况下是很好的,但是一旦你开始运行,你要养成使用 sudo systemctl reload haproxy 的习惯,以避免服务中断,即使你的配置中出现了错误。

例如,当你对 /etc/haproxy/haproxy.cfg 进行修改后,你需要用 sudo systemctl reload haproxy 来重新加载守护进程,使修改生效。如果有错误,它会让你知道,但继续用以前的配置运行。用 sudo systemctl status haproxy 检查 HAProxy 的状态。

如果它没有报告任何错误,你就有一个正在运行的服务器。在服务器上用 curl 测试,在命令行输入 curl http://localhost/。如果你看到 “This is Server ONE”,那就说明一切都成功了!运行 curl 几次,看着它在你的后端池中循环,然后看看当你输入 curl http://localhost/api/ 时会发生什么。在 URL 的末尾添加 /api/ 将把所有的流量发送到你池子里的第三个服务器。至此,你就有了一个正常运作的负载平衡器

检查你的统计资料

你可能已经注意到,配置中定义了一个叫做 stats 的前端,它的监听端口是 8404:

  1. frontend stats
  2. bind *:8404
  3. stats uri /stats
  4. stats enable

在你的浏览器中,加载 http://localhost:8404/stats。阅读 HAProxy 的博客 学习 HAProxy 的统计页面,了解你在这里可以做什么。

一个强大的负载平衡器

虽然我只介绍了 HAProxy 的几个功能,但你现在有了一个服务器,它可以监听 80 和 443 端口,将 HTTP 流量重定向到 HTTPS,在几个后端服务器之间平衡流量,甚至将匹配特定 URL 模式的流量发送到不同的后端服务器。你还解锁了非常强大的 HAProxy 统计页面,让你对你的系统有一个很好的概览。

这个练习可能看起来很简单,不要搞错了,你刚刚建立和配置了一个非常强大的负载均衡器,能够处理大量的流量。

daemon-dbus报错引起 cpu100%导致SSH等服务异常

u22e阅读(964)

用户反馈SSH服务无法登录的情况:

htop查看到dbus-daemon CPU 100% ,而且是持续100%

$strace -f -F -p dbus-daemon-pid //利用strace看一下dbus进程究竟在干嘛;

没有block住,而是不停的打印一些出错信息、信息是某个pid调用dbus,而dbus反馈错误,错误是(too many open files)

各用户的进程或者系统的最大文件打开数到顶了;

$ulimit -a

看到max user processes默认是4096,太小了,开大些;

修改/etc/security/limits.conf

在文件末尾添加:

soft nofile 65535
hard nofile 65535

修改普通用户的max user process

/etc/security/limits.d/20-nproc.conf 这个位置 . 我修改了里面的值 , 如下图

  *   soft nproc 65535
root soft nproc unlimited

扩展gpt分区报错no tools available to resize disk with 'gpt'

u22e阅读(881)

扩展gpt分区报错no tools available to resize disk with ‘gpt’

growpart /dev/sda 1
no tools available to resize disk with 'gpt'
FAILED: failed to get a resizer for id ''

要解决no tools available to resize disk with ‘gpt’问题,我们需要安装gdisk软件包,gpt分区管理需要此软件包。使用以下命令安装gdisk软件包。

针对CentOS/RHEL/Fedora系统:

$ sudo yum -y install cloud-utils-growpart gdisk

针对Ubuntu/Debian系统:

$ sudo apt install cloud-guest-utils gdisk

安装gdisk工具之后,您现在应该可以使用growpart扩展磁盘的大小

 

 

openssl 3.0安装报错Can't locate IPC/Cmd.pm

u22e阅读(923)

openssl 3.0安装报错

  1. [root@localhost openssl-3.0.0]# ./config  –prefix=/usr/local/openssl
  2. Can’t locate IPC/Cmd.pm in @INC (@INC contains: /root/openssl-3.0.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /root/openssl-3.0.0/external/perl/Text-Template-1.56/lib) at /root/openssl-3.0.0/util/perl/OpenSSL/config.pm line 18.
  3. BEGIN failed–compilation aborted at /root/openssl-3.0.0/util/perl/OpenSSL/config.pm line 18.
  4. Compilation failed in require at /root/openssl-3.0.0/Configure line 23.
  5. BEGIN failed–compilation aborted at /root/openssl-3.0.0/Configure line 23.

解决方法

  1. CentOS7   yum install perl-IPC-Cmd
  2. CentOS8   dnf install perl-IPC-Cmd