实施监控的几个方面:
数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)
数据存储:使用mysql数据库
数据展示:通过web页面
zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示,需要安装nginx。
zabbix运行需要zabbix账户
nginx运行期间,调用php-fpm服务,php-fpm需要向web目录中修改文件。php-fpm的运行用户是apache,所以apache用户需要对该目录有写权限:
chown -R apache:apache /usr/local/nginx/html/
zabbix web依赖配置文件目录 /etc/php.ini
主机:安装了agent,被监控的主机
agent配置文件目录: /usr/local/etc/zabbix_agentd.conf
主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。
1.在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
key的语法格式
UserParameter=key[*],
key[*]中的*是参数,将会传给后面的位置变量$1
key的文件的目录:/usr/local/etc/zabbix_agentd.conf.d/
2.在web页面中创建监控项。监控项对应key值。
3.监控项存在应用集中。应用集就是相似监控项的集合。
4.应用集存在模板中。一个模板可以包含多个应用集。
模板-------包含------应用集-------包含------监控项-------对应-------Key
配置告警
默认情况下,监控项不会自动发送告警消息
需要配置触发器与告警,并且通过通知方式发送信息给联系人
触发器:设置条件,当条件达到时,将会执行某个动作
动作:触发器条件达到之后要采取的行为,比如发邮件或执行命令
当被监控的设备非常多的时候,手工添加将会变得非常不方便
可以使用自动发现功能,实现添加主机、添加到主机组、 链接模板
自动发现流程:
创建自动发现规则
创建动作,当主机被发现之后,执行什么操作
通过动作,添加主机,将模板应用到发现的主机
默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
被动监控:Server向Agent发起请求,索取监控数据。此种模式常用
主动监控:Agent向Server发起连接,向Server汇报
用于实时监控nginx的网络连接,这个模块是nginx官方提供的一个模块。
也是一款监控软件,也是一个时序数据库。
主要用在容器监控方面,也可以用于常规的主机监控。
使用google公司开发的go语言编写。
Prometheus是一个框架,可以与其他组件完美结合。
prometheus监控配置文件: /usr/local/prometheus/prometheus.yml
监控方式:
拉取:pull。监控端联系被监控端,采集数据
推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway
被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)
部署通用的监控exporter
node-exporter用于监控硬件和系统的常用指标
exporter运行于被监控端,以服务的形式存在。每个exporter所使用的端口号都不一样。
在node1[192.168.4.11]上部署node exporter
grafana是一款开源的、跨平台的、基于web的可视化工具
展示方式:客户端图表、面板插件
数据源可以来自于各种源,如prometheus
一般来说扫描是攻击的前奏。
扫描可以识别目标对象是什么系统,开放了哪些服务。
获知具体的服务软件及其版本号,可以使得攻击的成功率大大提升。
扫描可以检测潜在的风险,也可以寻找攻击目标、收集信息、找到漏洞
windows下,扫描可以使用xscan / superscan Linux,扫描可以采用nmap
在线破解哈希值的网站:md5在线解密破解,md5解密加密
哈希是算法,英文hash的音译,包括md5、sha等
kali系统提供了一个名为john的工具,可用于密码破解
iptables有多种功能,每一种功能都用一张表来实现
最常用的功能是防火墙和NAT
从RHEL7开始,默认的防火墙为firewalld,但是它的底层仍然调用iptables
安装iptables服务
iptables 包含 过滤表 地址转换表 包标记表 状态跟踪表
filter中的三条链
INPUT:数据包的目标地址是自己,则进入INPUT链
OUTPUT:数据包的源地址是自己,则进入OUTPUT链
FORWARD:数据包穿过自己,则进入FORWARD链
iptables操作
iptables的语法
iptables [-t 表名] 选项 [链名] [条件] [-j 满足条件的操作]
-A 追加规则-->iptables -A INPUT
-D 删除规则-->iptables -D INPUT 1(编号)
-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)
-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位
-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则
通用参数:
-p 协议 例:iptables -A INPUT -p tcp
-s源地址 例:iptables -A INPUT -s 192.168.1.1
-d目的地址 例:iptables -A INPUT -d 192.168.12.1
-sport源端口 例:iptables -A INPUT -p tcp --sport 22
-dport目的端口 例:iptables -A INPUT -p tcp --dport 22
-i指定入口网卡 例:iptables -A INPUT -i eth0
-o指定出口网卡 例:iptables -A FORWARD -o eth0
-j 指定要进行的处理动作
常用的ACTION:
DROP:丢弃
REJECT:明示拒绝
ACCEPT:接受
NAT:网络地址翻译、网络地址转换
NAT技术产生,主要是解决IPV4地址不够用。
NAT一般用于将私有地址转成全球唯一的公有地址。
私有地址:
A类:10.x.x.x
B类:172.16.x.x-172.31.x.x
C类:192.168.x.x
私有地址,如果需要访问互联网中的公有地址,进行上网,可以通过NAT技术,将私有地址转成公有地址,再访问外界。