Я готов сойти с ума от этого ...
Мне нужно подделать хост, с которого отправляются ловушки snmp, с помощью команды snmptrap.
На страницах руководства для snmptrap указано, что вы можете использовать общие параметры, доступные через 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-адрес независимо от исходного IP-адреса, поэтому я изменил L.R.команда на это:
sudo iptables -t nat -A POSTROUTING -p udp --dport 162 --destination <IP of snmptrapd server> -j SNAT --to-source <Fake IP of sender>
IP сервера snmptrapd - адрес, на который вы хотите отправить ловушку
Поддельный IP-адрес отправителя - адрес, который snmptrapd будет рассматривать как адрес отправителя.
Чтобы увидеть текущие правила, используйте: sudo iptables -t nat -v -L -n --line-number
Чтобы удалить правило по номеру строки, например, номер 3: sudo iptables -t nat -D POSTROUTING 3
Вы не делаете ничего плохого. Просто хост ожидает, что указанный IP-адрес (или имя, если на то пошло) будет локальным, то есть прикрепленным к какому-то локальному интерфейсу. Одним из способов подмены хоста может быть временная настройка интерфейса псевдонима с желаемым IP-адресом, например для 1.2.3.4 в Linux:
ifconfig lo:0 1.2.3.4 netmask 255.255.255.248
Я попытался сделать то же самое и в итоге получил 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>