Как определить, какая конкретная служба/программа/скрипт отправляет SNMP-запросы на внешние устройства?

Как определить, какая служба/программа/скрипт генерирует неудачные snmp-запросы каждые 23 минуты из конкретного IP-адреса Linux-системы, к которой есть доступ с привелегиями супер-пользователя? Я пробовал использовать auditctl, но возможно я делал что-то не так, поскольку ничего не регистрировалось даже при самостоятельной генерации snmpwalk запросов.
  • 7 декабря 2023 г. 5:20
Ответы на вопрос 3
Для определения, какая конкретная служба, программа или скрипт отправляет SNMP-запросы на внешние устройства, можно использовать сетевой анализатор, такой как Wireshark или tcpdump. 

1. Установите и запустите Wireshark или tcpdump на Linux-системе, через которую проходят SNMP-запросы.

2. Настройте фильтр, чтобы отобразить только SNMP-трафик. В Wireshark вы можете использовать фильтр "snmp", или в tcpdump - команду "tcpdump -i [интерфейс] udp port 161".

3. Запустите захват пакетов и подождите, пока будут перехвачены SNMP-запросы.

4. Изучите найденные пакеты, чтобы определить отправителя SNMP-запросов. Обратите внимание на источник (отправителя) пакетов, чтобы определить, из какого IP-адреса или порта они отправляются. 

5. Если IP-адрес отправителя SNMP-запросов соответствует вашей Linux-системе, то вам следует искать программу или службу на вашей системе, которая отправляет эти запросы. Для этого можно использовать утилиты netstat или lsof для определения открытых сетевых соединений или портов, связанных с SNMP.

Что касается определения службы/программы/скрипта, генерирующего неудачные SNMP-запросы каждые 23 минуты, можно использовать инструменты мониторинга и журналирования, такие как auditctl или системный журнал Linux.

1. Для использования auditctl:

- Установите пакет auditd, если он не установлен на вашей системе.
- Создайте файл конфигурации для аудита (например, /etc/audit/rules.d/snmp.rules) и добавьте правила аудита для SNMP-событий.
- Пример правила аудита:
```bash
-a always,exit -F arch=b64 -S sendto -S socket -F auid=0 -F exe=/путь/к/программе/snmpwalk -k snmpwalk
```
- Запустите сервис auditd или перезагрузите систему.
- Проверьте журналы аудита, чтобы увидеть, генерируются ли аудит-события для SNMP-запросов, созданных программой snmpwalk.

2. Для использования системного журнала Linux (syslog):

- Откройте файл журнала syslog (например, /var/log/syslog) и добавьте фильтры для поиска неудачных SNMP-запросов.
- Пример фильтра:
```bash
grep -i "snmp: error" /var/log/syslog
```
- Выполните поиск в журнале syslog, чтобы определить, генерируются ли неудачные SNMP-запросы каждые 23 минуты, и выявить программу или службу, которая их генерирует.

Обратите внимание, что для успешного использования auditctl или журнала syslog необходимо настроить правильные правила аудита или фильтры в соответствии с вашими конкретными требованиями и настройками системы.
Не совсем понял - кто с кого неудачно собирает данные - роутер с сервака или наоборот?
sudo netstat -upnc | grep ":161 \|:162 "161\UDP и 162\UDP - это порты, которые использует SNMPздесь sudo требуется, чтобы увидеть информацию о процессах, без sudo команда показывает остальную информацию, кроме номеров и имён процессов.-с нужно для постоянного обновления, т.к. на момент запуска может не быть трафика по указанным портам; прерываете команду, когда заметите полезный вывод.пробел после 161 и 162 нужен, чтобы не было мусора в выводе.
Похожие вопросы