Назад | Перейти на главную страницу

Подмена исходного хоста с помощью snmptrap

Я готов сойти с ума от этого ...

Мне нужно подделать хост, с которого отправляются ловушки 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>