it-swarm.com.ru

Поддерживает ли Linux захват TCP-пакетов, не будучи суперпользователем?

Можно ли перехватывать пакеты без суперпользователя?

Вот что я вижу в статье в википедии:

В некоторых Unix-подобных операционных системах пользователь должен иметь привилегии суперпользователя для использования tcpdump, потому что механизмы захвата пакетов в этих системах требуют повышенных привилегий. Тем не менее, опция -Z может использоваться для сброса привилегий конкретному непривилегированному пользователю после настройки захвата. В других Unix-подобных операционных системах механизм захвата пакетов может быть сконфигурирован, чтобы позволить непривилегированным пользователям использовать его; если это сделано, привилегии суперпользователя не требуются. http://en.wikipedia.org/wiki/Tcpdump

3
catbat

Можно захватывать пакеты, не будучи root, но вам необходимо иметь возможности CAP_NET_ADMIN и CAP_NET_RAW. По сути, вы должны стать пользователем root (чтобы получить все возможности), затем отбросить все свои возможности, кроме этих двух, и также удалить привилегии root.

Для управления идентификатором пользователя, который запускают команды UNIX, существуют удобные инструменты, такие как Sudo . К сожалению, нет стандартных инструментов для манипулирования возможностями из Shell таким образом, как это требуется здесь.

Эта страница описывает, что вам нужно делать на уровне C, и этот содержит HOWTO, чтобы настроить Wireshark для такой работы.

1
Celada