我准备用这个失去我的想法…
我需要欺骗使用snmptrap命令发送snmp陷阱的主机。
snmptrap的man页面可以使用snmpcmd提供的常用选项。 snmpcmd指出你可以利用snmp.conf中存在的选项,如下所示:–name =“value”。 snmp.conf指出有一个clientAddr选项允许您指定从其他主机发送的陷阱。
这是我正在运行的命令:
[root@***** objects]# /usr/bin/snmptrap --clientAddr="<clientipaddr>" -v 2c -c <communityString> <destipaddr> '' NAGIOS-NOTIFY-MIB::nSvcEvent nHostname s "testHost" nSvcDesc s "testService" nSvcStateID i 2 nSvcOutput s "testOutput"
这是我收到的输出:
snmptrap: Unknown host (<destipaddr>) (Cannot assign requested address)
当我运行它没有–clientAddr参数,陷阱接收器看到罚款。
任何想法我在这里做错了吗?
我试图做同样的事情,结束了与IP表,而不是net-snmp。 需要在发送陷阱的主机上设置以下内容:
iptables -t nat -A POSTROUTING -s <IP which you send originally traps from> -p udp --dport 162 -j SNAT --to-source <IP you want to spoof>
你没有做错什么。 只是主机期望指定的IP(或名称)是本地的,即连接到某个本地接口。 欺骗主机的一种方法是临时设置一些别名接口,并使用所需的IP地址,例如Linux上的1.2.3.4:
ifconfig lo:0 1.2.3.4 netmask 255.255.255.248