如何让 RHEL7 的防火墙通过 SNMP 连接?
当我在计算机上执行此命令时:
systemctl stop firewalld
Run Code Online (Sandbox Code Playgroud)
所有 SNMP 数据包都顺利通过。当我重新启动 firewalld 时,所有数据包都被阻止了。当然,我在防火墙运行的情况下尝试了几种配置,例如:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 161 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
或者
firewall-cmd --zone=public --add-port=161/tcp --permanent
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误消息,但 SNMP 仍处于超时状态。
我snmpwalk
突然停止工作,这是工作较早,重新启动 snmp 后也没有工作,snmpwalk -v1 -c
让我超时,它也适用于其他机器。
我尝试snmpconf
使用社区字符串和 IP 地址重新创建,但仍然没有通过。
在签入消息时,我得到了这样的消息:
10 月 19 日 05:07:34 manilavoice rsyslogd-2177:由于速率限制,imuxsock 开始丢弃来自 pid 8448 的消息“进程 ID 与 snmpd 服务相关
当我这样跑时,我收到一条消息snmpwalk -d 10.30.2.58
:
[root@manilavoice gopal]# snmpwalk -d 10.30.2.58
No log handling enabled - turning on stderr logging
Sending 64 bytes to UDP: [10.30.2.58]:161->[0.0.0.0]
0000: 30 3E 02 01 03 30 11 02 04 53 BF 41 80 02 03 00 0>...0...S.A....
0016: FF E3 04 01 04 02 …
Run Code Online (Sandbox Code Playgroud) 每当有任何syslog
登录时,我都需要发送 snmp trap n 号主机/var/log/messages
。我该怎么做,有人可以给我任何想法吗?
启用 SNMP 的设备的 Nmap 扫描网络:
sudo nmap -sU -p 161 --script default,snmp-sysdescr 26.14.32.120/24
Run Code Online (Sandbox Code Playgroud)
我想弄清楚如何让 nmap 只返回在snmp-sysdescr
对象中具有特定条目的设备:
snmp-sysdescr:“目标设备名称”
那可能吗?
将近 6 天的时间里,我一直在努力解决这个问题。
我有 2 台机器。其中一个是 manager 10.201 机器,另一个是 agent (10.226)
我已经像这样配置了经理的 snmptrap.conf文件。
authCommunity execute public default .1
traphandle default /usr/bin/traptoemail -s localhost -f snmp@localhost root@localhost
Run Code Online (Sandbox Code Playgroud)
然后我snmpd.conf
像这样配置了代理的文件。
###########################################################################
# SECTION: Access Control Setup
rocommunity public
rwcommunity private
###########################################################################
# SECTION: System Information Setup
syslocation "Izmir, 226. machine "
syscontact info@abc.com
###########################################################################
# SECTION: Trap Destinations
trap2sink 10.0.0.201 162
authuser read -s v2c guest_user noauth .1
authuser read -s usm guest_user noauth .1
authcommunity read public default …
Run Code Online (Sandbox Code Playgroud) 我们正在尝试主要使用 SNMP 监控我们的服务器。由于性能原因,我们将其从单个请求更改为 snmp-bulk-requests(在 SNMP v2c 中允许)。
理论上(至少据我所知)应该可以在单个批量请求中请求多个分支/值,因此所需的 tcp 会话数量将是最少的。
我们目前为此使用 CentOS 5 - 有问题的高级命令是snmpbulkwalk
- 但这似乎一次只能请求一个分支(即子树)。
我在理论上错了,还是有一个高级命令可以做我想做的事?
我在 CentOS 7 最小安装中安装了一个 snmpd,用于系统参数搜索,例如:
snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.2.2.1.2
Run Code Online (Sandbox Code Playgroud)
对于上述命令,我得到以下结果:
IF-MIB::ifDescr = No Such Object available on this agent at this OID
Run Code Online (Sandbox Code Playgroud)
当我执行:
snmpwalk -v 2c -c public 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
要检查 IF-MIB 是否由 snmpd 加载,我得到以下结果:
SNMPv2-MIB::sysDescr.0 = STRING: Linux vm_test.whatever.com 3.10.0-862.6.3.el7.x86_64 #1 SMP Tue Jun 26 16:32:21 UTC 2018 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (90641) 0:15:06.41
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: vm_test.whatever.com
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = …
Run Code Online (Sandbox Code Playgroud) 我使用 shell 脚本扩展了(extend-sh
)Net-SNMP 的功能,snmpd
如果脚本检查的条件为真,该脚本会回显“空”。但是,似乎有多个 OID 包含此字符串- nsExtendOutput1Line."backup"
,nsExtendOutputFull."backup"
和nsExtendOutLine."backup".1
。哪个是要监控的正确 OID?这里的最佳做法是什么?仅供参考,“备份”只是名称标记。此外,在 Net-NMP wiki中的检索值部分可以看到类似的行为。