收到云平台异常告警,提示ECS服务器在在一分钟内客户端存在多次ssh远程登陆,被判断为ssh远程破解,通过排查得出为运维系统配置过程中错误密码导致,运维系统不断的去ssh远程登陆导致,云平台下发通告,内网内ssh协议只保留用户作为堡垒机远程登陆,而不得用于其他用途。
将运维系统现有的ssh协议转换为snmp协议
什么是SNMP协议
SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用,而且SNMP以用户数据报协议(UDP)报文为承载,因而受到绝大多数设备的支持,同时保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。默认使用161端口。
操作系统 | 版本 |
---|---|
CentOS Linux release | 7.6.1810 (Core) |
操作环境分为两步:
前提服务器配置yum源,互联网接入可以使用系统自带yum源进行操作,局域网使用局域网内的源进行配置。
服务器安装snmp协议,本篇以手动单台安装和批量安装两方面展开介绍。
1、安装snmp服务
yum install net-snmp net-snmp-utils
2、启动snmp服务
systemctl start snmpd
3、配置snmp服务
备份配置文件
cp /etc/snmp/snmpd.conf{,.bak}
编辑配置文件
vi /etc/snmp/snmpd.conf
将41行的团体名由 public 改成 uxsino
4、重启snmp服务
systemctl restart snmpd
5、设置开机自启动
systemctl enable snmpd
6、验证开机启动
systemctl list-unit-files | grep enable | snmpd
批量安装需要提前安装ansible工具和配置hosts配置文件
1、创建安装脚本
vi install_snmp.conf
---
- name: Centos7 install snmp server
hosts: gaw_services
remote_user: root
tasks:
- name: Install snmp server
ansible.builtin.yum:
name: net-snmp,net-snmp-utils
state: latest
- name: start snmp server
ansible.builtin.service:
name: snmpd
state: started
- name: Configuration snmp
ansible.builtin.replace:
path: /etc/snmp/snmpd.conf
regexp: 'com2sec notConfigUser default public'
replace: ' com2sec notConfigUser default uxsino'
backup: yes
- name: restart snmp server
ansible.bulitin.service:
name: snmpd
state: restarted
enable: yes
检测脚本语法
ansible-playbook --check install_snmp.yaml
脚本完整运行未输出异常,执行脚本
ansible-playbook install_snmp.yaml
执行完毕后,从hosts文件的服务器列表中任意筛选出两台服务器验证
ansible test -m shell -a "systemctl status snmpd"