Неожиданное поведение tcpdump при перехвате пакетов из бриджа

Случайно обнаружил такое свойство tcpdump: если у вас есть бридж, в котором бегают пакеты не адресованные вам (грубо говоря на бридж зеркалируеться траффик адресованный не вам), то при попытке сделать

tcpdump -ne vlan 9

программа не видит пакетов.

Если же записать дамп в файл (без указания vlan), а потом просмотреть его

tcpdump -r dump.file vlan 9

то все работает, и исправно показывает.

Проверялось на Ubuntu 12.04.

Кстати еще убил немало времени разбираясь почему tcpdump не пишет дамп файлы в папку /opt (на самом деле в любую отличную от /home, /var и т.д.), оказалось, что для tcpdump по умолчанию включен apparmor в enforce.

А еще в Ubuntu 12.04 по умолчанию включен apparmor, и tcpdump не хочет писать файлы например в /opt.

Что бы снять ограничение нужно перевести профиль для tcpdump в режим complain, как это сделать я писал здесь: http://pustovoi.ru/2009/778

Что такое Apparmor?!

Операционная система Linux унаследовала систему безопасности Unix, разработанную еще в 70-х годах, передовую на момент создания, но на сегодняшний день уже явно недостаточную. Каждый пользователь имеет полную свободу действий в пределах своих полномочий по принципу «все или ничего». Это приводит к тому, что для выполнения некоторых задач пользователю часто предоставляется гораздо больше прав, чем это реально необходимо. Поэтому пользователь, получивший доступ с правами системной учетной записи, может добиться практически полного контроля над системой.
Что имеем?

В процессе работы любого приложения могут возникать различные отклонения, приводящие в итоге к его аномальному выполнению. Это могут быть как системные сбои, ошибки в программировании, так и искусственно вызванные ситуации. И последнее далеко не редкость. Хакер, обнаружив, что при определенных условиях можно повлиять на выполнение программы, естественно, попытается этим воспользоваться.

Читать